From b56a16d0d7675adee27b8a52e39df8b98d333ffa Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Sun, 31 Aug 2025 21:58:33 +0200 Subject: [PATCH] Moved presence debug mqtt message to lua --- automation_devices/src/debug_bridge.rs | 28 +------------------------- config.lua | 6 ++++++ 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/automation_devices/src/debug_bridge.rs b/automation_devices/src/debug_bridge.rs index 2c683b1..515fac5 100644 --- a/automation_devices/src/debug_bridge.rs +++ b/automation_devices/src/debug_bridge.rs @@ -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(); - } -} diff --git a/config.lua b/config.lua index 376b028..1c5de72 100644 --- a/config.lua +++ b/config.lua @@ -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)