Skip to content

HomeKit Thermostat

Erik Baauw edited this page Dec 5, 2021 · 1 revision

When I started Homebridge OTGW, I didn't have a good understanding of the HomeKit Thermostat service, in particular of the state. Also, the Eve protocol for handling schedules on the Eve Thermo (particularly the schedule on/off setting) hadn't yet been reverse engineered. Consequently I misused the Target Heating Cooling State to indicate whether the thermostat is following it's own schedule, or has been overwritten manually or remotely (through the OpenTherm gateway). Incidentally, I made a similar mistake in Homebridge Hue, supporting Zigbee TRVs.

As I now understand, the correct way to expose a thermostat in HomeKit is:

  • Current Heating Cooling State reflects whether the thermostat is currently Off, Heating, or Cooling. Of course, Cooloing only applies to AC units;
  • Target Heating Cooling State reflects whether the thermostat is set to Off, Heat, Cool, or Auto (i.e. heat and cool). Again, Cool and (!) Auto only apply to AC units. The Auto setting has nothing to do with the schedule on/off state.

The Home app displays the Target Heating Cooling State as the tile state and the Current Heating Cooling State as the temperature colour:

Target State Current State Tile State Temperature Text
Off Off Dark Grey Off
Heat Off Light Green Heat to ...
Heat Heating Light Orange Heating to ...
Cool Off Light Green Cool to ...
Cool Cooling Light Blue Cooling to ...
Auto Off Light Green Set to ...
Auto Heating Light Orange Heating to ...
Auto Cooling Light Blue Cooling to ...

Eve shows a Schedule On/Off characteristic, but it's not a proper characteristic. It's encoded in the on-device schedule and controlled through Program Command and Program Data, together with the Installation, Temperature Offset, Valve Protection, and Child Lock settings.

Clone this wiki locally