Comparison (enum) on changes_to (string) on = false


#1

1) Give a description of the problem
Lights are not turning off because “Comparison (enum) on changes_to (string) on = false”

2) What is the expected behavior?
Comparison (enum) on changes_to (string) on = true

3) What is happening/not happening?

  1. Motion Sensor Cozinha is activated
  2. Balcao Switch is Turn On
  3. Then the is statement “Balcao’s switch changes to on” should evaluate to true

**4) Post a Green Snapshot of the piston

**5) Attach any logs

03/02/2018 22:35:06 +38ms
+1ms	╔Received event [Sensor Cozinha].motion = inactive with a delay of 88ms
+142ms	║RunTime Analysis CS > 15ms > PS > 38ms > PE > 90ms > CE
+145ms	║Runtime (43296 bytes) successfully initialized in 38ms (v0.2.102.20180116) (142ms)
+146ms	║╔Execution stage started
+192ms	║║Comparison (time) 81306188 is_between (time) 1517695620000 .. (time) 1517648100000 = true (7ms)
+193ms	║║Time restriction check passed
+194ms	║║Condition #18 evaluated true (45ms)
+195ms	║║Condition group #null evaluated true (state did not change) (46ms)
+203ms	║║Comparison (enum) inactive changes_to (string) active = false (0ms)
+205ms	║║Condition #4 evaluated false (8ms)
+216ms	║║Condition #20 evaluated false (10ms)
+217ms	║║Condition group #1 evaluated false (state did not change) (19ms)
+225ms	║║Comparison (enum) inactive is (string) inactive = true (1ms)
+226ms	║║Comparison (enum) inactive is (string) inactive = true (1ms)
+228ms	║║Cancelling condition #12's schedules...
+229ms	║║Condition #12 evaluated true (9ms)
+232ms	║║Comparison (boolean) false is (boolean) true = false (1ms)
+234ms	║║Condition #13 evaluated false (4ms)
+234ms	║║Condition group #8 evaluated false (state did not change) (15ms)
+244ms	║║Condition #24 evaluated false (7ms)
+245ms	║║Condition group #23 evaluated false (state did not change) (8ms)
+252ms	║║Condition #37 evaluated false (5ms)
+253ms	║║Condition group #33 evaluated false (state did not change) (6ms)
+255ms	║╚Execution stage complete. (110ms)
+256ms	╚Event processed successfully (256ms)


03/02/2018 22:34:57 +572ms
+1ms	╔Received event [Sensor Copa].motion = inactive with a delay of 806ms
+162ms	║RunTime Analysis CS > 15ms > PS > 41ms > PE > 105ms > CE
+165ms	║Runtime (43291 bytes) successfully initialized in 41ms (v0.2.102.20180116) (162ms)
+165ms	║╔Execution stage started
+215ms	║║Comparison (time) 81297741 is_between (time) 1517695620000 .. (time) 1517648100000 = true (7ms)
+216ms	║║Time restriction check passed
+218ms	║║Condition #18 evaluated true (48ms)
+218ms	║║Condition group #null evaluated true (state did not change) (49ms)
+227ms	║║Comparison (enum) inactive changes_to (string) active = false (1ms)
+228ms	║║Cancelling condition #4's schedules...
+229ms	║║Condition #4 evaluated false (9ms)
+242ms	║║Condition #20 evaluated false (12ms)
+243ms	║║Cancelling condition #1's schedules...
+244ms	║║Condition group #1 evaluated false (state changed) (23ms)
+252ms	║║Comparison (enum) inactive is (string) inactive = true (1ms)
+254ms	║║Comparison (enum) active is (string) inactive = false (1ms)
+255ms	║║Condition #12 evaluated false (9ms)
+256ms	║║Condition group #8 evaluated false (state did not change) (10ms)
+264ms	║║Condition #24 evaluated false (6ms)
+265ms	║║Condition group #23 evaluated false (state did not change) (7ms)
+273ms	║║Condition #37 evaluated false (6ms)
+274ms	║║Condition group #33 evaluated false (state did not change) (7ms)
+276ms	║╚Execution stage complete. (110ms)
+277ms	╚Event processed successfully (277ms)


