refactor: replace mqtt_publish() call sites with mqtt::publish()

This commit is contained in:
2026-05-05 20:58:26 +02:00
parent d2b18db250
commit 087d6e20cd

View File

@@ -490,11 +490,7 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> {
match &serde_json::to_string(&light_state) { match &serde_json::to_string(&light_state) {
Ok(state) => { Ok(state) => {
let _ = board let _ = mqtt::publish("/light", state).await;
.board_hal
.get_esp()
.mqtt_publish("/light", state)
.await;
} }
Err(err) => { Err(err) => {
info!("Error publishing lightstate {}", err); info!("Error publishing lightstate {}", err);
@@ -504,29 +500,16 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> {
let deep_sleep_duration_minutes: u32 = let deep_sleep_duration_minutes: u32 =
// if battery soc is unknown assume battery has enough change // if battery soc is unknown assume battery has enough change
if state_of_charge < 10.0 && !matches!(battery_state, BatteryState::Unknown) { if state_of_charge < 10.0 && !matches!(battery_state, BatteryState::Unknown) {
let _ = board let _ = mqtt::publish("/deepsleep", "low Volt 12h").await;
.board_hal
.get_esp()
.mqtt_publish("/deepsleep", "low Volt 12h").await;
12 * 60 12 * 60
} else if is_day { } else if is_day {
let _ = board let _ = mqtt::publish("/deepsleep", "normal 20m").await;
.board_hal
.get_esp()
.mqtt_publish("/deepsleep", "normal 20m").await;
20 20
} else { } else {
let _ = board let _ = mqtt::publish("/deepsleep", "night 1h").await;
.board_hal
.get_esp()
.mqtt_publish("/deepsleep", "night 1h").await;
60 60
}; };
let _ = board let _ = mqtt::publish("/state", "sleep").await;
.board_hal
.get_esp()
.mqtt_publish("/state", "sleep")
.await;
info!("Go to sleep for {} minutes", deep_sleep_duration_minutes); info!("Go to sleep for {} minutes", deep_sleep_duration_minutes);
//determine next event //determine next event
@@ -691,7 +674,7 @@ async fn publish_tank_state(
&tank_state.as_mqtt_info(&board.board_hal.get_config().tank, &water_temp), &tank_state.as_mqtt_info(&board.board_hal.get_config().tank, &water_temp),
) )
.unwrap(); .unwrap();
let _ = board.board_hal.get_esp().mqtt_publish("/water", &*state); let _ = mqtt::publish("/water", &*state).await;
} }
async fn publish_plant_states( async fn publish_plant_states(
@@ -707,11 +690,7 @@ async fn publish_plant_states(
let state = let state =
serde_json::to_string(&plant_state.to_mqtt_info(plant_conf, timezone_time)).unwrap(); serde_json::to_string(&plant_state.to_mqtt_info(plant_conf, timezone_time)).unwrap();
let plant_topic = format!("/plant{}", plant_id + 1); let plant_topic = format!("/plant{}", plant_id + 1);
let _ = board let _ = mqtt::publish(&plant_topic, &state).await;
.board_hal
.get_esp()
.mqtt_publish(&plant_topic, &state)
.await;
} }
} }
@@ -721,13 +700,12 @@ async fn publish_firmware_info(
ip_address: &str, ip_address: &str,
timezone_time: &str, timezone_time: &str,
) { ) {
let esp = board.board_hal.get_esp(); mqtt::publish("/firmware/address", ip_address).await;
esp.mqtt_publish("/firmware/address", ip_address).await; mqtt::publish("/firmware/state", format!("{:?}", &version).as_str())
esp.mqtt_publish("/firmware/state", format!("{:?}", &version).as_str())
.await; .await;
esp.mqtt_publish("/firmware/last_online", timezone_time) mqtt::publish("/firmware/last_online", timezone_time)
.await; .await;
esp.mqtt_publish("/state", "online").await; mqtt::publish("/state", "online").await;
} }
macro_rules! mk_static { macro_rules! mk_static {
($t:ty,$val:expr) => {{ ($t:ty,$val:expr) => {{
@@ -827,15 +805,7 @@ async fn pump_info(
match serde_json::to_string(&pump_info) { match serde_json::to_string(&pump_info) {
Ok(state) => { Ok(state) => {
BOARD_ACCESS let _ = mqtt::publish(&pump_topic, &state).await;
.get()
.await
.lock()
.await
.board_hal
.get_esp()
.mqtt_publish(&pump_topic, &state)
.await;
} }
Err(err) => { Err(err) => {
warn!("Error publishing pump state {}", err); warn!("Error publishing pump state {}", err);
@@ -853,10 +823,7 @@ async fn publish_mppt_state(
voltage_ma: voltage.as_millivolts() as u32, voltage_ma: voltage.as_millivolts() as u32,
}; };
if let Ok(serialized_solar_state_bytes) = serde_json::to_string(&solar_state) { if let Ok(serialized_solar_state_bytes) = serde_json::to_string(&solar_state) {
let _ = board let _ = mqtt::publish("/mppt", &serialized_solar_state_bytes).await;
.board_hal
.get_esp()
.mqtt_publish("/mppt", &serialized_solar_state_bytes);
} }
Ok(()) Ok(())
} }
@@ -877,11 +844,7 @@ async fn publish_battery_state(
Err(_) => "error".to_owned(), Err(_) => "error".to_owned(),
}; };
{ {
let _ = board let _ = mqtt::publish("/battery", &*value).await;
.board_hal
.get_esp()
.mqtt_publish("/battery", &*value)
.await;
} }
} }
@@ -985,9 +948,8 @@ async fn wait_infinity(
let cur = board.board_hal.get_time().await; let cur = board.board_hal.get_time().await;
let timezone_time = cur.with_timezone(&timezone); let timezone_time = cur.with_timezone(&timezone);
let esp = board.board_hal.get_esp(); mqtt::publish("/state", "config").await;
esp.mqtt_publish("/state", "config").await; mqtt::publish("/firmware/last_online", &timezone_time.to_rfc3339())
esp.mqtt_publish("/firmware/last_online", &timezone_time.to_rfc3339())
.await; .await;
last_mqtt_update = Some(now); last_mqtt_update = Some(now);
} }