Rehberler

Hedefin ne alacağını seçin

Beş çıktı biçimi, her birinin bedeli ve kendi biçiminizi nasıl kuracağınız.

Çıktı yapısı, bir hedefe gönderilen JSON'un biçimine karar verir. Kaynak → hedef çifti başına, Akış → Yönlendirme içinde ayarlanır; böylece her hedef tam olarak istediğini alabilir.

Aşağıdaki örnekler aynı Sigfox mesajının beş farklı iletimidir; doğrudan karşılaştırabilirsiniz.

Tam mesaj

Merkez'in bildiği her şey, yükün etrafına sarılmış hâlde. Varsayılan budur ve başka birini seçmek için bir nedeniniz yoksa doğru cevap da budur.

{
  "provider": "SIGFOX",
  "deviceIdentifier": "1A2B3C",
  "messageType": "DATA_BIDIR",
  "receivedAt": "2026-08-15T13:47:45.000Z",
  "idempotencyKey": "SIGFOX:1A2B3C:DATA_BIDIR:18",
  "payload": {
    "device": "1A2B3C",
    "data": "00018d460000300040e12402",
    "seqNumber": 18,
    "decoded": { "index": 18.061, "unit": "m3", "battery": 100 }
  },
  "raw": { "device": "1A2B3C", "data": "00018d46…", "seqNumber": 18 }
}

idempotencyKey alanına dikkat — Merkez en az bir kez iletir ve tarafınız tekrarı bununla tanır.

Ham sağlayıcı çerçevesi

Sağlayıcının POST ettiğinin aynısı, dokunulmamış hâlde:

{
  "device": "1A2B3C",
  "data": "00018d460000300040e12402",
  "seqNumber": 18,
  "time": 1755265665
}

Alıcı sistem sağlayıcının biçimini zaten konuşuyorsa doğrudur — Merkez'i çeviri için değil, yönlendirme ve yeniden denemeler için kullanıyorsunuzdur.

Idempotency anahtarı yok, çözümlenmiş cihaz yok
Bu biçim yalnızca sağlayıcının kendi alanlarını taşır. Bu biçimdeki bir hedef, tekrarı bu alanlarla ayırt etmelidir — Sigfox için cihaz artı sıra numarası. Bilerek seçin.

Yalnızca çözülmüş telemetri

Zarf, payload yerine çözücünüzün döndürdüğüyle:

{
  "provider": "SIGFOX",
  "deviceIdentifier": "1A2B3C",
  "idempotencyKey": "SIGFOX:1A2B3C:DATA_BIDIR:18",
  "payload": { "index": 18.061, "unit": "m3", "battery": 100 },
  "raw": { }
}

İki şey insanları şaşırtır:

  • Geri düşer. Çözücü yoksa, çözücü hata verdiyse veya callback'in yükü yoksa payload tam mesaj yükü olarak kalır. Aynı hedef iki farklı biçim görebilir. payload.decodeError alanına bakın.
  • Yalnızca üç Sigfox callback'i çözülür. DATA_UPLINK, DATA_BIDIR ve SERVICE_DATA_ADVANCED bir yük çerçevesi taşır; diğer dördünde çözülecek bir şey yoktur.

Her şey çözülmüş

Çözücünün döndürdüğü her şey, iki grubu ayrı tutularak:

{
  "provider": "SIGFOX",
  "payload": {
    "telemetry": { "index": 18.061, "unit": "m3", "battery": 100 },
    "meta": { "seqNumber": 18, "rssi": -103.41 }
  }
}

Bilerek ayrı kalırlar: birleştirilseydi, çözücünüzün ikisine birden koyduğu bir anahtar sessizce kaybolurdu ve sonraki hiçbir adım bir ölçümü bir radyo verisinden ayırt edemezdi. Çözücünüz yalnızca telemetri döndürüyorsa yalnızca telemetry görünür.

Özel

