Reactor Sensor started flapping for no apparent reason

Hi @rigpapa , today my reactor sensor that notifies us of the garage opening or closing (via app and Alexa TTS) went completely mental for a while - it’s a very very simple sensor but was flapping like crazy and I had to disable it for a while as it was annoying the wife. I havent changed the way it works in months.

I forced a Luup Reload and waited 10 mins while I went thru the logs - I’m not sure why it was flapping but im assuming it’s a Vera issue even tho the Vera device (garage) did not appear to be changing state in the UI or app.

Any ideas an what to look for if it does it again? Everything else was fine and there was nothing obvious in the logs.

Would you mind sharing the Logic Summary from that sensor?

Not at all, like I said, it is incredible simple:

```
*************************************************** REACTOR LOGIC SUMMARY REPORT ***************************************************
   Version: 3.5 config 20017 cdata 20045 ui 20045 pluginDevice 120 LuaXP not loaded
    System: Vera version 1.7.4970 (7.31) on Sercomm G450 ID 36 (Vera Plus); loadtime 1584328379; systemReady 1584328419; Lua 5.1; JSON dkjson 1.2; UnsafeLua=nil
Local time: 2020-03-16T17:07:46+1100; DST=1; Kilsyth, Victoria Australia; formats %Y-%m-%d %H:%M:%S
House mode: plugin 1; system 1; tracking on
  Sun data: { "source": "int", "civdawn": 1584301891, "nautdawn": 1584300043, "sunset": 1584347819, "nautdusk": 1584351243, "stamp": 2020076, "latitude": -37.804519, "astrodusk": 1584353125, "longitude": 145.331965, "civdusk": 1584349395, "astrodawn": 1584298161, "sunrise": 1584303467 }
  Geofence: not running
************************************************************************************************************************************
TTS - Garage Open (#123)
    Version 19082.19 03/12/20 16:38:28
    Message/status: Not tripped
    Condition group "Door Monitor" (OR)  false as of 14:04:02 <root>
      |-F-group "Door Open" (AND)  false as of 14:04:02 <grpdhrvxj4>
      |     &-F-service Garage Door (66) urn:upnp-org:serviceId:SwitchPower1/Status = 1 for ge 1800s [0 => 1 at 16:44:02; T/F as of 16:44:02/14:04:02] <cond165c8076262>
    Activity grpdhrvxj4.true
        Run Lua:
             1: luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", {Text="The Garage door has been open for 30 minutes", Volume=50, GroupZones="Kitchen", Repeat = 1}, 388)
             2: luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", {Text="The Garage door has been open for 30 minutes", Volume=50, GroupZones="Lounge Room", Repeat = 1}, 388)
             3: luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", {Text="The Garage door has been open for 30 minutes", Volume=50, GroupZones="Garage", Repeat = 1}, 388)
    Events
        2020-03-16 14:13:34: Reactor startup (Luup reload)
        2020-03-16 14:13:35: Starting (Luup Startup/Reload)
        2020-03-16 15:01:10: Device Garage Door (#66) urn:upnp-org:serviceId:SwitchPower1/Status changed from "0" to "1"
        2020-03-16 15:01:10: Condition cond165c8076262 test state changed from false to true
        2020-03-16 15:01:10: Condition cond165c8076262 holding evaluation state for check that duration >= 1800 (1800 to go)
        2020-03-16 15:02:17: Device Garage Door (#66) urn:upnp-org:serviceId:SwitchPower1/Status changed from "1" to "0"
        2020-03-16 15:02:17: Condition cond165c8076262 test state changed from true to false
        2020-03-16 15:42:51: Device Garage Door (#66) urn:upnp-org:serviceId:SwitchPower1/Status changed from "0" to "1"
        2020-03-16 15:42:51: Condition cond165c8076262 test state changed from false to true
        2020-03-16 15:42:51: Condition cond165c8076262 holding evaluation state for check that duration >= 1800 (1800 to go)
        2020-03-16 15:45:48: Device Garage Door (#66) urn:upnp-org:serviceId:SwitchPower1/Status changed from "1" to "0"
        2020-03-16 15:45:48: Condition cond165c8076262 test state changed from true to false
        2020-03-16 16:44:02: Device Garage Door (#66) urn:upnp-org:serviceId:SwitchPower1/Status changed from "0" to "1"
        2020-03-16 16:44:02: Condition cond165c8076262 test state changed from false to true
        2020-03-16 16:44:02: Condition cond165c8076262 holding evaluation state for check that duration >= 1800 (1800 to go)
    Devices
        ZWave (1) urn:schemas-micasaverde-com:device:ZWaveNetwork:1 (19/0); parent 0; plugin -; mfg  model ; dev D_ZWaveNetwork.xml impl 
        Garage Door (66) urn:schemas-upnp-org:device:BinaryLight:1 (32/5); parent 1; plugin -; mfg Aeotec model ZW062; dev D_BinaryLight1.xml impl 
    Watches
        Device #123 TTS - Garage Open service urn:toggledbits-com:serviceId:ReactorSensor variable TestHouseMode
        Device #123 TTS - Garage Open service urn:toggledbits-com:serviceId:ReactorSensor variable cdata
        Device #123 TTS - Garage Open service urn:toggledbits-com:serviceId:ReactorSensor variable TestTime
        Device #66 Garage Door service urn:upnp-org:serviceId:SwitchPower1 variable Status
    Special Configuration
        UseReactorScenes = 1
        Retrigger = 0
        FailOnTrouble = 0
        ContinuousTimer = 0
```

I would recommend a luup reload… This is very similar to the ghost sensor trip thread and looks like a memory corruption issue on the vera. Nothing to do with reactor.
I suppose it has stopped flapping now? Maybe after you did a luup reload?

1 Like

It has but it took at least 5 mins after the luup reload.

Had another bout today - I suspect the issue is Vera but here’s the summary anyway (removed as it didnt cover the events):

Again the garage state didn’t appear to be flapping in the iOS UI and this time I resolved it by actually opening then closing the Garage Door from the app.

General advice: any time a ReactorSensor isn’t doing what you want it to do, you need to run, not walk, to the Tools tab and grab the Logic Summary. Look at the Events section–it lists every device change received, and every response to those changes, so you can trace the source of the response. Do not restart the sensor, restart Luup, or reboot the Vera before pulling the Logic Summary. By default, the Events log is an in-memory structure, so anything like that will erase the log.

There is a way to persist an Events log, however, and log more data (by default, the Events log keeps only the last 100 events). Turn on logging to file by setting LogEventsToFile on your ReactorSensor to “1” (0 turns it off). Watch your disk space! The default max log size is 256KB, and should not be a problem even for tight systems, but be careful if you enable this on multiple RSs, because each one gets its own 256KB log!

2 Likes

I think something screwy is going on with either the controller or Vera as it happened again a few mins ago:

```
*************************************************** REACTOR LOGIC SUMMARY REPORT ***************************************************
   Version: 3.5 config 20017 cdata 20045 ui 20045 pluginDevice 120 LuaXP not loaded
    System: Vera version 1.7.4970 (7.31) on Sercomm G450 ID 36 (Vera Plus); loadtime 1584409410; systemReady 1584409435; Lua 5.1; JSON dkjson 1.2; UnsafeLua=nil
Local time: 2020-03-18T08:33:58+1100; DST=1; Kilsyth, Victoria Australia; formats %Y-%m-%d %H:%M:%S
House mode: plugin 1; system 1; tracking on
  Sun data: { "source": "int", "civdawn": 1584474804, "nautdawn": 1584472962, "sunset": 1584520435, "nautdusk": 1584523852, "stamp": 2020078, "latitude": -37.804519, "astrodusk": 1584525725, "longitude": 145.331965, "civdusk": 1584522009, "astrodawn": 1584471089, "sunrise": 1584476379 }
  Geofence: not running
************************************************************************************************************************************
Garage Sensor (#121) tripped
    Version 19082.9 03/02/20 20:56:22
    Message/status: Tripped
    Condition group "Garage Status" (AND)  TRUE as of 08:33:41 <root>
      &-T-group "Closed" (AND)  TRUE as of 08:33:41 <grpmr03tl6>
      |     &-T-service Garage Door (66) urn:upnp-org:serviceId:SwitchPower1/Status = 0 for ge 8s [1 => 0 at 08:33:33; T/T as of 08:33:33/08:33:41] <cond165c802679a>
    Activity root.false
        Run Lua:
             1: luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", {Text="Garage Door is now Open", Volume=50, GroupZones="Kitchen", Repeat = 1}, 388)
    Activity root.true
        Run Lua:
             1: luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", {Text="Garage Door is now Closed", Volume=50, GroupZones="Kitchen", Repeat = 1}, 388)
    Events
      <SNIP> 
        2020-03-18 08:28:02: Restart action invoked; clearing state and restarting ReactorSensor
        2020-03-18 08:28:02: Restarting
        2020-03-18 08:28:04: Condition cond165c802679a test state changed from (nil) to true
        2020-03-18 08:28:04: Condition cond165c802679a holding evaluation state for check that duration >= 8 (8 to go)
        2020-03-18 08:28:04: Condition cond165c802679a evaluation state changed from (nil) to false
        2020-03-18 08:28:04: Group Closed test state changed from (nil) to false
        2020-03-18 08:28:04: Group Closed evaluation state changed from (nil) to false
        2020-03-18 08:28:04: Group Garage Status test state changed from (nil) to false
        2020-03-18 08:28:04: Group Garage Status evaluation state changed from (nil) to false
        2020-03-18 08:28:04: Launching Garage Status.false activity
        2020-03-18 08:28:04: Launching scene/activity root.false
        2020-03-18 08:28:04: Starting "root.false" group 1
        2020-03-18 08:28:07: Activity "root.false" finished
        2020-03-18 08:28:07: Changing RS tripped state to false
        2020-03-18 08:28:12: Condition cond165c802679a successfully sustained for at least 8 seconds (actual 8)
        2020-03-18 08:28:12: Condition cond165c802679a evaluation state changed from false to true
        2020-03-18 08:28:12: Group Closed test state changed from false to true
        2020-03-18 08:28:12: Group Closed evaluation state changed from false to true
        2020-03-18 08:28:12: Group Garage Status test state changed from false to true
        2020-03-18 08:28:12: Group Garage Status evaluation state changed from false to true
        2020-03-18 08:28:12: Launching Garage Status.true activity
        2020-03-18 08:28:12: Launching scene/activity root.true
        2020-03-18 08:28:12: Starting "root.true" group 1
        2020-03-18 08:28:14: Activity "root.true" finished
        2020-03-18 08:28:14: Changing RS tripped state to true
        2020-03-18 08:29:03: Restart action invoked; clearing state and restarting ReactorSensor
        2020-03-18 08:29:03: Restarting
        2020-03-18 08:29:04: Condition cond165c802679a test state changed from (nil) to true
        2020-03-18 08:29:04: Condition cond165c802679a holding evaluation state for check that duration >= 8 (8 to go)
        2020-03-18 08:29:04: Condition cond165c802679a evaluation state changed from (nil) to false
        2020-03-18 08:29:04: Group Closed test state changed from (nil) to false
        2020-03-18 08:29:04: Group Closed evaluation state changed from (nil) to false
        2020-03-18 08:29:04: Group Garage Status test state changed from (nil) to false
        2020-03-18 08:29:04: Group Garage Status evaluation state changed from (nil) to false
        2020-03-18 08:29:04: Launching Garage Status.false activity
        2020-03-18 08:29:04: Launching scene/activity root.false
        2020-03-18 08:29:04: Starting "root.false" group 1
        2020-03-18 08:29:07: Activity "root.false" finished
        2020-03-18 08:29:07: Changing RS tripped state to false
        2020-03-18 08:29:12: Condition cond165c802679a successfully sustained for at least 8 seconds (actual 8)
        2020-03-18 08:29:12: Condition cond165c802679a evaluation state changed from false to true
        2020-03-18 08:29:12: Group Closed test state changed from false to true
        2020-03-18 08:29:12: Group Closed evaluation state changed from false to true
        2020-03-18 08:29:12: Group Garage Status test state changed from false to true
        2020-03-18 08:29:12: Group Garage Status evaluation state changed from false to true
        2020-03-18 08:29:12: Launching Garage Status.true activity
        2020-03-18 08:29:12: Launching scene/activity root.true
        2020-03-18 08:29:12: Starting "root.true" group 1
        2020-03-18 08:29:14: Activity "root.true" finished
        2020-03-18 08:29:14: Changing RS tripped state to true
        2020-03-18 08:29:24: Device Garage Door (#66) urn:upnp-org:serviceId:SwitchPower1/Status changed from "0" to "1"
        2020-03-18 08:29:24: Condition cond165c802679a test state changed from true to false
        2020-03-18 08:29:24: Condition cond165c802679a evaluation state changed from true to false
        2020-03-18 08:29:24: Group Closed test state changed from true to false
        2020-03-18 08:29:24: Group Closed evaluation state changed from true to false
        2020-03-18 08:29:24: Group Garage Status test state changed from true to false
        2020-03-18 08:29:24: Group Garage Status evaluation state changed from true to false
        2020-03-18 08:29:24: Launching Garage Status.false activity
        2020-03-18 08:29:24: Launching scene/activity root.false
        2020-03-18 08:29:24: Starting "root.false" group 1
        2020-03-18 08:29:27: Activity "root.false" finished
        2020-03-18 08:29:27: Changing RS tripped state to false
        2020-03-18 08:33:33: Device Garage Door (#66) urn:upnp-org:serviceId:SwitchPower1/Status changed from "1" to "0"
        2020-03-18 08:33:33: Condition cond165c802679a test state changed from false to true
        2020-03-18 08:33:33: Condition cond165c802679a holding evaluation state for check that duration >= 8 (8 to go)
        2020-03-18 08:33:41: Condition cond165c802679a successfully sustained for at least 8 seconds (actual 8)
        2020-03-18 08:33:41: Condition cond165c802679a evaluation state changed from false to true
        2020-03-18 08:33:41: Group Closed test state changed from false to true
        2020-03-18 08:33:41: Group Closed evaluation state changed from false to true
        2020-03-18 08:33:41: Group Garage Status test state changed from false to true
        2020-03-18 08:33:41: Group Garage Status evaluation state changed from false to true
        2020-03-18 08:33:41: Launching Garage Status.true activity
        2020-03-18 08:33:41: Launching scene/activity root.true
        2020-03-18 08:33:41: Starting "root.true" group 1
        2020-03-18 08:33:43: Activity "root.true" finished
        2020-03-18 08:33:43: Changing RS tripped state to true
    Devices
        ZWave (1) urn:schemas-micasaverde-com:device:ZWaveNetwork:1 (19/0); parent 0; plugin -; mfg  model ; dev D_ZWaveNetwork.xml impl 
        Garage Door (66) urn:schemas-upnp-org:device:BinaryLight:1 (32/5); parent 1; plugin -; mfg Aeotec model ZW062; dev D_BinaryLight1.xml impl 
    Watches
        Device #121 Garage Sensor service urn:toggledbits-com:serviceId:ReactorSensor variable TestTime
        Device #121 Garage Sensor service urn:toggledbits-com:serviceId:ReactorSensor variable TestHouseMode
        Device #121 Garage Sensor service urn:toggledbits-com:serviceId:ReactorSensor variable cdata
        Device #66 Garage Door service urn:upnp-org:serviceId:SwitchPower1 variable Status
    Special Configuration
        UseReactorScenes = 1
        Retrigger = 0
        FailOnTrouble = 0
        ContinuousTimer = 0
```

