summaryrefslogtreecommitdiff
path: root/mqtt.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2026-03-26 21:35:43 +0100
committerxengineering <me@xengineering.eu>2026-03-26 21:35:43 +0100
commit0fb9d297871e57372c469c6e8ca2b43813ed1f52 (patch)
treeffe261f4141c823bb6d345e6e22e12ec630b8ae5 /mqtt.go
parenta965777d436f3bd68686e3b33066459c7ed5a01c (diff)
parent0ec5e0034891075ca0c70c6d29e20442c8ddb46e (diff)
downloadsia-server-0fb9d297871e57372c469c6e8ca2b43813ed1f52.tar
sia-server-0fb9d297871e57372c469c6e8ca2b43813ed1f52.tar.zst
sia-server-0fb9d297871e57372c469c6e8ca2b43813ed1f52.zip
Merge branch 'discovery'
This allows the client to discover the existence of Shelly and TP-Link devices.
Diffstat (limited to 'mqtt.go')
-rw-r--r--mqtt.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/mqtt.go b/mqtt.go
index fd1cba1..acd0108 100644
--- a/mqtt.go
+++ b/mqtt.go
@@ -27,6 +27,7 @@ var (
type MQTTMessage struct {
Topic string
Payload []byte
+ Retain bool
}
type Route struct {
@@ -60,6 +61,7 @@ func MQTTRun(config MQTTConfig, tx chan MQTTMessage, routes ...Route) {
message := MQTTMessage{
Topic: strings.TrimPrefix(msg.Topic(), config.TopicPrefix + "/"),
Payload: msg.Payload(),
+ Retain: msg.Retained(),
}
route.Destination <- message
})
@@ -88,7 +90,7 @@ func MQTTRun(config MQTTConfig, tx chan MQTTMessage, routes ...Route) {
for message := range tx {
topic := fmt.Sprintf("%s/%s", config.TopicPrefix, message.Topic)
- client.Publish(topic, QoS1, RETAINED, message.Payload)
+ client.Publish(topic, QoS1, message.Retain, message.Payload)
}
}