From bc72b239c757cfd21925f772768314f05b537e78 Mon Sep 17 00:00:00 2001
From: jkerdreux-imt <jerome.kerdreux@imt-atlantique.fr>
Date: Wed, 20 Nov 2024 16:21:47 +0100
Subject: [PATCH] Fix mqqtTopic global
I guess I missed a push on git.. so back port this missing stuff.
---
config.go | 1 -
gateway.go | 2 +-
z2m.go | 4 +++-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/config.go b/config.go
index 4e2e92b..e849548 100644
--- a/config.go
+++ b/config.go
@@ -10,7 +10,6 @@ import (
)
var (
- mqttTopic = "zigbee2mqtt"
mqttClientID = "z2m-" + uuid.New().String()
ignoredTopics = []string{
"bridge/groups",
diff --git a/gateway.go b/gateway.go
index 198ada6..f44ce43 100644
--- a/gateway.go
+++ b/gateway.go
@@ -34,8 +34,8 @@ func (gw *Gateway) AddZDevice(zDev *Z2MDevice) {
slog.Debug("Adding device", "dev", dev.String())
gw.Engine.AddDevice(dev)
}
- gw.Devices[zDev.FriendlyName] = zDev
zDev.Gateway = gw
+ gw.Devices[zDev.FriendlyName] = zDev
}
func (gw *Gateway) RemoveZDevice(zDev *Z2MDevice) {
diff --git a/z2m.go b/z2m.go
index c8fab24..86926fe 100644
--- a/z2m.go
+++ b/z2m.go
@@ -61,7 +61,7 @@ type Feature struct {
// returns the topic for the device
func (zDev *Z2MDevice) getTopic() string {
- return mqttTopic + "/" + zDev.FriendlyName
+ return zDev.Gateway.Config.topic + "/" + zDev.FriendlyName
}
// return the expose with the given name
@@ -90,6 +90,8 @@ func (zDev *Z2MDevice) HandleMessage(msg mqtt.Message) {
// creates new xAAL devices from a bridge device
func (zDev *Z2MDevice) FindXAALDevices(gw *Gateway) {
+ // There is a trick here. We call FindXAALDevices w/ gw argument, but the Gateway is only set
+ // in the AddZDevice method. This is not mandatory but avoid to have Gateway at random place
baseAddr := gw.Config.baseAddr
ieeeAddr, _ := hexStringToInteger(zDev.IeeeAddress)
baseAddr, _ = baseAddr.Add(int64(ieeeAddr))
--
GitLab