Lewati ke konten

celestianctl

Tools/celestianctl.py adalah klien MQTT kecil untuk mengirim pengaturan dan perintah ke Sentinel serta memantau semua pesannya. Ia memakai paho-mqtt.

Terminal window
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt

Contoh di bawah memakai python3; ganti dengan .venv/bin/python bila paho-mqtt tidak terpasang di Python sistem.

Bawaannya broker lokal Gateway DC (topik sentinel/<mac>/…, anonim):

Opsi Arti
--host alamat broker (bawaan localhost; IP gateway, mis. 10.10.0.1)
--port port (bawaan 1883; gateway: 11884 untuk MQTT 5, 11883 untuk MQTT 3.1.1)

Untuk langsung lewat Celestian, tambahkan --workspace, --channel, dan --user <ID device>, dengan device key di environment variable CELESTIAN_DEVICE_KEY. Device itu butuh koneksi publish (dan subscribe untuk watch) ke channel. client_id otomatis diawali ID device sesuai kebijakan broker.

Terminal window
export CELESTIAN_DEVICE_KEY='<device key>'
python3 Tools/celestianctl.py --host broker.contoh --workspace dc-magna --channel rak \
--user <ID device> cmd a2cb8ff8768d identify
Terminal window
# konfigurasi (retained); nilai dibaca sebagai JSON bila bisa
python3 Tools/celestianctl.py config a2cb8ff8768d cfg_ver=2 telemetry_interval_ms=30000 temp_alarm_c=38
python3 Tools/celestianctl.py config a2cb8ff8768d d1_type=door t2_label=Bawah t2_alarm_c=30
# perintah
python3 Tools/celestianctl.py cmd a2cb8ff8768d reboot
python3 Tools/celestianctl.py cmd a2cb8ff8768d identify seconds=60
python3 Tools/celestianctl.py cmd a2cb8ff8768d rescan
python3 Tools/celestianctl.py cmd a2cb8ff8768d ota url=/fw/snt-g1/edge-snt-g1-idf-0.21.1.bin
# rules (mengganti SELURUH set)
python3 Tools/celestianctl.py rules a2cb8ff8768d --file Tools/rules-contoh.json
python3 Tools/celestianctl.py rules a2cb8ff8768d --file rules.json --confirm-s 120
python3 Tools/celestianctl.py rules a2cb8ff8768d --confirm 8a3030f6
python3 Tools/celestianctl.py rules a2cb8ff8768d --get
python3 Tools/celestianctl.py rules a2cb8ff8768d --clear
# sumber Modbus, profil, kelompok telemetri (opsi serupa: --file, --get, --clear, --confirm-s, --confirm, --rollback)
python3 Tools/celestianctl.py sources a2cb8ff8768d --file Tools/sources-contoh-profil.json
python3 Tools/celestianctl.py profiles --list
python3 Tools/celestianctl.py profiles a2cb8ff8768d --sources Tools/sources-contoh-profil.json
python3 Tools/celestianctl.py tgroups a2cb8ff8768d --file tgroups.json
# pantau semua pesan
python3 Tools/celestianctl.py watch

Nama dan ROM yang bisa terbaca sebagai angka perlu tanda kutip JSON: t1_rom='"28a54dca18253061"'.

  • rules, sources, profiles, dan tgroups memeriksa batas ukuran lebih dulu dan mencetak crc32 pesan yang dikirim; --get membandingkannya dengan hash yang dilaporkan node.
  • --ver mengatur nomor versi; bawaannya waktu sekarang (selalu naik).
  • Untuk sources, --model snt-g1 memakai batas G1.
  • profiles --sources meniru yang akan dilakukan server: menghitung profil yang dirujuk pemasangan dari pustaka Tools/profil-modbus/ dan mengirim hanya itu.