SHM and a temporary disarm during certain hours


#41

Looks good!


#42

So after a month of testing, this has been working well about ~90% of the time.
Only issue I seem to be running into is when both presence sensors leave at the same time. Yesterday both presence sensors left, the system went to armed, then immediately went to disarmed. I’m thinking it’s because the @occupancy variable is changing so rapidly. I’m wondering if there’s a way to add a ‘wait’ or some other check for this… Here’s some logs:

3/6/2018, 5:12:11 PM +755ms
+0ms ╔Received event [Home].:: = @Occupancy with a delay of 124ms
+189ms ║RunTime Analysis CS > 24ms > PS > 43ms > PE > 122ms > CE
+192ms ║Runtime (45785 bytes) successfully initialized in 43ms (v0.3.000.20180224) (191ms)
+194ms ║╔Execution stage started
+204ms ║║Comparison (dynamic) 1 changes_to (integer) 0 = false (0ms)
+205ms ║║Cancelling condition #9’s schedules…
+206ms ║║Condition #9 evaluated false (6ms)
+207ms ║║Cancelling condition #1’s schedules…
+208ms ║║Condition group #1 evaluated false (state changed) (8ms)
+213ms ║║Comparison (dynamic) 1 rises = true (1ms)
+215ms ║║Cancelling condition #18’s schedules…
+216ms ║║Condition #18 evaluated true (4ms)
+217ms ║║Cancelling condition #10’s schedules…
+217ms ║║Condition group #10 evaluated true (state changed) (6ms)
+220ms ║║Cancelling statement #11’s schedules…
+233ms ║║Executed virtual command setAlarmSystemStatus (10ms)
+283ms ║║Executed virtual command setLocationMode (46ms)
+296ms ║║Executed virtual command executePiston (7ms)
+304ms ║║Calculating (string) SHM is + (string) Disarmed >> (string) SHM is Disarmed
+327ms ║║Executed virtual command sendNotificationToContacts (18ms)
+330ms ║║Cancelling statement #16’s schedules…
+419ms ║║Executed physical command [Deck Cam].off() (82ms)
+420ms ║║Executed [Deck Cam].off (83ms)
+498ms ║║Executed physical command [Driveway Cam].off() (76ms)
+499ms ║║Executed [Driveway Cam].off (77ms)
+580ms ║║Executed physical command [Front Porch Cam].off() (78ms)
+581ms ║║Executed [Front Porch Cam].off (79ms)
+588ms ║║Comparison (time) 61932341 happens_daily_at (time) 84600000 = false (1ms)
+589ms ║║Condition #63 evaluated false (4ms)
+590ms ║║Cancelling statement #63’s schedules…
+593ms ║║Requesting time schedule wake up at Tue, Mar 6 2018 @ 11:30:00 PM EST
+598ms ║║Comparison (dynamic) 1 stays_unchanged = true (0ms)
+601ms ║║Condition #64 evaluated false (5ms)
+602ms ║║Condition group #62 evaluated false (state did not change) (16ms)
+603ms ║║Condition group #43 evaluated false (state did not change) (18ms)
+606ms ║║Cancelling statement #56’s schedules…
+612ms ║║Calculating (string) Last event occurred on + (string) Tue, Mar 6 2018 @ 5:12:12 PM EST >> (string) Last event occurred on Tue, Mar 6 2018 @ 5:12:12 PM EST
+614ms ║║Executed virtual command setState (0ms)
+621ms ║╚Execution stage complete. (428ms)
+624ms ║Setting up scheduled job for Tue, Mar 6 2018 @ 5:21:53 PM EST (in 581.41s), with 2 more jobs pending
+633ms ╚Event processed successfully (633ms)
3/6/2018, 5:12:01 PM +393ms
+1ms ╔Received event [Home].:: = @Occupancy with a delay of 101ms
+154ms ║RunTime Analysis CS > 13ms > PS > 30ms > PE > 111ms > CE
+158ms ║Runtime (45787 bytes) successfully initialized in 30ms (v0.3.000.20180224) (155ms)
+159ms ║╔Execution stage started
+168ms ║║Comparison (dynamic) 0 changes_to (integer) 0 = true (0ms)
+169ms ║║Cancelling condition #9’s schedules…
+170ms ║║Condition #9 evaluated true (6ms)
+171ms ║║Cancelling condition #1’s schedules…
+172ms ║║Condition group #1 evaluated true (state changed) (7ms)
+174ms ║║Cancelling statement #2’s schedules…
+184ms ║║Executed virtual command setAlarmSystemStatus (7ms)
+219ms ║║Executed virtual command setLocationMode (32ms)
+229ms ║║Executed virtual command executePiston (5ms)
+237ms ║║Calculating (string) SHM is + (string) Armed/Away >> (string) SHM is Armed/Away
+248ms ║║Executed virtual command sendNotificationToContacts (6ms)
+251ms ║║Cancelling statement #7’s schedules…
+342ms ║║Executed physical command [Deck Cam].on() (85ms)
+342ms ║║Executed [Deck Cam].on (86ms)
+415ms ║║Executed physical command [Driveway Cam].on() (70ms)
+416ms ║║Executed [Driveway Cam].on (72ms)
+487ms ║║Executed physical command [Front Porch Cam].on() (68ms)
+488ms ║║Executed [Front Porch Cam].on (70ms)
+494ms ║║Comparison (dynamic) 0 rises = false (1ms)
+495ms ║║Condition #18 evaluated false (4ms)
+499ms ║║Comparison (time) 61921890 happens_daily_at (time) 25260000 = false (0ms)
+500ms ║║Condition #60 evaluated false (4ms)
+501ms ║║Cancelling statement #60’s schedules…
+504ms ║║Requesting time schedule wake up at Wed, Mar 7 2018 @ 7:01:00 AM EST
+507ms ║║Condition group #59 evaluated false (state did not change) (11ms)
+508ms ║║Condition group #10 evaluated false (state did not change) (16ms)
+513ms ║║Comparison (time) 61921904 happens_daily_at (time) 84600000 = false (0ms)
+515ms ║║Condition #63 evaluated false (4ms)
+516ms ║║Cancelling statement #63’s schedules…
+519ms ║║Requesting time schedule wake up at Tue, Mar 6 2018 @ 11:30:00 PM EST
+524ms ║║Comparison (dynamic) 0 stays_unchanged = true (0ms)
+526ms ║║Condition #64 evaluated false (5ms)
+527ms ║║Condition group #62 evaluated false (state did not change) (16ms)
+528ms ║║Condition group #43 evaluated false (state did not change) (17ms)
+531ms ║║Cancelling statement #56’s schedules…
+536ms ║║Calculating (string) Last event occurred on + (string) Tue, Mar 6 2018 @ 5:12:01 PM EST >> (string) Last event occurred on Tue, Mar 6 2018 @ 5:12:01 PM EST
+539ms ║║Executed virtual command setState (1ms)
+544ms ║╚Execution stage complete. (386ms)
+547ms ║Setting up scheduled job for Tue, Mar 6 2018 @ 5:21:53 PM EST (in 591.849s), with 2 more jobs pending
+625ms ╚Event processed successfully (625ms)
3/6/2018, 5:11:53 PM +548ms
+0ms ╔Received event [Home].:: = @Occupancy with a delay of 122ms
+182ms ║RunTime Analysis CS > 24ms > PS > 43ms > PE > 116ms > CE
+186ms ║Runtime (45783 bytes) successfully initialized in 43ms (v0.3.000.20180224) (185ms)
+187ms ║╔Execution stage started
+196ms ║║Comparison (dynamic) 1 changes_to (integer) 0 = false (0ms)
+198ms ║║Condition #9 evaluated false (5ms)
+199ms ║║Condition group #1 evaluated false (state did not change) (6ms)
+204ms ║║Comparison (dynamic) 1 rises = false (1ms)
+206ms ║║Cancelling condition #18’s schedules…
+207ms ║║Condition #18 evaluated false (4ms)
+210ms ║║Comparison (time) 61913756 happens_daily_at (time) 25260000 = false (0ms)
+212ms ║║Condition #60 evaluated false (4ms)
+213ms ║║Cancelling statement #60’s schedules…
+216ms ║║Requesting time schedule wake up at Wed, Mar 7 2018 @ 7:01:00 AM EST
+219ms ║║Condition group #59 evaluated false (state did not change) (11ms)
+220ms ║║Cancelling condition #10’s schedules…
+221ms ║║Condition group #10 evaluated false (state changed) (18ms)
+227ms ║║Comparison (time) 61913773 happens_daily_at (time) 84600000 = false (0ms)
+228ms ║║Condition #63 evaluated false (4ms)
+229ms ║║Cancelling statement #63’s schedules…
+232ms ║║Requesting time schedule wake up at Tue, Mar 6 2018 @ 11:30:00 PM EST
+237ms ║║Comparison (dynamic) 1 stays_unchanged = true (1ms)
+239ms ║║Adding a timed trigger schedule for condition 64
+242ms ║║Cancelling condition #64’s schedules…
+243ms ║║Condition #64 evaluated false (8ms)
+244ms ║║Cancelling condition #62’s schedules…
+244ms ║║Condition group #62 evaluated false (state changed) (20ms)
+245ms ║║Condition group #43 evaluated false (state did not change) (22ms)
+248ms ║║Cancelling statement #56’s schedules…
+254ms ║║Calculating (string) Last event occurred on + (string) Tue, Mar 6 2018 @ 5:11:53 PM EST >> (string) Last event occurred on Tue, Mar 6 2018 @ 5:11:53 PM EST
+257ms ║║Executed virtual command setState (1ms)
+261ms ║╚Execution stage complete. (74ms)
+263ms ║Setting up scheduled job for Tue, Mar 6 2018 @ 5:21:53 PM EST (in 599.977s), with 2 more jobs pending
+274ms ╚Event processed successfully (274ms)


#43

Interesting, 10 seconds after occupancy changed to zero, it changed back to one. That’s why it disarmed.

Did you happen to log into webcore then and see what value was stored in @Occupancy?


#44

No, I didn’t get a chance to login and take a look. But I added a sanity check which I think might help:

Added the “stays equal to 0 for 30 seconds”… Do you see anything majorly wrong with adding that?


#45

I think you just need the second statement. Since one will create a 30 second delay, they’ll never both be true at the same time.


#46

Thanks, I’ll try that out and see how it works.