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] |
{"f":"flat","v":1,"id":"001a2b3c4d5e","t":1790000000,"m":{"rack_top":22.44,"voltage":230.1,"power_draw":948,"front_door":false}}| Field | Arti |
|---|---|
f, v |
"flat", 1 |
id |
identitas sumber: MAC |
t |
waktu pengukuran, epoch detik UTC; tidak ada bila jam belum sinkron (server memakai waktu terima) |
m |
metrik: nama → angka, boolean, atau teks |
Kiriman gabungan berupa larik objek, masing-masing dengan f dan v sendiri.
[{"bn":"001a2b3c4d5e:","bt":1790000000,"n":"rack_top","u":"Cel","v":22.44}, {"n":"voltage","u":"V","v":230.1}, {"n":"power_draw","u":"W","v":948}, {"n":"front_door","vb":false}]bn = MAC + :, bt = waktu dasar, n = nama, u = satuan, v angka, vb boolean.
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 bawaan
Section titled “Metrik bawaan”| 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.
Pesan status
Section titled “Pesan status”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.