This commit is contained in:
Mateusz Gruszczyński
2026-09-16 11:09:38 +02:00
parent 0437ef7b6f
commit 0d73844f23
17 changed files with 147 additions and 54 deletions
+31 -1
View File
@@ -176,6 +176,27 @@ async fn read_cycle_room_sensors(
.collect()
}
fn home_assistant_sensor_log_message(
error: &str,
entity_id: Option<&str>,
zone_name: &str,
) -> String {
let entity_id = entity_id.map(str::trim).filter(|value| !value.is_empty());
let zone_name = zone_name.trim();
let context = match (entity_id, zone_name.is_empty()) {
(Some(entity_id), false) => format!("{entity_id}, zone {zone_name}"),
(Some(entity_id), true) => entity_id.to_string(),
(None, false) => format!("zone {zone_name}"),
(None, true) => return error.to_string(),
};
if let Some(detail) = error.strip_prefix("Home Assistant sensor is stale:") {
format!("Home Assistant sensor {context} is stale:{detail}")
} else {
format!("{error} [sensor: {context}]")
}
}
fn refresh_zone_temperature(
state: &AppState,
settings: &RuntimeSettings,
@@ -216,12 +237,21 @@ fn refresh_zone_temperature(
} else {
"ha.sensor_error"
};
let entity_id = resolved_entity
.as_deref()
.or(zone.ha_entity_id.as_deref());
let message = home_assistant_sensor_log_message(
&err,
entity_id,
&zone.name,
);
state.log(
"warn",
kind,
&err,
&message,
json!({
"zone_id": zone.id,
"zone_name": zone.name,
"configured_entity_id": zone.ha_entity_id.as_deref(),
"resolved_entity_id": resolved_entity,
}),