Multiple Scheduled Times fail to be scheduled


#1

1) Give a description of the problem
So I have a piston with two timed events in regards to my thermostat. Neither of the two timed events interfere with each other. It seems when the 4:15 timer runs and doesn’t execute due to a restriction it never gets scheduled again unless I re-save the piston.

2) What is the expected behaviour?
I expect the time piston to be scheduled M-F @ 4:15 everyday even if it doenst fire from the day before.

3) What is happening/not happening?
It seems when the 4:15 timer runs and doesn’t execute due to a restriction it never gets scheduled again unless I re-save the piston. I just happen to be home today with temps already set. So the piston would not fire @ 4:15 because I was home. But @ 8:45 when that portion fired it should of scheduled a 4:14 for the next day and it set the 8:45 for the next day.

4) Post a Green Snapshot of the pistonimage
(

)

5) Attach logs after turning logging level to Full
7/23/2019, 8:44:59 PM +76ms
+0ms ╔Received event [Giraffe House].time = 1563932700000 with a delay of -925ms
+183ms ║RunTime Analysis CS > 28ms > PS > 62ms > PE > 93ms > CE
+186ms ║Runtime (48184 bytes) successfully initialized in 62ms (v0.3.10e.20190628) (185ms)
+188ms ║╔Execution stage started
+198ms ║║Comparison (string) :ce3d88fd086cf4f13326f0628d7ac208: is_not (string) :d98a1f9ba306055ef1981913525b1827: = true (2ms)
+199ms ║║Condition #7 evaluated true (6ms)
+201ms ║║Condition group #null evaluated true (state did not change) (7ms)
+207ms ║║Comparison (string) :ce3d88fd086cf4f13326f0628d7ac208: is (string) :ce3d88fd086cf4f13326f0628d7ac208: = true (1ms)
+208ms ║║Cancelling condition #13’s schedules…
+209ms ║║Condition #13 evaluated true (5ms)
+210ms ║║Cancelling condition #1’s schedules…
+211ms ║║Condition group #1 evaluated true (state changed) (8ms)
+214ms ║║Comparison (time) 74699288 happens_daily_at (time) 74700000 = true (0ms)
+215ms ║║Time restriction check passed
+217ms ║║Cancelling condition #6’s schedules…
+218ms ║║Condition #6 evaluated true (5ms)
+219ms ║║Cancelling statement #6’s schedules…
+222ms ║║Requesting time schedule wake up at Wed, Jul 24 2019 @ 8:45:00 PM CDT
+225ms ║║Condition group #1 evaluated true (state did not change) (12ms)
+227ms ║║Cancelling statement #42’s schedules…
+235ms ║║Skipped execution of physical command [null].off([]) because it would make no change to the device. (3ms)
+236ms ║║Executed virtual command [Eco Cool DN].setSwitch (6ms)
+241ms ║║Skipped execution of physical command [null].off([]) because it would make no change to the device. (3ms)
+242ms ║║Executed virtual command [Eco Cool UP].setSwitch (5ms)
+245ms ║║Cancelling statement #2’s schedules…
+587ms ║║Executed physical command [Ecobee Upstairs].setCoolingSetpoint([74.0]) (336ms)
+588ms ║║Executed [Ecobee Upstairs].setCoolingSetpoint (338ms)
+615ms ║║Executed physical command [Ecobee Upstairs].setHeatingSetpoint([73.0]) (24ms)
+616ms ║║Executed [Ecobee Upstairs].setHeatingSetpoint (26ms)
+635ms ║║Executed virtual command [Ecobee Upstairs].sendPushNotification (15ms)
+639ms ║║Cancelling statement #9’s schedules…
+666ms ║║Executed physical command [Ecobee Downstairs].setCoolingSetpoint([80.0]) (21ms)
+667ms ║║Executed [Ecobee Downstairs].setCoolingSetpoint (24ms)
+695ms ║║Executed physical command [Ecobee Downstairs].setHeatingSetpoint([68.0]) (24ms)
+695ms ║║Executed [Ecobee Downstairs].setHeatingSetpoint (26ms)
+702ms ║║Comparison (string) :ce3d88fd086cf4f13326f0628d7ac208: is (string) :ef06b7bef07ca679f41e691380e1e7ec: = false (1ms)
+703ms ║║Condition #16 evaluated false (5ms)
+704ms ║║Condition group #14 evaluated false (state did not change) (6ms)
+709ms ║║Comparison (string) :ce3d88fd086cf4f13326f0628d7ac208: is_any_of (string) :ce3d88fd086cf4f13326f0628d7ac208:,:8976d4192664b102e8a7b44e18f56ca8:,:d28a4d4fb5c751d673e781bfdf7e0a11: = true (1ms)
+710ms ║║Condition #24 evaluated true (4ms)
+711ms ║║Cancelling condition #22’s schedules…
+712ms ║║Condition group #22 evaluated true (state changed) (6ms)
+717ms ║║Condition #23 evaluated false (4ms)
+718ms ║║Cancelling condition #22’s schedules…
+719ms ║║Condition group #22 evaluated false (state changed) (6ms)
+725ms ║║Comparison (string) :ce3d88fd086cf4f13326f0628d7ac208: is_any_of (string) :ce3d88fd086cf4f13326f0628d7ac208:,:8976d4192664b102e8a7b44e18f56ca8:,:d28a4d4fb5c751d673e781bfdf7e0a11: = true (1ms)
+726ms ║║Condition #34 evaluated true (4ms)
+727ms ║║Cancelling condition #32’s schedules…
+728ms ║║Condition group #32 evaluated true (state changed) (6ms)
+734ms ║║Condition #33 evaluated false (5ms)
+734ms ║║Cancelling condition #32’s schedules…
+735ms ║║Condition group #32 evaluated false (state changed) (7ms)
+738ms ║╚Execution stage complete. (550ms)
+739ms ║Setting up scheduled job for Wed, Jul 24 2019 @ 8:45:00 PM CDT (in 86400.186s)
+746ms ╚Event processed successfully (746ms)
7/23/2019, 4:14:59 PM +236ms
+0ms ╔Received event [Giraffe House].time = 1563916500000 with a delay of -765ms
+142ms ║RunTime Analysis CS > 25ms > PS > 68ms > PE > 49ms > CE
+145ms ║Runtime (48188 bytes) successfully initialized in 68ms (v0.3.10e.20190628) (143ms)
+146ms ║╔Execution stage started
+155ms ║║Comparison (string) :d28a4d4fb5c751d673e781bfdf7e0a11: is_not (string) :d98a1f9ba306055ef1981913525b1827: = true (1ms)
+156ms ║║Condition #7 evaluated true (5ms)
+157ms ║║Condition group #null evaluated true (state did not change) (7ms)
+163ms ║║Comparison (string) :d28a4d4fb5c751d673e781bfdf7e0a11: is (string) :ce3d88fd086cf4f13326f0628d7ac208: = false (2ms)
+165ms ║║Cancelling condition #13’s schedules…
+165ms ║║Condition #13 evaluated false (6ms)
+166ms ║║Condition group #1 evaluated false (state did not change) (7ms)
+173ms ║║Comparison (string) :d28a4d4fb5c751d673e781bfdf7e0a11: is (string) :ef06b7bef07ca679f41e691380e1e7ec: = false (2ms)
+175ms ║║Condition #16 evaluated false (6ms)
+176ms ║║Condition group #14 evaluated false (state did not change) (8ms)
+183ms ║║Comparison (string) :d28a4d4fb5c751d673e781bfdf7e0a11: is_any_of (string) :ce3d88fd086cf4f13326f0628d7ac208:,:8976d4192664b102e8a7b44e18f56ca8:,:d28a4d4fb5c751d673e781bfdf7e0a11: = true (3ms)
+184ms ║║Condition #24 evaluated true (6ms)
+185ms ║║Cancelling condition #22’s schedules…
+186ms ║║Condition group #22 evaluated true (state changed) (8ms)
+194ms ║║Condition #23 evaluated false (6ms)
+195ms ║║Cancelling condition #22’s schedules…
+196ms ║║Condition group #22 evaluated false (state changed) (9ms)
+204ms ║║Comparison (string) :d28a4d4fb5c751d673e781bfdf7e0a11: is_any_of (string) :ce3d88fd086cf4f13326f0628d7ac208:,:8976d4192664b102e8a7b44e18f56ca8:,:d28a4d4fb5c751d673e781bfdf7e0a11: = true (3ms)
+206ms ║║Condition #34 evaluated true (6ms)
+207ms ║║Cancelling condition #32’s schedules…
+208ms ║║Condition group #32 evaluated true (state changed) (9ms)
+216ms ║║Condition #33 evaluated false (7ms)
+217ms ║║Cancelling condition #32’s schedules…
+218ms ║║Condition group #32 evaluated false (state changed) (10ms)
+221ms ║╚Execution stage complete. (75ms)
+223ms ║Setting up scheduled job for Tue, Jul 23 2019 @ 8:45:00 PM CDT (in 16200.542s)
+231ms ╚Event processed successfully (231ms)


#2

According to your log above, at 4:14:59 PM, it scheduled a wakeup for 8:45:00 PM, so that part looks ok. The error I see is after running at 8:44:59 PM on the 23rd, the schedule is set for 24 hours later. (skipping 4:15 the next day)


Normally, when there are two timers in the same piston, whenever the piston is saved or executed, it will schedule a wake up for the next time. I think your piston above skipped 4:15 due to your ONLY WHEN block. You could slightly reword it something like this:

Every day at 4:15PM  <-- Top level command
Do
    IF Location is Away
    Then
        Do stuff w/Thermostat
    END IF
END EVERY

With this method, you are more assertive in your times, and the location will not be checked until that timed event. This ensures that the next schedule should always be set correctly at the end of each execution.


#3

That makes sense… I ll rewrite it and test. thanks for your input. Originally I only had one timer but as time goes on… You know! You add stuff!