Overview
The thermostat maintains a weekly temperature schedule that determines its target temperature throughout the day. The server can push schedules to the device and receive schedule updates when the user modifies them locally. Schedules are stored in theschedule.{serial} bucket. See schedule bucket for the sync protocol details.
Complete Schedule Example
A full week heating schedule:Day/Time Encoding
Days:"0" = Monday … "6" = SundayTime: seconds from midnight
| Time value | Clock time |
|---|---|
0 | 12:00 AM |
21600 | 6:00 AM |
25200 | 7:00 AM |
28800 | 8:00 AM |
57600 | 4:00 PM |
64800 | 6:00 PM |
79200 | 10:00 PM |
RANGE Mode Example
For a heat-cool system, usetemp-min and temp-max instead of temp:
temp-min and cools when it rises above temp-max.
Pushing a Schedule
- Push the complete schedule (all 7 days, all setpoints)
- Never push partial updates or individual setpoints
- Use
entry_type: "setpoint"for all setpoints you define - Wait ≥15 seconds between schedule pushes (debounce window)
- All temperatures in Celsius
Switching Schedule Mode
The active schedule mode is controlled byschedule_mode in the shared bucket — not the schedule itself:
schedule_mode inside the schedule JSON and the schedule_mode in the shared bucket must match. If they differ, the device ignores the schedule.
Reading the Device’s Schedule
The device sends schedule updates via PUT requests. Schedule data is inline in the PUT (not nested invalue):
Edge Cases
Continuation setpoints: Setpoints withentry_type: "continuation" are filler entries auto-generated by the device. You only need "setpoint" entries when pushing. When reading from the device, store continuation entries as-is.
Learning mode: When learning is enabled, the device may modify your pushed schedule over time based on user dial turns. Disable learning (learning_mode: false in device bucket) before pushing if you need the schedule to stay exactly as pushed.
Days with no setpoints: Include every day key in the days object, even days with no setpoints (empty object {}). This signals the device to use the last setpoint from the previous day as a continuation.