Schedules
A controller holds up to 20 schedules, each switching one equipment slot on between a start and end time on selected days. Times are minutes since midnight in the controller’s local time zone. Days are seven booleans starting with Monday.
List schedules
Section titled “List schedules”GET…/scheduleInfo
{ "status": "SUCCESS", "data": { "scheduleInfo": { "schedules": [ { "schedule_num": 3, "schedule_id": 3, "schedule_name": "Morning filter", "schedule_state": true, "aux_slot": 1, "slot_num": 1, "aux_type_code": 31, "start_time": 480, "end_time": 960, "week_days": [true, true, true, true, true, false, false], "pump_speed": 60, "turn_over": 2, "pump_type": "VSD" } ] } }}| Field | Meaning |
|---|---|
schedule_num |
Schedule slot on the controller, 1 to 20. schedule_id is the same value |
schedule_state |
Enabled |
aux_slot |
Equipment slot the schedule drives. slot_num is the same value |
aux_type_code |
Type of that equipment |
start_time, end_time |
Minutes since midnight |
week_days |
Monday to Sunday |
pump_speed |
Percent, main-pump schedules only |
turn_over |
Number of pool turnovers the schedule aims for, main-pump schedules only |
The order of the list is not guaranteed; sort by schedule_num. This read requires the API’s controller link to be up and returns 503 otherwise, even when a cached copy exists.
Enable or disable
Section titled “Enable or disable”POST…/changeScheduleStatus
{ "schedule_id": 3, "schedule_state": false }Create
Section titled “Create”POST…/createSchedule
{ "aux_slot": 1, "start_time": 480, "end_time": 960, "day_of_week": [true, true, true, true, true, false, false], "schedule_name": "Morning filter", "pump_speed": 60, "pool_volume": 0}| Field | Meaning |
|---|---|
aux_slot |
Equipment slot to drive |
day_of_week |
Exactly seven booleans, Monday first |
pump_speed |
Percent; only meaningful for the main pump |
pool_volume |
Litres, used for turnover calculation on the main pump; 0 to ignore |
In the current release pump_speed and pool_volume are forwarded to the controller only when aux_slot is 31; for a main pump on its normal slot they are dropped. To set the speed of a pump schedule, use the v2 schedule action.
The controller assigns the schedule number and does not return it. Read scheduleInfo afterwards and find the entry by schedule_name.
Update
Section titled “Update”POST…/updateSchedule
Same body as create plus schedule_num. Send the complete schedule; every field is replaced.
{ "schedule_num": 3, "aux_slot": 1, "start_time": 420, "end_time": 960, "day_of_week": [true, true, true, true, true, true, true], "schedule_name": "Morning filter", "pump_speed": 60, "pool_volume": 0}Delete
Section titled “Delete”POST…/deleteSchedule
{ "schedule_num": 3 }Responses and errors
Section titled “Responses and errors”Every write waits up to 3 seconds, returns 200 with data.message holding the controller’s acknowledgement, and clears the cached schedule list. Failures are 500 with messages such as failed to create schedule: timeout waiting for response, 429 with messages such as failed to create schedule: device busy: … when the controller is busy, or 503 when the controller link is down.

