implement async mqtt config update trigger and fix mqtt.rs corruption
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user