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:
- Pure SVG rendering β lightweight, no images, optimized for low bandwidth
- Single and dual (heat/cool) temperature modes
- Ring drag interaction for setting temperature
- Predictive state feedback while editing
- Dark, light, and transparent themes
- Preset mode indicators (eco, away, home, sleep, boost)
- Responsive β scales to any card size
Or manually:
- Open HACS in Home Assistant
- Search for "Thermostat Dark Card"
- Install and restart Home Assistant
- Download
thermostat-dark-card.jsfrom the latest release - Place it in
config/www/ - Add the resource in Settings β Dashboards β Resources:
- URL:
/local/thermostat-dark-card.js - Type: JavaScript Module
- URL:
type: 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 |
- dark β Black/dark grey background (default)
- light β Light grey background with dark text
- transparent β No disc background, use with card-mod for custom backgrounds
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β person
Unknown 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_temp- Single and dual mode β Automatically adapts based on entity attributes
- Ring interaction β Drag on the tick ring to set temperature
- Chevron controls β Tap up/down arrows for precise adjustments
- Predictive feedback β Disc color fades to show predicted heating/cooling state while editing
- Preset indicators β Shows eco leaf, home, sleep, and other icons
- More-info dialog β Long-press (mobile) or right-click (desktop) opens the HA entity dialog
- Responsive β Scales to fit any card size
If you find this card useful, consider buying me a coffee:
