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

Refactoring

parent 5b5c5fa3
No related branches found
No related tags found
No related merge requests found
......@@ -18,7 +18,7 @@ func main() {
}
xaal.SetupLogger()
client := setupMQTT(*mqttBroker, 1883)
client := mqttSetup(*mqttBroker, 1883)
// client.Publish("zigbee2mqtt/0x70b3d52b600f89d3/set", 0, false, `{"state": "toggle"}`)
eng := xaal.NewEngine()
......
......@@ -94,7 +94,7 @@ func (bDevices *BridgeDevice) dump() {
}
}
func parseDeviceJSON(jsonData []byte) {
func jsonParseDevices(jsonData []byte) {
var devices []BridgeDevice
err := json.Unmarshal([]byte(jsonData), &devices)
if err != nil {
......@@ -121,7 +121,7 @@ func parseDeviceJSON(jsonData []byte) {
}
}
func deviceHandler(device *BridgeDevice, msg MQTT.Message) {
func mqttDeviceHandler(device *BridgeDevice, msg MQTT.Message) {
var data map[string]interface{}
err := json.Unmarshal(msg.Payload(), &data)
if err != nil {
......@@ -131,22 +131,23 @@ func deviceHandler(device *BridgeDevice, msg MQTT.Message) {
}
}
func dumpMQTTMsg(msg MQTT.Message) {
func mqttDumpMsg(msg MQTT.Message) {
var data map[string]interface{}
err := json.Unmarshal(msg.Payload(), &data)
if err != nil {
slog.Error("Error decoding JSON %v", "err", err)
}
// sort keys
keys := make([]string, 0, len(data))
for key := range data {
keys = append(keys, key)
}
sort.Strings(keys)
// dump keys
tab := table.NewWriter()
tab.SetTitle("MQTT update")
tab.SetStyle(table.StyleRounded)
for _, key := range keys {
if key != "update" {
tab.AppendRow(table.Row{key, data[key]})
......@@ -155,7 +156,7 @@ func dumpMQTTMsg(msg MQTT.Message) {
fmt.Println(tab.Render())
}
func publishHander(client MQTT.Client, msg MQTT.Message) {
func mqttPublishHander(client MQTT.Client, msg MQTT.Message) {
if slices.Contains(ignoredTopics, msg.Topic()) {
return
}
......@@ -163,7 +164,7 @@ func publishHander(client MQTT.Client, msg MQTT.Message) {
slog.Debug("Received message on", "topic", msg.Topic())
if msg.Topic() == mqttTopic+"/bridge/devices" {
parseDeviceJSON(msg.Payload())
jsonParseDevices(msg.Payload())
} else {
var dev *BridgeDevice = nil
for _, known := range GetGW().devices {
......@@ -174,20 +175,20 @@ func publishHander(client MQTT.Client, msg MQTT.Message) {
}
if dev == nil {
dumpMQTTMsg(msg)
mqttDumpMsg(msg)
} else {
deviceHandler(dev, msg)
dumpMQTTMsg(msg)
mqttDeviceHandler(dev, msg)
mqttDumpMsg(msg)
}
}
}
func setupMQTT(mqttBroker string, port int) MQTT.Client {
func mqttSetup(mqttBroker string, port int) MQTT.Client {
// This JS style of creating a client is awfully verbose
opts := MQTT.NewClientOptions().
AddBroker(fmt.Sprintf("tcp://%s:%d", mqttBroker, port)).
SetClientID(mqttClientID).
SetDefaultPublishHandler(publishHander).SetAutoReconnect(true)
SetDefaultPublishHandler(mqttPublishHander).SetAutoReconnect(true)
client := MQTT.NewClient(opts)
slog.Debug("Connected to ", "client", client)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment