1) Give a description of the problem
I’m trying to ensure that once there is no motion on all three main motion sensors for 15 minutes, my piston will re-trigger. Even though one of the motion sensors had reported motion in ST multiple times in the 15 minute window leading up to the piston running, it still evaluated true
2) What is the expected behaviour?
With my one main if statement i trigger based on time. The idea is that if at this time all of the conditions are met, it will execute. If not, it will skip execution. This part is happening correctly. Read the next section for where its failing
3) What is happening/not happening?
Immediately after the if fails and it proceeds to the OR, the similar evaluation seems to come back true for all the motion sensors and allows the piston to trigger. It does seem to work, however, when it does periodic checks after the specifically assigned time check. I’m not sure what the best way to solve this would be. I presume it has something to do with the “stays” portion of the trigger, should I be wrapping the code after the “or” in the main if within another IF statement to check that the sensors are all currently marked as inactive, as a secondary check?
4) Post a Green Snapshot of the piston
5) Attach logs after turning logging level to Full
8/5/2020, 11:54:59 PM +306ms
+0ms ╔Received event [Home].time = 1596696900000 with a delay of -695ms
+153ms ║RunTime Analysis CS > 29ms > PS > 69ms > PE > 57ms > CE
+156ms ║Runtime (41023 bytes) successfully initialized in 69ms (v0.3.110.20191009) (155ms)
+157ms ║╔Execution stage started
+166ms ║║Comparison (string) :706a8997fa8f4e1047545bcaf6d5b19f: is_not (string) :9c30cedc4761b921e93d6a843f39f41d: = true (2ms)
+167ms ║║Condition #16 evaluated true (5ms)
+169ms ║║Cancelling condition #14’s schedules…
+170ms ║║Condition group #14 evaluated true (state changed) (7ms)
+174ms ║║Comparison (time) 86099477 happens_daily_at (time) 86100000 = true (0ms)
+175ms ║║Time restriction check passed
+176ms ║║Cancelling condition #20’s schedules…
+177ms ║║Condition #20 evaluated true (6ms)
+182ms ║║Cancelling statement #20’s schedules…
+185ms ║║Requesting time schedule wake up at Thu, Aug 6 2020 @ 11:55:00 PM PDT
+244ms ║║Duration 2327579ms for is >= 900000ms threshold = true
+245ms ║║Comparison (enum) inactive was (string) inactive = true (37ms)
+272ms ║║Duration 75183ms for is >= 900000ms threshold = false
+273ms ║║Comparison (enum) inactive was (string) inactive = false (27ms)
+275ms ║║Cancelling condition #3’s schedules…
+276ms ║║Condition #3 evaluated false (89ms)
+277ms ║║Condition group #19 evaluated false (state did not change) (106ms)
+298ms ║║Comparison (enum) inactive stays (string) inactive = true (2ms)
+300ms ║║Comparison (enum) inactive stays (string) inactive = true (1ms)
+303ms ║║Comparison (enum) inactive stays (string) inactive = true (2ms)
+305ms ║║Cancelling condition #15’s schedules…
+305ms ║║Condition #15 evaluated true (27ms)
+306ms ║║Condition group #14 evaluated true (state did not change) (136ms)
+318ms ║║Comparison (time) 86099615 is_between (time) 85800000 … (time) 3540000 = true (7ms)
+319ms ║║Time restriction check passed
+321ms ║║Cancelling condition #22’s schedules…
+322ms ║║Condition #22 evaluated true (13ms)
+323ms ║║Cancelling condition #21’s schedules…
+324ms ║║Condition group #21 evaluated true (state changed) (15ms)
+326ms ║║Cancelling statement #17’s schedules…
+405ms ║║Executed virtual command sendPushNotification (75ms)
+626ms ║║Executed virtual command setLocationMode (218ms)
+629ms ║║Cancelling statement #9’s schedules…
+784ms ║║Executed physical command [Apple TV].off() (148ms)
+785ms ║║Executed [Apple TV].off (151ms)
+793ms ║║Skipped execution of physical command [The TV].off([]) because it would make no change to the device. (4ms)
+794ms ║║Executed [The TV].off (7ms)
+801ms ║╚Execution stage complete. (643ms)
+804ms ║Setting up scheduled job for Thu, Aug 6 2020 @ 12:08:44 AM PDT (in 824.542s), with 1 more job pending
+812ms ╚Event processed successfully (812ms)