Lewati ke konten

Format payload

Format payload telemetry, event, dan status dipilih dengan key payload_format:

Nilai Format Catatan
flat2 SenFlat v2 bawaan sejak firmware 0.8.2 (unit baru). Satu sumber per pesan; waktu milidetik, nomor urut q
flat SenFlat v1 JSON datar ringkas; satuan diambil server dari katalog metrik
senml SenML (RFC 8428) membawa satuan (u)

Bawaan hanya berlaku untuk unit baru: unit yang sudah menyimpan flat tetap flat sampai dikonfigurasi {"payload_format":"flat2"}. Mengganti format memicu reboot supaya payload LWT ikut berganti. Server harus mendukung format yang dipilih: bila belum, pesan tetap diterima tetapi tidak menghasilkan metrik. Semuanya memuat metrik dan nilai yang sama.

{"f":"flat","v":2,"q":4821,"h":0,
"s":[{"id":"001a2b3c4d5e","t0":1790000000000,"ts":1,
"m":{"rack_top":22.44,"voltage":230.1,"power_draw":948,"front_door":false}}]}
Field Arti
f, v penanda format ("flat") dan versi (2)
q nomor urut pesan, persisten di flash (ditulis tiap 256 pesan; seed acak bila kosong), naik terus melintasi reboot dan pembaruan firmware. Server membuang pesan dengan q yang sudah pernah diterima
h 0 = pembacaan baru; 1 = riwayat (dikirim ulang setelah koneksi pulih)
s[] daftar sumber; dari node selalu satu: id = MAC
t0 milidetik epoch dari jam node
ts 1 bila jam tersinkron NTP (berhasil dalam 3 hari terakhir); 0 bila belum, dan server memakai waktu terima
m metrik: nama → nilai skalar. Pada riwayat, nilai berupa larik pasangan [dt, nilai]

Aturan nilai: angka, boolean, atau teks (maks. 500 karakter). Sensor yang gagal dibaca atau hilang tidak disertakan; node tidak pernah mengirim null atau nilai penanda seperti -1. Nama metrik huruf kecil dengan angka dan _, ditulis lengkap.

Tanpa jam yang sinkron: SenFlat v1 tidak membawa t, SenML tidak membawa bt, dan SenFlat v2 menandai ts:0. Server memakai waktu terima untuk semuanya. ts:1 tidak berarti jam gateway punya hulu NTP sungguhan; komponen history memeriksanya dan menurunkan menjadi ts:0 bila hulu hilang lama.

Metrik Satuan (SenML) Sumber
tN_name (bawaan t1…t4) Cel DS18B20, satu per slot suhu aktif; nama dari konfigurasi
temp_ambient, humidity Cel, %RH SHT41 (bila sht41 = true)
voltage, current, power_draw V, A, W PZEM-004T
energy, frequency, power_factor kWh, Hz, / PZEM-004T
dN_name (bawaan d1…d4) boolean input digital; true = aktif menurut dN_active. Hanya input yang dN_type-nya bukan off
oN_name (bawaan o1…o4) boolean output digital yang dihidupkan; true = HIDUP
alarm_<nama>_warn/_high/_active/_inactive, alarm_voltage_low, … boolean status tiap alarm yang batasnya diisi
alarm_level angka 0 normal, 1 peringatan, 2 alarm
maintenance boolean hanya dikirim saat mode pemeliharaan aktif
rule_<id>, flag_f1… boolean status rule yang en: true; flag yang dipakai set rules
expander_ok boolean false = PCF8574 tidak menjawab
src_<id>_ok boolean diagnostik sumber (hanya bila diag: true)
uptime, heap_free s, By ESP32
nama metrik sumber Modbus dari profil awalan_akhiran, mis. rak1_voltage

Daftar yang lebih lengkap dan aturan nama: Metrik.

Retained. Berisi state (online / offline), fw (versi), ip, dan gateway. Pesan offline dikirim broker lewat LWT; dari 0.21.1, status juga memuat penghitung penyebab pengiriman kelompok telemetri.