03/02/2018 22:31:47 +385ms
+1ms	╔Received event [Sensor Cozinha].motion = active with a delay of 551ms
+119ms	║RunTime Analysis CS > 11ms > PS > 25ms > PE > 82ms > CE
+121ms	║Runtime (43293 bytes) successfully initialized in 25ms (v0.2.102.20180116) (119ms)
+122ms	║╔Execution stage started
+162ms	║║Comparison (time) 81107511 is_between (time) 1517695620000 .. (time) 1517648100000 = true (7ms)
+163ms	║║Time restriction check passed
+164ms	║║Condition #18 evaluated true (39ms)
+165ms	║║Condition group #null evaluated true (state did not change) (40ms)
+173ms	║║Comparison (enum) active changes_to (string) active = true (0ms)
+174ms	║║Cancelling condition #4's schedules...
+175ms	║║Condition #4 evaluated true (8ms)
+176ms	║║Cancelling condition #1's schedules...
+177ms	║║Condition group #1 evaluated true (state changed) (10ms)
+184ms	║║Comparison (enum) on is (string) off = false (1ms)
+185ms	║║Cancelling condition #19's schedules...
+186ms	║║Condition #19 evaluated false (8ms)
+187ms	║║Cancelling condition #2's schedules...
+187ms	║║Condition group #2 evaluated false (state changed) (9ms)
+196ms	║║Comparison (enum) active is (string) inactive = false (1ms)
+197ms	║║Condition #12 evaluated false (7ms)
+198ms	║║Condition group #8 evaluated false (state did not change) (9ms)
+205ms	║║Condition #24 evaluated false (5ms)
+206ms	║║Condition group #23 evaluated false (state did not change) (6ms)
+213ms	║║Condition #37 evaluated false (5ms)
+214ms	║║Condition group #33 evaluated false (state did not change) (5ms)
+215ms	║╚Execution stage complete. (93ms)
+216ms	╚Event processed successfully (216ms)


03/02/2018 22:31:40 +595ms
+1ms	╔Received event [Balcao].switch = on with a delay of 104ms
+331ms	║RunTime Analysis CS > 19ms > PS > 200ms > PE > 112ms > CE
+333ms	║Runtime (43282 bytes) successfully initialized in 200ms (v0.2.102.20180116) (331ms)
+334ms	║╔Execution stage started
+381ms	║║Comparison (time) 81100933 is_between (time) 1517695620000 .. (time) 1517648100000 = true (7ms)
+382ms	║║Time restriction check passed
+383ms	║║Condition #18 evaluated true (45ms)
+384ms	║║Condition group #null evaluated true (state did not change) (47ms)
+396ms	║║Cancelling condition #4's schedules...
+397ms	║║Condition #4 evaluated false (11ms)
+408ms	║║Condition #20 evaluated false (11ms)
+409ms	║║Cancelling condition #1's schedules...
+410ms	║║Condition group #1 evaluated false (state changed) (23ms)
+421ms	║║Comparison (enum) active is (string) inactive = false (1ms)
+423ms	║║Condition #12 evaluated false (10ms)
+424ms	║║Condition group #8 evaluated false (state did not change) (11ms)
_**+429ms	║║Comparison (enum) on changes_to (string) on = false (1ms)**_
+430ms	║║Condition #24 evaluated false (4ms)
+431ms	║║Condition group #23 evaluated false (state did not change) (5ms)
+436ms	║║Comparison (enum) on changes_to (string) off = false (0ms)
+437ms	║║Condition #37 evaluated false (3ms)
+438ms	║║Condition group #33 evaluated false (state did not change) (5ms)
+440ms	║╚Execution stage complete. (106ms)
+442ms	╚Event processed successfully (441ms)


