From 3d835cf5d586e3ae6d8554ce222d77fef027d8d6 Mon Sep 17 00:00:00 2001 From: Jordan Hotmann Date: Mon, 20 Nov 2023 15:24:44 -0700 Subject: [PATCH] Publish to different topic if state hasn't changed --- internal/homeassistant/subscriber.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/homeassistant/subscriber.go b/internal/homeassistant/subscriber.go index 7423423..7b8bbf4 100644 --- a/internal/homeassistant/subscriber.go +++ b/internal/homeassistant/subscriber.go @@ -134,7 +134,11 @@ func handleMessages() { if marshallErr != nil { logger.Error("Error marshalling event data", "error", marshallErr) } - nats.Publish(fmt.Sprintf("homeassistant.states.%s.%s", message.Event.Data.EntityId, message.Event.Data.NewState.State), data) + if message.Event.Data.NewState.State == message.Event.Data.OldState.State { + nats.Publish(fmt.Sprintf("homeassistant.attributues.%s.%s", message.Event.Data.EntityId, message.Event.Data.NewState.State), data) + } else { + nats.Publish(fmt.Sprintf("homeassistant.states.%s.%s", message.Event.Data.EntityId, message.Event.Data.NewState.State), data) + } nats.SetKeyValueString(fmt.Sprintf("homeassistant.states.%s", message.Event.Data.EntityId), message.Event.Data.NewState.State) case zhaEventId: data, _ := json.Marshal(message.Event.Data)