Programs - monikapurpl3/breeze GitHub Wiki

Programs

Favourites, schedules and temperature curves — stored and run on the server, so they fire with the phone off, out of battery, or out of the country. The app is the editor; the scheduler is Breeze Core's.

The server side, including how curves are interpolated and why times are server-local: Programs, schedules and curves.

The three kinds

  • Favourites: a saved scene (power, mode, temperature, fan, flaps, eco and turbo), applied with one tap of its play button in the list.
  • Schedules: scenes at set times on the days you pick. Each time is a card with the time in large type (tap it to change it), seven round day buttons (none picked means every day), and the scene summed up in coloured pills, with the scene itself a tap away. A new time starts as a copy of the last one, which is usually what a morning-and-evening schedule wants.
  • Curves: a target temperature that follows the day. The chart shows the whole 24 hours, through midnight, the way the server interpolates it: a point at 22:00 leads into one at 02:00 rather than stopping at the edge of the day. Each point is a time and a − / + stepper, and a new point starts where the line already is at that time, so adding one changes nothing until you move it. Cooler overnight, warmer before you wake.

Scenes are set with the control screen's own controls: the same mode picker, temperature, fan, flaps, eco and turbo, in the same colours, with the same names for a screen reader.

Each program targets one or more units, or All units, so a single schedule can drive the whole flat or one room.

The list

Programs are grouped into favourites, schedules and curves, each with a line saying what it does (a small chart for a curve) and which units it covers. Schedules and curves have an on/off switch, which is the server's: off keeps the program but stops the scheduler acting on it. Favourites have none, because a favourite applies the same either way. Deleting asks first, since it removes the program for every phone.

To see a program exactly as the server stores it, the Nerd screen shows them all as JSON: the Internal tab.

Requirements

The Programs screen needs the server's scheduler. Against a server without it the screen is unavailable rather than broken.

Curve editing and schedule-entry editing live here in the app; the server's web panel can view, apply, enable/disable and delete them, but sends you here to edit the points.

Not a program: the sleep timer

"Off in 45 minutes" is a one-shot, and it lives on the control screen as an hourglass rather than in here. A program is a standing intention that keeps applying; a timer exists to happen once and then stop existing, so the server keeps them apart — Timers.

The same goes for a one-off start, "on in 3 days at 07:30": it is in the same sheet, as switching on later. Anything that repeats is a schedule, in here.