From 9531bd95de0141ff1f76229d58616c4811e63e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Z=C3=ADpek?= Date: Fri, 7 Mar 2025 21:39:35 +0100 Subject: [PATCH] Fix bug where multiple sensors wouldn't work --- server/services/mqtt_brokers_service.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/server/services/mqtt_brokers_service.go b/server/services/mqtt_brokers_service.go index 6e89a3e..3a8984f 100644 --- a/server/services/mqtt_brokers_service.go +++ b/server/services/mqtt_brokers_service.go @@ -218,7 +218,7 @@ func (s *MQTTBrokersService) EnsureListeners() { } topics := map[string]byte{} - brokerSensors := []*models.SensorItem{} + brokerSensors := []models.SensorItem{} for _, sensor := range sensors { if sensor.MqttBrokerId == nil || *sensor.MqttBrokerId != broker.Id { @@ -230,7 +230,7 @@ func (s *MQTTBrokersService) EnsureListeners() { } topics[*sensor.MqttTopic] = byte(0) - brokerSensors = append(brokerSensors, &sensor) + brokerSensors = append(brokerSensors, sensor) } if len(brokerSensors) == 0 { @@ -249,6 +249,10 @@ func (s *MQTTBrokersService) EnsureListeners() { log.Printf("MQTT broker %s: Listening for %d topics\n", broker.Name, len(topics)) + for _, sensor := range brokerSensors { + log.Printf("MQTT broker %s: Sensor %s (%d) - %s\n", broker.Name, sensor.Name, sensor.Id, *sensor.MqttTopic) + } + go func() { for { data, ok := <-client.Channel @@ -275,6 +279,7 @@ func (s *MQTTBrokersService) EnsureListeners() { } if *sensor.MqttTopic != data.Topic { + log.Printf("WARN: Skipping sensor %s because it has different topic", sensor.Name) continue } @@ -298,6 +303,8 @@ func (s *MQTTBrokersService) EnsureListeners() { continue } + log.Printf("Value for sensor %d (%s) - %f", sensor.Id, sensor.Name, value) + s.ctx.Services.SensorValues.Push(sensor.Id, value) }