Set thermostat daily at 5:45 am only when location mode is Night


#1

I notice that my piston to set the heat setpoint in the morning is scheduled and running, but does not appear to be triggering anything in ST… Maybe it’s not actually making it through the if conditions before running the set heating point command?

Expected state of ST when this piston runs:

  1. ST location mode is Night at the time
  2. Thermostat gets set back to 65 when Goodnight routine runs
  3. Thermostat is now always on Heat mode since it’s gotten cold out

I don’t see anything in the piston log that says it’s running the set heating point, not sure why it’s not making it in there.

Here’s the last several days of logs:

11/13/2017, 5:44:59 AM +144ms
+0ms	╔Received event [Home].time = 1510569900000 with a delay of -857ms
+137ms	║RunTime Analysis CS > 28ms > PS > 67ms > PE > 42ms > CE
+148ms	║Runtime (38387 bytes) successfully initialized in 67ms (v0.2.0fe.20171109) (147ms)
+149ms	║╔Execution stage started
+167ms	║╚Execution stage complete. (18ms)
+169ms	║Setting up scheduled job for Tue, Nov 14 2017 @ 5:45:00 AM EST (in 86400.688s)
+183ms	╚Event processed successfully (183ms)
11/12/2017, 5:44:59 AM +142ms
+1ms	╔Received event [Home].time = 1510483500000 with a delay of -858ms
+130ms	║RunTime Analysis CS > 27ms > PS > 62ms > PE > 40ms > CE
+141ms	║Runtime (38387 bytes) successfully initialized in 62ms (v0.2.0fe.20171109) (138ms)
+142ms	║╔Execution stage started
+158ms	║╚Execution stage complete. (16ms)
+159ms	║Setting up scheduled job for Mon, Nov 13 2017 @ 5:45:00 AM EST (in 86400.7s)
+172ms	╚Event processed successfully (172ms)
11/11/2017, 5:44:59 AM +134ms
+1ms	╔Received event [Home].time = 1510397100000 with a delay of -866ms
+131ms	║RunTime Analysis CS > 27ms > PS > 65ms > PE > 38ms > CE
+188ms	║Runtime (38383 bytes) successfully initialized in 65ms (v0.2.0fe.20171109) (185ms)
+189ms	║╔Execution stage started
+205ms	║╚Execution stage complete. (16ms)
+206ms	║Setting up scheduled job for Sun, Nov 12 2017 @ 5:45:00 AM EST (in 86400.661s)
+343ms	╚Event processed successfully (343ms)
11/10/2017, 5:44:59 AM +100ms
+1ms	╔Received event [Home].time = 1510310700000 with a delay of -900ms
+105ms	║RunTime Analysis CS > 23ms > PS > 49ms > PE > 33ms > CE
+116ms	║Runtime (38387 bytes) successfully initialized in 49ms (v0.2.0fd.20171105) (114ms)
+117ms	║╔Execution stage started
+133ms	║╚Execution stage complete. (17ms)
+135ms	║Setting up scheduled job for Sat, Nov 11 2017 @ 5:45:00 AM EST (in 86400.766s)
+149ms	╚Event processed successfully (149ms)

#2

Have you tried moving the “Location Mode Is Night” from the ‘Only When’ to the IF.
So you will now have 3 statements in the IF and nothing in the Only When.


#3

So its definitely running daily and setting a new timer. Timers are at the top of the logic chain. If you look at you process numbers you will see timer #1 then Location Mode #7. I would say an easy test would be drop location restriction for testing. If you want to test now, set your timer for 5 minutes from now.

I would also turn on trace. It add time stamps on logic processing as well as colored strips on each part of your logic. This will help you understand what it chose when the script runs. Red-ignore, blue- processed (I think), Green- proceed.