1) Give a description of the problem
Piston is continually firing instead of just when the last person leaves. I have SHM Armed Away so I dont want 2 notifications
2) What is the expected behaviour?
I want the Piston to check all exterior doors/windows when the last person leaves the house and send a notification if something is open so they can go back and close it
3) What is happening/not happening?
I want the piston to only fire when the last person leaves,and then not fire again until the next time.
**4) Post a Green Snapshot of the piston![image|45x37]
5) Attach logs after turning logging level to Full
Here, the log shows the final person leaving the house:
First question is where is Condition #1? I think from the log output, condition #2 is the iPhone presence and condition #3 is the state of the devices
This operated as I hoped. Everyone left, all the devices were NOT open, so it simply exited.
11/14/2019, 8:32:39 AM +313ms
+1ms ╔Received event [sarah's iPhone].presence = not present with a delay of 60ms
+101ms ║RunTime Analysis CS > 16ms > PS > 44ms > PE > 42ms > CE
+104ms ║Runtime (40341 bytes) successfully initialized in 44ms (v0.3.110.20191009) (103ms)
+105ms ║╔Execution stage started
+121ms ║║Comparison (enum) not present is_not (string) present = true (1ms)
+124ms ║║Comparison (enum) not present is_not (string) present = true (1ms)
+126ms ║║Comparison (enum) not present is_not (string) present = true (2ms)
+127ms ║║Cancelling condition #2's schedules...
+128ms ║║Condition #2 evaluated true (19ms)
+144ms ║║Comparison (enum) closed is_any_of (string) open = false (1ms)
+146ms ║║Comparison (enum) closed is_any_of (string) open = false (2ms)
+148ms ║║Comparison (enum) closed is_any_of (string) open = false (1ms)
+154ms ║║Condition #3 evaluated false (25ms)
+155ms ║║Condition group #1 evaluated false (state did not change) (46ms)
+157ms ║╚Execution stage complete. (53ms)
+158ms ╚Event processed successfully (158ms)
Now, while all the iPhonees were not present,the front door opened, and it sent the notifications (which I really dont want as I already have that scenario coded in SmartHomeMonitor, and thus got two announcements)
For my education in debugging, I know see the entry "Condition group #1 evaluated true (state changed) " is the Condition Group the entire IF statement? (All of the iPhones and Any of the devices)
11/14/2019, 9:24:24 AM +348ms|
|+2ms|╔Received event [Front Door].contact = open with a delay of 107ms|
|+134ms|║RunTime Analysis CS > 20ms > PS > 69ms > PE > 45ms > CE|
|+137ms|║Runtime (40326 bytes) successfully initialized in 69ms (v0.3.110.20191009) (134ms)|
|+138ms|║╔Execution stage started|
|+156ms|║║Comparison (enum) not present is_not (string) present = true (2ms)|
|+158ms|║║Comparison (enum) not present is_not (string) present = true (2ms)|
|+160ms|║║Comparison (enum) not present is_not (string) present = true (1ms)|
|+161ms|║║Condition #2 evaluated true (20ms)|
|+175ms|║║Comparison (enum) open is_any_of (string) open = true (2ms)|
|+177ms|║║Comparison (enum) closed is_any_of (string) open = false (2ms)|
|+179ms|║║Comparison (enum) closed is_any_of (string) open = false (1ms)|
|+185ms|║║Cancelling condition #3's schedules...|
|+186ms|║║Condition #3 evaluated true (24ms)|
|+187ms|║║Cancelling condition #1's schedules...|
|+188ms|║║Condition group #1 evaluated true (state changed) (47ms)|
|+190ms|║║Cancelling statement #4's schedules...|
|+195ms|║║Calculating (string) "WebCore reports The following devices are open + (string) Front Door >> (string) "WebCore reports The following devices are open Front Door|
|+197ms|║║Calculating (string) "WebCore reports The following devices are open Front Door + (string) " >> (string) "WebCore reports The following devices are open Front Door "|
|+202ms|║║Executed virtual command setVariable (2ms)|
|+222ms|║║Executed virtual command sendPushNotification (18ms)|
|+225ms|║║Cancelling statement #7's schedules...|
|+938ms|║║Executed physical command [Echo - Basement Echo].playTextAndRestore(["WebCore reports The following devices are open Front Door "]) (707ms)|
|+939ms|║║Executed [Echo - Basement Echo].playTextAndRestore (708ms)|
|+1135ms|║║Executed physical command [Echo - Living room Echo].playTextAndRestore(["WebCore reports The following devices are open Front Door "]) (191ms)|
|+1135ms|║║Executed [Echo - Living room Echo].playTextAndRestore (193ms)|
|+1322ms|║║Executed physical command [Echo - Loft Echo].playTextAndRestore(["WebCore reports The following devices are open Front Door "]) (182ms)|
|+1323ms|║║Executed [Echo - Loft Echo].playTextAndRestore (184ms)|
|+1326ms|║╚Execution stage complete. (1188ms)|
|+1327ms|╚Event processed successfully (1326ms)|
I did think about creating a separate piston to flip a vswitch when the Phones all left, and use that as a trigger to run this.