Firmware dan OTA
Versi dan model
Section titled “Versi dan model”Tiap model punya nomor versi sendiri, tiga angka polos (mis. 0.21.1). Berkas firmware bernama edge-snt-g1-idf-<versi>.bin. Setiap image memuat penanda model, dan node menolak image model lain (image untuk model lain: SNT-G2 (perangkat ini SNT-G1)), baik lewat OTA gateway, rollout Celestian, maupun unggah web.
Versi yang berjalan tampil di LCD (menu Device), di config/reported.fw, dan di status.
Cara memasang
Section titled “Cara memasang”| Cara | Kapan |
|---|---|
| OTA lewat gateway | pemasangan sehari-hari: node mengunduh dari server OTA gateway di LAN rak |
| Rollout dari Celestian | banyak node bertahap; berkas diteruskan gateway dari Celestian |
| Unggah dari web | unit tanpa jalur ke broker atau server OTA (Antarmuka web) |
| USB | pertama kali di meja (flash bootloader, partisi, dan aplikasi) |
Mode flash harus tetap QIO 80 MHz: bootloader dengan mode berbeda dari aplikasi dapat merusak penyimpanan konfigurasi. Pasang bootloader dan aplikasi dari build yang sama.
Target firmware dari server
Section titled “Target firmware dari server”Server menyatakan versi yang diinginkan; node memasangnya sendiri.
| Key | Keterangan |
|---|---|
fw_version |
versi target, mis. 0.21.1. Kosong = tidak ada target |
fw_url |
alamat berkas .bin. Diawali / = diambil dari gateway (http://<gateway>:8080/…) |
fw_sha256 |
SHA-256 berkas (64 heksadesimal). Bila diisi, firmware hanya diaktifkan kalau hash cocok |
Alur: bila fw_version berbeda dari versi yang berjalan, node mengunduh fw_url, memeriksa SHA-256, memasang, lalu restart. Statusnya di fw_status pada config/reported:
fw_status |
Arti |
|---|---|
current |
tidak ada target, atau versi yang berjalan sudah sama dengan target |
updating to <versi> |
sedang mengunduh dan memasang |
installed <versi>, rebooting |
terpasang, node akan restart |
failed: <alasan> |
gagal (HTTP error, unduhan terputus, SHA-256 tidak cocok, fw_url kosong). Dicoba lagi tiap 10 menit, atau langsung saat config dikirim ulang |
mismatch: terpasang <a>, target <b> |
firmware sudah dipasang tetapi melaporkan versi lain. Node tidak memasang lagi sampai fw_version diganti |
Menghitung SHA-256 berkas:
shasum -a 256 edge-snt-g1-idf-0.21.1.binPerintah ota sekali jalan
Section titled “Perintah ota sekali jalan”{"action":"ota","url":"/fw/snt-g1/edge-snt-g1-idf-0.21.1.bin","sha256":"<64 heksadesimal>"}URL relatif (/fw/…) disusun terhadap host broker yang efektif. Di mode gateway itu Gateway DC; di mode langsung, IP gateway dari DHCP. Berkas ada di Gateway/firmware/snt-g1/ (OTA di gateway).
Rollback otomatis
Section titled “Rollback otomatis”Image yang baru dipasang lewat OTA belum dianggap valid. Node menandainya valid hanya setelah Ethernet dan MQTT tersambung terus 60 detik. Bila image belum sehat dalam batas waktu setelah boot, atau crash, macet (watchdog 30 detik), atau reboot sebelum valid, node kembali sendiri ke versi sebelumnya. Dilaporkan di config/reported:
| Field | Arti |
|---|---|
fw_pending_verify: true |
image yang berjalan belum terbukti sehat; belum boleh dianggap berhasil karena masih bisa dibatalkan |
fw_rolled_back: "<versi>" |
versi firmware yang dibatalkan bootloader. Ada selama slot itu belum ditimpa OTA berikutnya |
Batasan
Section titled “Batasan”- OTA lewat HTTPS belum memverifikasi sertifikat server; OTA lewat gateway memakai HTTP di LAN rak. Keutuhan berkas dijaga SHA-256 bila
fw_sha256diisi — selalu isi. - Proteksi anti-kloning (flash encryption dan secure boot) belum diaktifkan pada versi ini.