Overview
The thermostat’s state isn’t a single “mode.” It’s the combination of four independent dimensions, each controlled through different bucket fields.
These dimensions are independent — changing one doesn’t reset the others.
HVAC Modes
Set the HVAC mode by pushingtarget_temperature_type in the shared bucket:
Values are case-insensitive. The device sends lowercase in PUT requests.
Always validate against device capabilities before pushing a mode. If you push an unsupported mode, the device silently falls back to a mode its wiring supports.
Temperature Fields
All temperatures are Celsius floats. The device converts for display based ontemperature_scale in the device bucket.
Valid range: 4.5°C – 32°C (40°F – 90°F). Minimum meaningful increment: ~0.01°C.
In range mode, the device heats when the current temperature drops below
target_temperature_low and cools when it rises above target_temperature_high.
Equipment Capabilities
Check these before offering controls in a UI:
These are reported by the device via PUT and are read-only on the server side.
HVAC Operation State
The device reports what equipment is currently running through boolean fields in the shared bucket:
Multiple fields can be
true simultaneously (e.g., stage 1 and stage 2 heating).
Read-Only Sensor Fields
Eco Mode State
The device reports its eco state via theeco_mode field in the device bucket (a JSON string):
Emergency Heat
Emergency heat bypasses the heat pump compressor and runs auxiliary heat directly. It’s expensive and intended for equipment failure or extreme cold. When emergency heat activates, the device automatically:- Saves and disables learning mode
- Saves and disables auto-away
- Blocks preconditioning entirely
- Restores all saved settings when emergency heat is turned off