diff --git a/gateway.go b/gateway.go index b83418388836f76098bdb5189483c28a97666434..7341ac801b3327a8841e46dd97d77ab724e57a72 100644 --- a/gateway.go +++ b/gateway.go @@ -58,21 +58,21 @@ func (gw *Gateway) mqttPublishHander(client MQTT.Client, msg MQTT.Message) { } // Is it devices definitions ? if msg.Topic() == gw.config.topic+"/bridge/devices" { - gw.jsonParseDevices(msg.Payload()) + gw.jsonParseDevices(msg) } else { - dev := gw.GetZDeviceByTopic(msg.Topic()) + zDev := gw.GetZDeviceByTopic(msg.Topic()) // mqttDumpMsg(msg) - if dev != nil { - dev.HandleMessage(msg) + if zDev != nil { + zDev.HandleMessage(msg) } } } // jsonParseDevices parses the bridge/devices json and creates new xAAL devices // if they don't exist -func (gw *Gateway) jsonParseDevices(jsonData []byte) { +func (gw *Gateway) jsonParseDevices(msg MQTT.Message) { var devices []Z2MDevice - err := json.Unmarshal([]byte(jsonData), &devices) + err := json.Unmarshal(msg.Payload(), &devices) if err != nil { slog.Error("Error decoding JSON", "err", err) }