implement async mqtt config update trigger and fix mqtt.rs corruption

This commit is contained in:
2026-05-10 17:55:53 +02:00
parent 4debbfb39e
commit bd257b89f0

View File

@@ -283,19 +283,22 @@ async fn mqtt_incoming_task(
let mut board = board_mutex.lock().await; let mut board = board_mutex.lock().await;
if let Err(e) = board.board_hal.get_esp().save_config(payload_str.as_bytes().to_vec()).await { if let Err(e) = board.board_hal.get_esp().save_config(payload_str.as_bytes().to_vec()).await {
info!("Error saving config to flash: {}", e); info!("Error saving config to flash: {}", e);
let _ = publish("/config/update", "false").await;
} else { } else {
board.board_hal.set_config(config); board.board_hal.set_config(config);
info!("Config applied, rebooting"); info!("Config applied, rebooting");
let _ = publish("/config/update", "false").await;
board.board_hal.get_esp().deep_sleep_ms(0); board.board_hal.get_esp().deep_sleep_ms(0);
} }
} }
Err(e) => { Err(e) => {
info!("Error deserializing config: {}", e); info!("Error deserializing config: {}", e);
let _ = publish("/config/update", "false").await;
} }
} }
} else { } else {
info!("No config update payload available"); info!("No config update payload available");
let _ = publish("/config/update", "false").await;
} }
} }
} else { } else {