Sorry, there are restarts of the RS in here (which is something I said not to do). You have false actions, which is going to make it chatty after restarts. There’s no evidence of anything I would call “flapping” here, but maybe I need a more clear description of the problem? I don’t see anything wrong here. If you turned on the log file, maybe that captured what was going on before you did the restarts?

I haven’t touched the sensor other than to grab the logic summary - all I’ve done is manually forced my garage door open or closed to provide a legitimate state change.

I wasnt able to turn on logging before this happened (was busy getting kids ready for school) but it is on now.

EDIT: did you mean “Turn on debug”?

These are in the login summary:

Hmmm… did you code that action somewhere for some reason? Because something is restarting it, and the way the actions are set up, it will “Say” on every restart.

Wait a second… are you playing with Test Time and Test House Mode? The RS is watching those, which indicates they’ve been used. Changing those causes a restart of the RS, and because you have an “is FALSE” action, every restart of the RS will cause a Say

No I haven’t changed a thing or done anything custom or touched the test functionality.

OK. Well something caused two restarts of that ReactorSensor, it’s plain as day in the Events in the logic summary. And that would make your Say commands in the “is FALSE” activity run, and that likely is the cause of the annoyance to your spouse. As far as I can see, Reactor isn’t doing anything wrong here.

What I dont understand is why none of my other sensors appear to have had issues at the same time?

Btw, this is happening less but still happened a Couple of times overnight while I was asleep.

I don’t think this is a Reactor issue…

I’m not so sure, I have other reactor sensors that use the garage door as a trigger and they aren’t playing up.

So how do you explain those 3am Vera notifications?

I can’t, it’s quite the mystery.

Unfortunately, I don’t think I can help here. There are two questions here that you need to answer: what’s up with those 3am notifications, which suggest the system itself thinks the device is changing; and where are those ReactorSensor restart actions coming from. Have you done all the usual health checks on your system… disk space, combed through the logs looking for red, etc.?

1 Like