diff --git a/src/mqtt.rs b/src/mqtt.rs index 54d29b1..6ace410 100644 --- a/src/mqtt.rs +++ b/src/mqtt.rs @@ -285,6 +285,27 @@ impl<'a> MqttPublisher<'a> { trace!("Publishing message: {:?}", msg); self.client.lock().await.publish(msg).await?; + let command_topic = Some(format!("{}/{}/refresh", prefix, screen)); + let name = format!("Refresh {}", screen); + let unique_id = format!("button.{}_refresh", key); + let object_id = unique_id.clone(); + let config = HassConfig { + command_topic, + name, + unique_id, + object_id, + state_topic: "".into(), + icon: "mdi:refresh".into(), + ..config + }; + let msg = Message::new_retained( + format!("homeassistant/button/{}_refresh/config", key), + serde_json::to_string(&config).unwrap(), + 0, + ); + trace!("Publishing message: {:?}", msg); + self.client.lock().await.publish(msg).await?; + let unique_id = format!("light.{}", key); let object_id = unique_id.clone(); let command_topic = Some(format!("{}/power", prefix)); @@ -296,6 +317,7 @@ impl<'a> MqttPublisher<'a> { name, unique_id, object_id, + icon: "mdi:monitor".into(), ..config }; let msg = Message::new_retained(