Thermostat card with a round and black feel to it
Thermostat card with a round and black feel to it
English | Supports: English, 中文 (Chinese Simplified), Slovenčina (Slovak) A Nest-style thermostat card for Home Assistant with a round dial interface. Supports single and dual (heat/cool) setpoints, preset modes, and multiple themes.
Key features:
Or manually:
thermostat-dark-card.js from the latest releaseconfig/www//local/thermostat-dark-card.jstype: custom:thermostat-dark-card
entity: climate.living_roomThese are available in the visual card editor:
| Option | Type | Default | Description |
|---|---|---|---|
entity |
string | required | Climate entity ID |
name |
string / false | entity name | Card title. Set to false to hide |
hide_name |
boolean | false |
Hide the card title |
theme |
string | dark |
dark, light, transparent, or glassy |
step |
number | from entity | Temperature step override (celsius only) |
readonly |
boolean | false |
Disable all interaction (display only) |
ambient_temperature |
string | — | External temperature sensor entity ID |
status_entity |
string | — | Entity whose state is shown as text above temperature |
show_power_toggle |
boolean | true |
Show power on/off button |
show_preset_indicator |
boolean | true |
Show preset mode icon |
pending |
number | 3 |
Seconds before committing temperature change |
For fine-tuning behavior — not exposed in UI:
| Option | Type | Default | Description |
|---|---|---|---|
idle_zone |
number | 0 |
Minimum gap between low/high targets in dual mode |
range_min |
number | from entity | Override minimum temperature |
range_max |
number | from entity | Override maximum temperature |
colors |
object | — | Custom color overrides (see below) |
preset_icons |
object | — | Map preset names to icons (see below) |
Internal rendering parameters — changing these may break the dial appearance:
| Option | Type | Default | Description |
|---|---|---|---|
diameter |
number | 400 |
SVG viewBox size (all proportions are relative to this) |
num_ticks |
number | 150 |
Number of tick marks on the ring |
tick_degrees |
number | 300 |
Arc span of tick marks (degrees) |
show_ticks |
boolean | true |
Show tick marks |
Transparent theme example with a room photo:
type: custom:thermostat-dark-card
entity: climate.bedroom
theme: transparent
card_mod:
style: |
ha-card {
background: url("/local/bedroom.jpg") center/cover no-repeat;
}Override disc colors via YAML (not available in visual editor):
type: custom:thermostat-dark-card
entity: climate.living_room
colors:
heating: "#ff5500"
cooling: "#0088ff"
idle: "#1a1a1a"
off: "#444444"Map custom preset mode names to built-in icons:
type: custom:thermostat-dark-card
entity: climate.ecobee
preset_icons:
vacation: eco
night: sleep
party: boostAvailable icon names: eco, away, home, sleep, boost, comfort, activity
Built-in mappings (no config needed):
eco, away → leafhome → housesleep → moonboost → flamecomfort → sunactivity → personUnknown presets show no icon unless mapped via preset_icons.
Use a separate sensor for the ambient temperature display instead of the climate entity's built-in sensor:
type: custom:thermostat-dark-card
entity: climate.living_room
ambient_temperature: sensor.living_room_external_tempIf you find this card useful, consider buying me a coffee:
No open issues yet, or sync has not completed.