Skip to main content

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 pushing target_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 on temperature_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 the eco_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
Do not leave a device in emergency heat long-term.

State Interaction Matrix