-
-
Notifications
You must be signed in to change notification settings - Fork 0
HomeKit Thermostat
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.