Daftarkan callback
CPP
main.ino
void handleCommand(String variable, String value) {
if (variable == "relay") {
const bool aktif = value == "ON";
digitalWrite(2, aktif ? HIGH : LOW);
ruangiot.sendStatus("relay", aktif ? "ON" : "OFF");
}
}
Validasi command
- Validasi nama variable dan tipe payload.
- Tolak nilai di luar rentang yang diizinkan.
- Jangan menjalankan command berbahaya tanpa proteksi.
- Kirim status aktual setelah aksi selesai.
Jaga loop tetap responsif
Proses blocking yang terlalu lama dapat membuat keep-alive MQTT terputus dan command terlambat. Pecah pekerjaan panjang menjadi state machine atau timer.