Skip to content
Snippets Groups Projects
Commit 2a2e41b9 authored by KERDREUX Jerome's avatar KERDREUX Jerome
Browse files

Merge branch 'main' of gitlab.imt-atlantique.fr:xaal/code/go/z2m

parents 2da128c6 a261d983
No related branches found
No related tags found
No related merge requests found
......@@ -12,7 +12,6 @@ func setupDevice(dev *xaal.Device, bDevice *BridgeDevice) {
dev.HWID = bDevice.IeeeAddress
dev.Version = bDevice.SwBuildID
dev.Info = "z2m: " + bDevice.FriendlyName
}
func NewDevices(bDevice *BridgeDevice) {
......
......@@ -7,7 +7,6 @@ import (
"math"
"slices"
"sort"
"strings"
MQTT "github.com/eclipse/paho.mqtt.golang"
"gitlab.imt-atlantique.fr/xaal/code/go/core/xaal"
......@@ -55,6 +54,14 @@ type Feature struct {
Unit string `json:"unit,omitempty"`
}
func (bDevice *BridgeDevice) GetTopic() string {
return mqttTopic + "/" + bDevice.FriendlyName
}
func (bDevice *BridgeDevice) SetTopic() string {
return bDevice.GetTopic() + "/set"
}
func parseDeviceJSON(jsonData []byte) {
var devices []BridgeDevice
err := json.Unmarshal([]byte(jsonData), &devices)
......@@ -134,17 +141,6 @@ func deviceHandler(device *BridgeDevice, msg MQTT.Message) {
}
}
func getDevices(topic string) *BridgeDevice {
gw := GetGW()
target := strings.TrimPrefix(topic, mqttTopic+"/")
for _, device := range gw.devices {
if device.FriendlyName == target {
return device
}
}
return nil
}
func dumpMessage(msg MQTT.Message) {
var data map[string]interface{}
err := json.Unmarshal(msg.Payload(), &data)
......@@ -174,7 +170,14 @@ func publishHander(client MQTT.Client, msg MQTT.Message) {
if msg.Topic() == mqttTopic+"/bridge/devices" {
parseDeviceJSON(msg.Payload())
} else {
dev := getDevices(msg.Topic())
var dev *BridgeDevice = nil
for _, known := range GetGW().devices {
if known.GetTopic() == msg.Topic() {
dev = known
break
}
}
if dev == nil {
dumpMessage(msg)
} else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment