From 83998b5e7e94701bc205b5aaac238c4dba3f5770 Mon Sep 17 00:00:00 2001 From: Sam Lewis Date: Thu, 10 Nov 2022 20:32:32 -0500 Subject: [PATCH] only trigger ETL if newState != oldState --- entitylistener.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/entitylistener.go b/entitylistener.go index f4f70b5..8918253 100644 --- a/entitylistener.go +++ b/entitylistener.go @@ -164,6 +164,14 @@ func callEntityListeners(app *App, msgBytes []byte) { return } + // if new state is same as old state, don't call + // event listener. I noticed this with iOS app location, + // every time I refresh the app it triggers a device_tracker + // entity listener. + if msg.Event.Data.NewState.State == msg.Event.Data.OldState.State { + return + } + for _, l := range listeners { // Check conditions if c := checkWithinTimeRange(l.betweenStart, l.betweenEnd); c.fail {