03/02/2018 22:31:40 +269ms
+1ms	╔Received event [Sensor Copa].motion = active with a delay of 113ms
+128ms	║RunTime Analysis CS > 14ms > PS > 37ms > PE > 77ms > CE
+131ms	║Runtime (43291 bytes) successfully initialized in 37ms (v0.2.102.20180116) (129ms)
+132ms	║╔Execution stage started
+174ms	║║Comparison (time) 81100404 is_between (time) 1517695620000 .. (time) 1517648100000 = true (6ms)
+175ms	║║Time restriction check passed
+177ms	║║Condition #18 evaluated true (41ms)
+177ms	║║Condition group #null evaluated true (state did not change) (42ms)
+187ms	║║Comparison (enum) active changes_to (string) active = true (0ms)
+189ms	║║Cancelling condition #4's schedules...
+189ms	║║Condition #4 evaluated true (10ms)
+190ms	║║Cancelling condition #1's schedules...
+191ms	║║Condition group #1 evaluated true (state changed) (12ms)
+200ms	║║Comparison (enum) off is (string) off = true (1ms)
+201ms	║║Cancelling condition #19's schedules...
+202ms	║║Condition #19 evaluated true (9ms)
+203ms	║║Cancelling condition #2's schedules...
+204ms	║║Condition group #2 evaluated true (state changed) (10ms)
+204ms	║║Cancelling statement #2's schedules...
+233ms	║║Executed physical command [Balcao].on() (27ms)
+234ms	║║Executed [Balcao].on (28ms)
+239ms	║║Executed virtual command [Balcao].setVariable (3ms)
+247ms	║║Comparison (enum) active is (string) inactive = false (1ms)
+249ms	║║Cancelling condition #12's schedules...
+249ms	║║Condition #12 evaluated false (8ms)
+250ms	║║Condition group #8 evaluated false (state did not change) (9ms)
+257ms	║║Condition #24 evaluated false (5ms)
+258ms	║║Condition group #23 evaluated false (state did not change) (6ms)
+264ms	║║Cancelling condition #37's schedules...
+265ms	║║Condition #37 evaluated false (5ms)
+266ms	║║Cancelling condition #33's schedules...
+267ms	║║Condition group #33 evaluated false (state changed) (6ms)
+269ms	║╚Execution stage complete. (138ms)
+270ms	╚Event processed successfully (270ms)

#2

I guess I can set the variable “programaticamente” right after the Balcao switch turn on but still I dont know if the other use cases will work if the comparison still fails.


#3

Can you dumb the piston right down to isolate just the problem condition… hard to see the wood through the trees.


#4

Thank you for your reply Robin.

I replicate the issue with a shorter version

04/02/2018 10:35:13 +893ms
+1ms	╔Received event [Balcao].switch = on with a delay of 63ms
+79ms	║RunTime Analysis CS > 19ms > PS > 39ms > PE > 21ms > CE
+81ms	║Runtime (36880 bytes) successfully initialized in 39ms (v0.2.102.20180116) (80ms)
+82ms	║╔Execution stage started
+92ms	║║Cancelling condition #4's schedules...
+92ms	║║Condition #4 evaluated false (6ms)
+93ms	║║Cancelling condition #1's schedules...
+94ms	║║Condition group #1 evaluated false (state changed) (8ms)
+99ms	║║Comparison (enum) on changes_to (string) on = false (0ms)
+100ms	║║Condition #24 evaluated false (4ms)
+100ms	║║Condition group #23 evaluated false (state did not change) (4ms)
+102ms	║╚Execution stage complete. (21ms)
+103ms	╚Event processed successfully (104ms)


04/02/2018 10:35:13 +727ms
+2ms	╔Received event [Sensor Copa].motion = active with a delay of 191ms
+67ms	║RunTime Analysis CS > 15ms > PS > 37ms > PE > 14ms > CE
+69ms	║Runtime (36896 bytes) successfully initialized in 37ms (v0.2.102.20180116) (67ms)
+70ms	║╔Execution stage started
+78ms	║║Comparison (enum) active changes_to (string) active = true (1ms)
+79ms	║║Cancelling condition #4's schedules...
+80ms	║║Condition #4 evaluated true (5ms)
+81ms	║║Cancelling condition #1's schedules...
+82ms	║║Condition group #1 evaluated true (state changed) (7ms)
+84ms	║║Cancelling statement #2's schedules...
+115ms	║║Executed physical command [Balcao].on() (28ms)
+116ms	║║Executed [Balcao].on (29ms)
+124ms	║║Condition #24 evaluated false (5ms)
+125ms	║║Condition group #23 evaluated false (state did not change) (7ms)
+127ms	║╚Execution stage complete. (58ms)
+128ms	╚Event processed successfully (128ms)

#5

The switch isn’t changing independently… the piston is being triggered by motion in the first IF block, when that finishes executing and turns on the switch, the piston moves onto executing the second IF, sees the switch hasn’t changed outside of this execution and returns false.

It’s workig correctly.