Hi everyone! ![]()
The stock thermostat card never quite matched the look of Google’s new Material 3 Expressive design (or Nerwyn’s gorgeous material-you-theme), so I built my own. Material Thermostat Card is a draggable, Nest-style temperature dial plus a fully configurable stack of climate and entity controls — and it does a couple of things I haven’t seen in other thermostat cards.
Highlights
Draggable circular dial (custom SVG) — drag, tap, +/−, or arrow keys. Colored by the active HVAC action with animated mode cross-fades and a sliding temperature segment.
Dual setpoint for heat_cool(two handles) on a Nest-style 270° arc.
“Feels-like” temperature — point it at a temperature + humidity sensor and it shows the heat index on the dial instead of dry-bulb temp.
Comfort forecasting (the part I’m most proud of) — more below.
HVAC / fan / swing selectors as icon rows or dropdowns, with per-option label / icon / hide overrides and drag-to-reorder.
Extra controls in the same card: input_select, switch group (mutually exclusive), switch list, button list, and entity tiles.
A bundled mt:AC swing icon set, searchable right in the icon picker.
Percentage-based widths that fill and wrap at any card size, plus a side-by-side wide mode.
Material 3 tokens with graceful fallbacks to standard HA theme variables — looks native everywhere.
A full visual editor for every option, and it’s suggested for climate.*entities in the card picker (HA 2026.6+).
The comfort feature
Instead of just showing a number, it tells you whether the room feels comfortable right now, and how long until it will — then, once comfortable, how long until the target temperature is reached:
- Comfort is calculated, not configured, using the building-science ASHRAE 55 / ISO 7730 PMV model (temperature, humidity, inferred clothing & activity). Verdict is one of comfortable / warm / cool / humid.
- ETAs come from a Newton’s-law heating/cooling curve fit to your recorder history since the climate last turned on — so it slows realistically near the setpoint and can honestly say a target won’t be reached.
- You get lines like:
18m until comfortableRoom feels comfortable34m until cooled to 16°Cwon’t go below 24°C
A few more shots
Install
It’s a HACS custom repository (category Dashboard):
GitHub: GitHub - lageorgem/ha-material-thermostat-card: A Material 3 Expressive thermostat card for Home Assistant — a draggable Google Home / Nest-style temperature dial plus a configurable stack of climate and custom-entity controls. · GitHub
(full docs, screenshots, and manual-install steps in the README)
Quick start
type: custom:material-thermostat-card
entity: climate.living_room
name: Living Room
features:
- type: climate-hvac-modes
- type: climate-fan-modes
- type: climate-swing-modes
…then add a feels_like: block + a comfort feature to light up the forecasting:
feels_like:
temperature: sensor.living_room_temperature
humidity: sensor.living_room_humidity
features:
- type: comfort
show_target_eta: true
Feedback welcome
It’s MIT-licensed, has a visual editor for everything, and ships with a full test suite (100% coverage) so it should be solid — but I’d love to hear what you think, what’s missing, or what breaks under your theme. Issues and PRs very welcome. ![]()







