Pembaruan firmware (OTA)
Celestian bisa menyimpan berkas firmware dan mendorong pembaruan ke perangkat, termasuk yang berada di belakang gateway, dengan rollout bertahap dan pengaman. Menu: Manajemen Device → Firmware (OTA).
Cara kerja singkat
Section titled “Cara kerja singkat”- Anda mengunggah berkas firmware.
- Anda membuat rollout: pilih firmware dan sasaran (device, group, atau tipe device), lalu strategi.
- Celestian mengirim target firmware (
fw_version,fw_url,fw_sha256) lewat jalur konfigurasi biasa. Pesan bersifat retained, jadi perangkat yang offline atau di belakang gateway tetap menerimanya, dan perangkat mencoba lagi sendiri tiap 10 menit bila gagal. - Perangkat mengunduh dari alamat bertanda tangan, memverifikasi SHA-256, memasang, lalu melapor
fwdanfw_status. Itulah sumber status di Celestian.
Berkas firmware
Section titled “Berkas firmware”| Aturan | Nilai |
|---|---|
| Unggah | Multipart; tab Firmware di halaman Firmware. |
| Ukuran | Maksimal 8 MiB (bisa diatur administrator). |
| Jenis | Image ESP32 (diawali byte ajaib 0xE9). |
| Keunikan | Unik per (model, versi). Versi harus sama dengan fw yang dilaporkan perangkat setelah terpasang. |
| SHA-256 | Dihitung server. |
| Hapus | Ditolak selama ada rollout aktif untuk berkas itu. |
Alamat unduhan memakai token bertanda tangan dan kedaluwarsa (dibulatkan ke jam supaya satu gelombang memakai alamat sama). Perangkat langsung memakai URL lengkap; perangkat di belakang gateway memakai alamat relatif /fw/... yang diteruskan proxy gateway ke Celestian. Karena perangkat tidak memverifikasi sertifikat HTTPS, keutuhan dijaga oleh fw_sha256.
Membuat rollout
Section titled “Membuat rollout”
Wizard tiga langkah:
- Firmware dan sasaran: pilih berkas, lalu sasaran (cari, group, tipe; maksimal 1000). Setiap device diperiksa:
ok,gateway,no_serial,no_channel,model_mismatch,already_current,in_rollout,forbidden. Yang tidak lolos dilewati dengan alasan. - Strategi:
- Canary: gelombang pertama kecil dengan nol kegagalan ditoleransi.
- Gelombang kumulatif (misalnya 10 persen, 50 persen, 100 persen).
- Jeda antar gelombang dan batas waktu gelombang (device yang belum selesai dianggap gagal).
- Ambang kegagalan per gelombang: bila terlampaui, rollout berhenti otomatis (halted).
- Tinjau pemeriksaan per device, lalu mulai.
Satu device hanya boleh ada di satu rollout aktif. Untuk satu device, pakai tab Firmware di detail device (perbarui satu device dengan konfirmasi).

Mengendalikan rollout
Section titled “Mengendalikan rollout”Halaman rollout menampilkan kartu gelombang dan tabel device dengan penyegaran tiap 5 detik. Aksi: jeda, lanjutkan (juga mengakui kegagalan pada rollout yang berhenti), batalkan (target dikosongkan di device yang belum selesai; yang sudah diperbarui tidak dikembalikan), coba ulang yang gagal, lewati device, dan hapus riwayat.
Status per device
Section titled “Status per device”waiting → sent → downloading → installing → succeeded. Hasil lain: failed (alasan dari perangkat seperti HTTP 403, SHA-256 tidak cocok, atau timeout), skipped, cancelled. Device failed yang kemudian berhasil sendiri berpindah menjadi succeeded.
Rollback otomatis (firmware 0.7.2 ke atas)
Section titled “Rollback otomatis (firmware 0.7.2 ke atas)”Firmware baru membatalkan sendiri bila tidak sehat dalam 10 menit. Celestian menilainya:
| Kondisi dilaporkan | Status |
|---|---|
fw = target dan menunggu verifikasi |
verifying (belum berhasil; tidak dihitung timeout sebelum jendela verifikasi lewat) |
fw_rolled_back = target |
failed (rolled_back): target dikosongkan, perangkat tidak memasang ulang versi itu. Butuh versi baru. |
Perangkat berfirmware lama (< 0.7.2) tidak terlindungi rollback otomatis dan dianggap berhasil seketika fw = target. Karena itu canary dan ambang kegagalan penting.
Scope firmware: read (melihat), write (unggah dan hapus berkas), rollout (membuat dan mengendalikan rollout). Setiap device sasaran tetap memerlukan device.configure. Role Operator bawaan tidak memilikinya. Rollout memakai hak pembuatnya, dievaluasi ulang tiap langkah.
Batasan
Section titled “Batasan”- Hanya model dengan image ESP32.
- Berkas tersimpan di disk server dan tidak ikut backup workspace; administrator harus mencadangkan folder firmware sendiri.
- Belum ada rollout menurut jadwal dan tombol “kembalikan ke versi sebelumnya” satu klik (buat rollout baru ke versi lama).