🌡️ Material Thermostat Card – a Material 3 Expressive, Nest-style climate dial (with “feels-like” + comfort ETA)

Hi everyone! :waving_hand:

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.

:sparkles: Highlights

  • :bullseye: 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.
  • :shuffle_tracks_button: Dual setpoint for heat_cool (two handles) on a Nest-style 270° arc.
  • :hot_face: “Feels-like” temperature — point it at a temperature + humidity sensor and it shows the heat index on the dial instead of dry-bulb temp.
  • :hourglass_not_done: Comfort forecasting (the part I’m most proud of) — more below.
  • :puzzle_piece: HVAC / fan / swing selectors as icon rows or dropdowns, with per-option label / icon / hide overrides and drag-to-reorder.
  • :control_knobs: Extra controls in the same card: input_select, switch group (mutually exclusive), switch list, button list, and entity tiles.
  • :wind_face: A bundled mt: AC swing icon set, searchable right in the icon picker.
  • :triangular_ruler: Percentage-based widths that fill and wrap at any card size, plus a side-by-side wide mode.
  • :artist_palette: Material 3 tokens with graceful fallbacks to standard HA theme variables — looks native everywhere.
  • :hammer_and_wrench: A full visual editor for every option, and it’s suggested for climate.* entities in the card picker (HA 2026.6+).

:hourglass_not_done: 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 comfortable
    • Room feels comfortable
    • 34m until cooled to 16°C
    • won’t go below 24°C

:camera_with_flash: A few more shots


:package: Install

It’s a HACS custom repository (category Dashboard):

Open in HACS

:right_arrow: 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)

:rocket: 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

:speech_balloon: 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. :folded_hands:

4 Likes

Repository lageorgem/ha-material-thermostat-card nicht gefunden

At least direct install does not work

1 Like

I don't seem to have the full features available for my Nest thermostat for whatever reason. Another thing, my nest thermostat was cooling (hvac_action: cooling) aka an attribute not a state of the thermostat but the card didn't seem to register that.

More-info dialog
I have the preset settings (eco, off) and I have the - and + buttons

Your card
Not sure why but eco controls options not showing and also the + and - buttons not showing either which I would like rather then the swipe gestures imo tbh. It makes it hard to understand what Im actually adjusting when it's set to Heat and Cool mode since the colors seem the same on my card too.

Also mini FR, I see you added list optons for buttons and switches but would love to add a list for the sensors so I can match the Google Home app.

Repository lageorgem/ha-material-thermostat-card nicht gefunden

At least direct install does not work

Fixed this in the repo, unfortunately I am unable to edit this post.

Not sure why but eco controls options not showing and also the + and - buttons not showing either which I would like rather then the swipe gestures imo tbh. It makes it hard to understand what Im actually adjusting when it's set to Heat and Cool mode since the colors seem the same on my card too.

Update to the newest version, made several improvements across the board, including:

  • Added sensor list feature that matches the google home sensor list
  • Added tile mode to all features, allowing a UI better matching that of Google Home
  • Heat/Cool mode had no buttons because of ambiguity around which setpoint is being modified. Now setpoints are highlighted and the buttons action on the highlighted setpoint
  • Added feature for preset modes, preset icon now displays under the temperature

Feel free to point out any issues or use-cases, my personal climate use-case is a janky SmartIR + Tuya IR blasters for AC, so it may be a little too rudimentary to be able to test more advanced cases

Here's a more Google Home looking approach:

1 Like