Confirming garage door is open


#1

1) Give a description of the problem
After garage door sensor changes to open the “garage door one is open” piston will not run
2) What is the expected behaviour?
Once the garage door sensor changes to open I want the “garage door is open” piston to run

3) What is happening/not happening?
everything works except that

**4) Post a Green Snapshot of the piston![image|45x37](

5) Attach logs after turning logging level to Full

+1ms ╔Received event [Garage door 1 sensor].contact = open with a delay of 9ms
+51ms ║RunTime Analysis CS > 21ms > PS > 6ms > PE > 24ms > CE
+54ms ║Runtime (42257 bytes) successfully initialized in 6ms (v0.3.110.20191009) (52ms)
+55ms ║╔Execution stage started
+62ms ║║Comparison (string) null executes (string) open garage door one = false (2ms)
+63ms ║║Cancelling condition #3’s schedules…
+64ms ║║Condition #3 evaluated false (5ms)
+65ms ║║Cancelling condition #1’s schedules…
+66ms ║║Condition group #1 evaluated false (state changed) (7ms)
+69ms ║║Condition group #14 evaluated true (state did not change) (0ms)
+71ms ║║Cancelling statement #31’s schedules…
+72ms ║║Executed virtual command cancelTasks (0ms)
+75ms ║╚Execution stage complete. (19ms)
+76ms ╚Event processed successfully (76ms)
3/22/2020, 8:10:31 PM +584ms
+1ms ╔Received event [Home].ifttt = open garage door one with a delay of 37ms
+38ms ║RunTime Analysis CS > 15ms > PS > 4ms > PE > 19ms > CE
+41ms ║Runtime (42242 bytes) successfully initialized in 4ms (v0.3.110.20191009) (39ms)
+42ms ║╔Execution stage started
+48ms ║║Comparison (string) open garage door one executes (string) open garage door one = true (1ms)
+50ms ║║Cancelling condition #3’s schedules…
+51ms ║║Condition #3 evaluated true (4ms)
+52ms ║║Cancelling condition #1’s schedules…
+52ms ║║Condition group #1 evaluated true (state changed) (6ms)
+61ms ║║Comparison (enum) closed is (string) open = false (1ms)
+63ms ║║Condition #4 evaluated false (9ms)
+64ms ║║Condition group #2 evaluated false (state did not change) (10ms)
+72ms ║║Comparison (enum) present is (string) present = true (1ms)
+73ms ║║Condition #24 evaluated true (7ms)
+74ms ║║Condition group #8 evaluated true (state did not change) (8ms)
+77ms ║║Cancelling statement #9’s schedules…
+168ms ║║Executed virtual command iftttMaker (89ms)
+171ms ║║Cancelling statement #11’s schedules…
+885ms ║║Executed physical command [Echo - *********].speak([garage door one is opening]) (707ms)
+886ms ║║Executed [Echo - **********].speak (709ms)
+894ms ║║Condition #34 evaluated false (6ms)
+895ms ║║Condition group #27 evaluated false (state did not change) (7ms)
+898ms ║║Condition group #33 evaluated true (state did not change) (1ms)
+901ms ║║Condition group #13 evaluated true (state did not change) (1ms)
+904ms ║║Condition group #14 evaluated true (state did not change) (0ms)
+906ms ║║Cancelling statement #31’s schedules…
+908ms ║║Executed virtual command cancelTasks (0ms)
+912ms ║╚Execution stage complete. (870ms)
+913ms ╚Event processed successfully (913ms)

#2

This piston ran at 8:10:31 PM due to an IFTTT trigger

╔Received event [Home].ifttt = open garage door one

At that time, Contact Sensor 1 was closed, so no speak command was sent…

║║Condition #4 evaluated false

… so it jumped to the ELSE block…

║║Condition #24 evaluated true

… and since Presence Sensor 1 was present, it sent a command to IFTTT, Speak etc… but then it checks to see if Contact Sensor 1 changes to open… which is impossible. (two triggers can not usually happen at the same instant)


I think that you should change that last trigger (line 43) into a condition, such as:
IF Contact Sensor 1 IS open

You may also need to move the “WAIT 10 seconds” up a few lines… (Right before that IF)
IE: you do not want to check the status of the door until after ten seconds has passed.