7 Commits

Author SHA1 Message Date
a66843a455 move all mqtt publishing functions to mqtt module 2026-05-10 21:00:55 +02:00
379808e659 refctor: TankInfo structure (consistent layout)
- fix: use tagged enum serialization for TankError
- fix: rename TankInfo fields for consistent naming (volume_ml, pct, water_temp_c)
- renamed some fields for better clarity on contained value
2026-05-10 21:00:53 +02:00
e2b2734301 refactor: PlantInfo structure (consistent layout)
- fix: use tagged enum serialization for MoistureSensorError and PumpError
- fix: flatten PlantInfo sensors to SensorTelemetry with top-level moisture_pct
2026-05-10 21:00:52 +02:00
43a0c3c274 refactor: BatteryInfo structure (consistent layout)
- use tagged enum serialization for BatteryError
- flatten BatteryInfo telemetry with consistent field names and typed error
2026-05-10 21:00:50 +02:00
2b83d99820 fix: serialize firmware/state as JSON instead of Debug format 2026-05-10 21:00:47 +02:00
4cc70f96de Merge branch 'fix/stay-alive-webserver-spawn' into legacy/v3-support 2026-05-10 20:59:50 +02:00
c90174be27 fix actually spawn async task for webserver when entering stay_alive mode 2026-05-10 20:49:43 +02:00

View File

@@ -561,7 +561,8 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> {
if stay_alive {
let reboot_now = Arc::new(AtomicBool::new(false));
let _webserver = http_server(reboot_now.clone(), stack.take().unwrap());
spawner.spawn(http_server(reboot_now.clone(), stack.take().unwrap())?);
wait_infinity(board, WaitType::MqttConfig, reboot_now.clone(), UTC).await;
} else {
//TODO wait for all mqtt publishes?