Feature: Send mqtt messages from lua

This commit is contained in:
2025-08-31 05:36:01 +02:00
parent 549d821e3a
commit dd379e4077

View File

@@ -23,7 +23,25 @@ impl DerefMut for WrappedAsyncClient {
} }
} }
impl mlua::UserData for WrappedAsyncClient {} impl mlua::UserData for WrappedAsyncClient {
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M) {
methods.add_async_method(
"send_message",
|_lua, this, (topic, message): (String, mlua::Value)| async move {
let message = serde_json::to_string(&message).unwrap();
debug!("message = {message}");
this.0
.publish(topic, rumqttc::QoS::AtLeastOnce, true, message)
.await
.unwrap();
Ok(())
},
);
}
}
pub fn start(mut eventloop: EventLoop, event_channel: &EventChannel) { pub fn start(mut eventloop: EventLoop, event_channel: &EventChannel) {
let tx = event_channel.get_tx(); let tx = event_channel.get_tx();