Moved presence debug mqtt message to lua

This commit is contained in:
2025-08-31 21:58:33 +02:00
parent 1530875045
commit b56a16d0d7
2 changed files with 7 additions and 27 deletions

View File

@@ -3,11 +3,9 @@ use std::convert::Infallible;
use async_trait::async_trait;
use automation_lib::config::MqttDeviceConfig;
use automation_lib::device::{Device, LuaDeviceCreate};
use automation_lib::event::OnPresence;
use automation_lib::messages::PresenceMessage;
use automation_lib::mqtt::WrappedAsyncClient;
use automation_macro::{LuaDevice, LuaDeviceConfig};
use tracing::{trace, warn};
use tracing::trace;
#[derive(Debug, LuaDeviceConfig, Clone)]
pub struct Config {
@@ -39,27 +37,3 @@ impl Device for DebugBridge {
self.config.identifier.clone()
}
}
#[async_trait]
impl OnPresence for DebugBridge {
async fn on_presence(&self, presence: bool) {
let message = PresenceMessage::new(presence);
let topic = format!("{}/presence", self.config.mqtt.topic);
self.config
.client
.publish(
topic,
rumqttc::QoS::AtLeastOnce,
true,
serde_json::to_string(&message).expect("Serialization should not fail"),
)
.await
.map_err(|err| {
warn!(
"Failed to update presence on {}/presence: {err}",
self.config.mqtt.topic
)
})
.ok();
}
}

View File

@@ -70,6 +70,12 @@ on_presence:add(function(presence)
},
})
end)
on_presence:add(function(presence)
mqtt_client:send_message(mqtt_automation("debug") .. "/presence", {
state = presence,
updated = automation.util.get_epoch(),
})
end)
local on_light = {
add = function(self, f)