Thermostat card
A dial for one climate device, with mode buttons. With no target it draws the room and no handle, and with no set it’s read-only.
Variations
Section titled “Variations”5 samples, each at every size that draws differently, then in chat, in the light theme, and as a ring where it has a headline.
thermostat
Section titled “thermostat”thermostat · fahrenheit, cooling
Section titled “thermostat · fahrenheit, cooling”Small draws the same as medium. Wide draws the same as medium, so they aren't shown. Only the empty space changes.
thermostat · no target
Section titled “thermostat · no target”Small draws the same as medium. Wide draws the same as medium, so they aren't shown. Only the empty space changes.
thermostat · range
Section titled “thermostat · range”Small draws the same as medium. Wide draws the same as medium, so they aren't shown. Only the empty space changes.
thermostat · unavailable
Section titled “thermostat · unavailable”Small draws the same as medium. Wide draws the same as medium, so they aren't shown. Only the empty space changes.
Fields
Section titled “Fields”Every card also takes the fields all cards share.
| Field | Type | What it does |
|---|---|---|
type | 'thermostat' | |
unit | 'C' | 'F' | |
state | string | the word in the middle: “Idle”, “Heating” |
mode? | 'heat' | 'cool' | 'auto' | 'off' | sets the dial’s colour |
current? | number | the room now |
target? | number | |
range? | [number, number] | low and high setpoints instead of a target |
min | number | |
max | number | |
step | number | |
set? | { action: string; args?: Record<string, unknown> } | |
modes? | ThermostatMode[] | |
note? | string | whether what it’s holding is temporary or on a schedule, when the device says |
ThermostatMode
Section titled “ThermostatMode”A thermostat’s mode button. Set on for the active one; pressing runs action with args.
| Field | Type | What it does |
|---|---|---|
id | string | |
label | string | |
on? | boolean | |
action | string | |
args? | Record<string, unknown> | |
hint? | string |
hint: what it does, in one line



























