Sumber Modbus
Sentinel dapat menjadi master Modbus RTU lewat RS-485 dan membaca hingga 40 perangkat (meter listrik, transmitter suhu dan kelembapan, dan sejenisnya). Setiap register yang dibaca menjadi metrik biasa di telemetri, event, dan rules.
Perangkat keras RS-485
Section titled “Perangkat keras RS-485”| Hal | Isi |
|---|---|
| Pin SNT-G1 | TX GPIO43, RX GPIO44, DE/RE GPIO40 (arah lewat RTS). PZEM-004T bawaan memakai UART lain, jadi tidak bentrok |
| Transceiver | modul RS-485 terisolasi. Modul auto-direction tanpa pin DE juga bisa dipakai (DE tidak disambung). Papan tidak punya isolasi RS-485 sendiri |
| Sambungan | A, B, dan GND ke perangkat. Jangan sambungkan pin +5V modul perangkat (mis. PZEM-016) ke catu Sentinel; sambungkan hanya A, B, dan GND |
| Bus | terminasi 120 Ω di kedua ujung; bias di satu titik untuk bus panjang |
| DE saat boot | beri pull-down 10 kΩ pada DE agar log boot tidak masuk ke bus |
Cara kerja
Section titled “Cara kerja”Pemasangan memakai dua hal:
- Profil perangkat: peta register satu tipe perangkat (mis. Eastron SDM120). Lihat Profil Modbus. Sentinel membawa profil bawaan Eastron SDM120 dan Peacefair PZEM-016.
- Sumber: satu pemasangan perangkat (alamat, awalan nama) yang merujuk sebuah profil.
Nama metrik di telemetri = <awalan>_<akhiran>, mis. awalan rak1 dengan akhiran voltage menjadi rak1_voltage.
Pesan sources
Section titled “Pesan sources”Topik m/<workspace>/c/<channel>/<mac>/sources (retained, QoS 1). Pesan mengganti seluruh set.
{ "sources_ver": 1, "buses": [{"id": "uart1", "type": "modbus_rtu", "baud": 9600, "parity": "N", "stop": 1}], "sources": [ {"id": "grid", "driver": "modbus", "profile": "eastron-sdm120", "pv": 1, "addr": 1, "prefix": "grid", "label": "Meter utama"}, {"id": "rak1", "driver": "modbus", "profile": "eastron-sdm120", "pv": 1, "addr": 2, "prefix": "rak1_pdu", "label": "Meter rak 1"} ]}| Field sumber | Arti |
|---|---|
id |
tetap seumur hidup, [a-z][a-z0-9_]{0,11}, unik. Mengganti id = sumber baru |
driver |
modbus |
profile, pv |
id profil dan versinya (pemasangan mengunci versi, jadi memperbarui profil tidak mengubah node yang berjalan tanpa pesan sources baru) |
addr |
alamat slave Modbus 1…247, unik di bus |
prefix |
awalan nama metrik (bawaan id). Pakai nama pendek (2–6 karakter); lihat Kapasitas |
label |
maks. 12 karakter, untuk tampilan |
interval_s, timeout_ms, retries |
menimpa nilai poll profil |
en |
false = tidak dibaca |
group, group_ch, deltas |
kelompok dan ambang telemetri (Kelompok telemetri) |
names |
mengganti nama metrik per kanal |
buses memuat pengaturan bus uart1: baud 1200…115200, parity N/E/O, stop 1/2. Satu bus, satu pengaturan: perangkat dengan baud berbeda tidak bisa berbagi bus. Bus selalu bernama uart1 di pesan (nama logis).
Sumber juga bisa memakai regs inline (tanpa profil) untuk perangkat sekali pakai, dengan ch, fn (1–4), reg (berbasis nol), type (u16, s16, u32, s32, f32, bit), words/bytes (urutan), scale, offset, name, unit, dec.
| Batas | Nilai |
|---|---|
| Sumber | 40 |
| Metrik sumber | 400 |
| Register per sumber | 16 |
Ukuran pesan sources |
G1 6144 B |
Sumber yang melewati batas ditolak (melebihi batas metrik); sumber lain tetap dimuat. Pesan yang tidak valid seluruhnya ditolak dan set lama tetap berjalan.
Menambah sumber dari web
Section titled “Menambah sumber dari web”Tab Sumber di antarmuka web: pilih profil, isi alamat dan awalan, dan halaman menampilkan nama metrik yang akan terbentuk beserta satuan dan jenisnya. Halaman menolak sejak awal nama sumber, awalan, alamat, atau nama metrik yang pasti ditolak node. Tab Perangkat memantau status tiap sumber.

Dari terminal:
python3 Tools/celestianctl.py sources <mac> --file Tools/sources-contoh-profil.jsonpython3 Tools/celestianctl.py profiles <mac> --sources Tools/sources-contoh-profil.jsonPerintah kedua mengirim ke node profil yang dirujuk berkas sources, dari pustaka.
Status per sumber
Section titled “Status per sumber”| Status | Arti dan pemeriksaan |
|---|---|
ok |
menjawab dan datanya segar |
no_response |
kabel A/B tertukar → alamat slave → baud/paritas → terminasi 120 Ω → alamat register berbasis 0/1 |
crc_error |
biasanya derau atau paritas |
bad_data |
respons tidak sesuai profil |
bus_fault |
bus bermasalah |
disabled |
en = false |
bad_config |
konfigurasi sumber tidak valid |
Kegagalan berulang mundur bertahap (interval × 2ⁿ, maks. 60 detik), tidak menahan sumber lain. Metrik yang nilainya basi (lebih tua dari tiga kali interval) tidak dikirim. Diagnostik per sumber: sources/reported (tidak periodik; diterbitkan saat tersambung dan saat set berubah).
Penerapan dengan konfirmasi
Section titled “Penerapan dengan konfirmasi”Parameter bus yang salah (baud) membuat semua sumber diam tanpa tanda jelas, karena itu sources (dan profiles) mendukung confirm_s seperti rules: set berjalan sementara, cmd sources_confirm dengan hash menjadikannya permanen, dan tanpa konfirmasi node kembali ke set lama. cmd sources_rollback membatalkan yang menunggu atau kembali ke set sebelumnya; cmd get_sources mengunduh set yang berlaku (…/sources/current).
python3 Tools/celestianctl.py sources <mac> --file sources.json --confirm-s 120python3 Tools/celestianctl.py sources <mac> --confirm 8a3030f6python3 Tools/celestianctl.py sources <mac> --rollbackNama metrik: huruf kecil, angka, _; diawali huruf; maks. 24 karakter; unik di seluruh metrik node termasuk sensor bawaan; tidak boleh berawalan alarm_, rule_, src_, flag_ atau nama tetap seperti voltage. Awalan sumber membuat metrik Modbus berbeda dari voltage, power_draw, … bawaan PZEM-004T.
Alarm bawaan (volt_min_v, power_max_w) hanya untuk PZEM-004T. Alarm untuk meter Modbus dibuat dengan rules, mis. {"src":"rak1_pdu_power","op":">","v":3500,"hyst":100}.
Metrik sumber Modbus belum tampil di LCD; lihat di tab Perangkat web atau di Celestian.