Gövdeyi tamamen siz kurarsınız. Alanlarınızın etrafına hiçbir şey sarılmaz — zarf yok, payload yok:

{
  "device": "1A2B3C",
  "idempotencyKey": "SIGFOX:1A2B3C:DATA_BIDIR:988",
  "reading": 18.061,
  "tag": "maski"
}

Dört alanla başlar — cihaz, olay tipi, zaman damgası ve tekrar anahtarı — çünkü boş bir belge bozuk görünür ve bir hedefin genelde ihtiyacı bunlardır. Hepsi kaldırılabilir.

Yol yazmazsınız, alan seçersiniz

Merkez çözücünüzün ne döndürdüğünü hatırlar — iç içe olanlar dâhil her alanı, tipiyle ve son değeriyle — ve bunları Mesajdan, telemetry ve meta diye gruplanmış düğmeler olarak listeler. Eklemek için tıklayın; farklı bir anahtar istiyorsanız yeniden adlandırın.

Bir kaynağın çözücüsü bir kez çalışana kadar listelenecek bir şey yoktur ve düzenleyici bunu söyler. Bir mesaj gönderin, alanlar belirir.

Dört satır türü

SatırYaptığı
seçilmiş alanonu, yazdığınız adla kopyalar
sabit değerher mesajda aynı sabit
alanlardan metin{device}-{seqNumber}"1A2B3C-988"
hesaplanmış değeraritmetik veya bir koşul

Metin satırları tırnak ve operatör istemez — alan adlarını süslü parantez içinde, gerisini olduğu gibi yazın. Eksik bir alan boş görünür ve satır yine iletilir.

İç içe nesneler

İç içe nesne ekle, içine istediğiniz derinlikte alan koyabileceğiniz bir kap oluşturur:

device            = deviceIdentifier
meter             { }
  battery         = decoded.battery
  reading         { }
    value         = decoded.index
    unit          = "m3"

şunu iletir:

{
  "device": "1A2B3C",
  "meter": { "reading": { "value": 18.061, "unit": "m3" }, "battery": 100 }
}

Bir alanı taşımak için yanındaki tutamağı sürükleyin — içine koymak için bir nesnenin üzerine, sırasını değiştirmek için başka bir alanın üzerine. Nokta içeren bir ad da iç içe geçer: meter.reading yazmak, reading alanını meter içine koymakla aynıdır.

İçi boş bir nesne gönderilmez; {} iletmenin bir anlamı yoktur.

Eksik alanlar atlanır, null gönderilmez
Belirli bir mesajda bulunmayan bir alan null olarak değil, hiç gönderilmez. Bu bir hata değildir — ve düzenleyici bunun olduğunu ve nedenini size söyler; bir alan öylece kaybolmaz.

Seçim

İsteğinizSeçin
Her şey, en güvenli varsayılanTam mesaj
Alıcı sağlayıcının biçimini zaten ayrıştırıyorHam sağlayıcı çerçevesi
Yalnızca ölçümler, zarfla birlikteYalnızca çözülmüş telemetri
Ölçümler ve radyo verileri, ayrı tutulmuşHer şey çözülmüş
Alıcının zaten tanımladığı kesin bir sözleşmeÖzel

Kararsızsanız Tam mesaj ile başlayın. Bilgi kaybetmeyen tek biçim odur ve sonradan daraltmak kolaydır.

Varsayılan nereden gelir

Bir hedef kendi varsayılan çıktı yapısını taşıyabilir; kendi ayarı olmayan her çift bunu kullanır. Çiftin kendi ayarı her zaman kazanır; temizlemek hedefin varsayılanına geri döner.

Sırada

Kurallarla süzün
Hangi mesajların hedefe hiç ulaşacağına karar verin.
İletim başarısız olduğunda
Biçim doğruyken hiçbir şey ulaşmıyorsa ne yapmalı.
Copyright © 2026