Home Assistant projects
All projects

Smart Appliance Card

Lovelace card · Appliances
v2.7.0 · Nov 12, 2026 HA 2024.8.0+ Marketplace

Animated cards for home appliances, from Home Connect (cloud or local), Miele, SmartThings, LG ThinQ, Whirlpool and Matter.

One card for 13 kinds of appliances, from washing machines to wine cabinets: it works out the type and the brand, finds the entities, and shows the status, progress and finish time, the programs and their options, start, pause and stop, with an illustration animated by what the appliance is doing.

Highlights

  • 13 appliance types detected by themselves, each with its animated illustration
  • Home Connect (cloud or local), Miele, SmartThings, LG ThinQ, Whirlpool and Matter
  • Brand logo next to the title, buttons in the brand's colour
  • Status, progress bar, finish time and program step
  • Program picker and options, start, pause, resume and stop
  • Temperatures, door, salt, rinse aid and coffee machine alerts
  • Reminder when a program has finished and the door is still closed
  • Chips opening the more-info dialog of their entity
  • Energy of the current and last cycle, from the appliance's or a smart plug's meter
  • Mini card with a detail button unfolding the full card

Cards

smart-appliance-cardsmart-appliance-mini-card
type: custom:smart-appliance-card

Install

  1. 1Open the repository in the Marketplace with the Add to Marketplace button above, or addgithub.com/juju35/ha-smart-appliance-card as a custom repository (category Dashboard).
  2. 2Download it from the Marketplace.
  3. 3Reload the browser and add the card from the dashboard editor.

Documentation

From the README

Features

Features

  • One card, smart-appliance-card, and its compact version smart-appliance-mini-card (a detail button unfolds the full card)
  • 13 appliance types, each with its own illustration animated by what it is doing: drum turning, laundry tumbling, water spraying, oven glowing, coffee pouring, hood drawing air, frost on a fridge in super mode…
  • Type detected from the appliance (its programs, its model or its entities), or set with kind
  • The appliance's brand next to its title: its logo (Bosch, Siemens, Neff, Gaggenau, Miele, Samsung, LG, Whirlpool, KitchenAid), or a badge with its initial on the header icon for the others (Constructa, Maytag…); main buttons in the brand's colour
  • Status with colour, progress bar, finish time and time left, the program step when the integration reports it (spinning, drying…)
  • Program picker and Start (when remote start is enabled), Pause / Resume, Stop with a confirmation tap, whatever the integration offers
  • Program options before starting, and the settings of appliances without programs (super modes, fan stage…)
  • Temperatures of fridges, freezers and wine cabinets, and of ovens while cooking
  • Door state, salt and rinse aid alerts, coffee machine bean container, water tank and drip tray alerts
  • A reminder chip when a program has finished and the door hasn't been opened since ("Finished 25 minutes ago, door still closed")
  • Energy per cycle: with an energy meter on the appliance (or a smart plug's, set as entities.energy), This cycle: 0.6 kWh while a program runs, then Last cycle: 0.9 kWh, with its cost when a price is set
  • A click on a chip (door, temperature, alert…) opens the more-info dialog of its entity
  • Visual editor in the dashboard UI (no YAML needed)
  • English, French, German, Spanish, Serbian (Cyrillic and Latin), Italian, Dutch, European Portuguese, Polish, Romanian, Danish, Swedish, Bulgarian, Russian, Ukrainian, Hungarian, Slovak, Czech, Slovenian, Latvian and Greek, follows the Home Assistant language
  • Light and dark theme compatible
  • Single file, no dependencies, ready for the Marketplace

Supported integrations

Supported integrations

Integration Appliances What the cards show
Home Connect (built in) — Bosch, Siemens, Neff, Gaggenau, Constructa Dishwashers, washing machines, tumble dryers, washer-dryers, ovens, microwaves, hobs, coffee machines, cooker hoods, fridges, freezers, wine cabinets Status, progress, finish time, program picker with its options, Start (remote start enabled), Pause / Resume, Stop, door, salt and rinse aid alerts, coffee machine alerts, oven temperature, fridge setpoints and super modes, hood fan stage and light
Home Connect Local (custom, local network, no cloud) — Bosch, Siemens, Neff, Gaggenau, Constructa Same appliances as Home Connect, type read from the device model Status, progress, time left, program picker with its options, Start, Pause / Resume, Stop, power, door (binary sensor), salt and rinse aid levels, coffee machine tanks, fridge super modes, lights
Miele (built in) Washing machines, tumble dryers, washer-dryers, dishwashers, ovens (steam and combi included), microwaves, hobs, coffee machines, cooker hoods, fridges, freezers, wine cabinets Status and program phase, program, progress and finish time from the elapsed and remaining times, Start, Pause, Stop, power, door, zone temperatures, super cooling and super freezing
SmartThings (built in) — Samsung Washing machines, tumble dryers, washer-dryers, dishwashers, ovens, cooker hoods, fridges, freezers Machine and job state, progress, finish time, Start / Pause / Resume / Stop through the operating state, dishwasher course picker, door, temperatures, rapid cooling and freezing
LG ThinQ (built in) — LG Washing machines, tumble dryers, WashTower and WashCombo, dishwashers, ovens, microwaves, hobs, cooker hoods, fridges, wine cabinets, Styler Current state and step, progress and finish time, Start and Stop through the operation mode, power, remote start, door, temperatures, express modes
Whirlpool (built in) — Whirlpool, Maytag, KitchenAid, Consul Washing machines, tumble dryers, ovens, fridges Washer and dryer state, finish time and door; oven state, temperature and Stop (set brand for a Maytag, KitchenAid or Consul: the integration doesn't say)
Matter (built in) Dishwashers, washing machines, tumble dryers (Matter 1.2+) Operational state and phase, finish time, Start / Pause / Resume / Stop, power, program options (set kind when the appliance type can't be told from its entities)

Air conditioners, purifiers and robot vacuums are left out: they have their own cards.

Appliance types#

Each type is detected by itself; kind is the value to set when it can't be (a Matter appliance whose entities don't give it away, for instance).

Appliance kind Home Connect Miele SmartThings LG ThinQ Whirlpool Matter
Dishwasher dishwasher ✅ ✅ ✅ ✅ — ✅
Washing machine washer ✅ ✅ ✅ ✅ ✅ ✅
Tumble dryer dryer ✅ ✅ ✅ ✅ ✅ ✅
Washer-dryer washer_dryer ✅ ✅ ✅ ✅ — —
Oven oven ✅ ✅ ✅ ✅ ✅ —
Microwave microwave ✅ ✅ — ✅ — —
Hob hob ✅ ✅ — ✅ — —
Coffee machine coffee_maker ✅ ✅ — — — —
Cooker hood hood ✅ ✅ ✅ ✅ — —
Fridge fridge ✅ ✅ ✅ ✅ ✅ —
Freezer freezer ✅ ✅ ✅ — — —
Wine cabinet wine_cooler ✅ ✅ — ✅ — —
LG Styler styler — — — ✅ — —

Prerequisites

Prerequisites

  • Home Assistant 2024.8 or later with one of the supported integrations set up
  • To start a program from Home Assistant, Remote start (or the integration's equivalent) must be enabled on the appliance itself (the card shows a hint when it isn't)

Configuration

Configuration

Visual editor#

Add the card from the dashboard (Add card → Smart Appliance Card). The first supported appliance is picked automatically; change it with the Appliance field, then set the name, icon and the sections to show. Appliance type and Brand are only needed when the integration doesn't give them away. The Entities (advanced) panel lets you force any entity if auto-detection picks the wrong one. Options left at their default are not written to the YAML.

Minimal#

type: custom:smart-appliance-card
device_id: bad11e7fd00845a2fb485b38c97cf675
type: custom:smart-appliance-card
entity: sensor.washing_machine_operation_state

Mini cards#

type: custom:smart-appliance-mini-card
device_id: bad11e7fd00845a2fb485b38c97cf675

The mini card shows the appliance, its state, the program, the progress and finish time, the alerts, and round Start / Pause / Resume and power buttons. The detail button (top right) unfolds the full card with every option; a click anywhere else on the page folds it back. It takes the same options as the full card, which apply once unfolded, plus zoom. At its default size in a Sections view (6 columns), the round buttons sit under the text and the status pill shows only its coloured dot, the state being written above the program.

Use either device_id (what the visual editor writes) or entity (any entity of the appliance). With neither, the card uses the first supported appliance it finds (of the kind given, if any).

Full options#

type: custom:smart-appliance-card
device_id: 5c3a4c7f80e0aa935477ebca6e7b915b
name: Washing machine
kind: washer
brand: maytag
show_program: true
show_options: true
show_controls: true
show_alerts: true
show_power: true
show_energy: true
language: en
entities:
  operation_state: sensor.washing_machine_operation_state
  selected_program: select.washing_machine_selected_program
  active_program: select.washing_machine_active_program

Options reference#

Option Required Default Description
device_id ❌* Auto Appliance device (*or entity; the first supported appliance is used if both are missing)
entity ❌ — Any entity of the appliance, used to find the device
name ❌ Device name Card title
show_title ❌ true Show the title in the header (e.g. false under a section heading of your own)
show_subtitle ❌ true Show the subtitle under the title
kind ❌ Auto Appliance type when it can't be detected: dishwasher, washer, dryer, washer_dryer, oven, microwave, hob, coffee_maker, hood, fridge, freezer, wine_cooler, styler
brand ❌ Auto Brand for the badge and button colour when the integration doesn't give it: bosch, siemens, neff, gaggenau, constructa, miele, samsung, lg, whirlpool, maytag, kitchenaid, consul
icon ❌ Illustration Replaces the appliance illustration with an icon
show_program ❌ true Show the program picker
show_options ❌ true Show program options (only before a program starts)
show_controls ❌ true Show Start / Pause / Resume / Stop buttons
show_alerts ❌ true Show salt, rinse aid and coffee machine alerts, and the reminder when a finished program's door hasn't been opened
show_power ❌ true Show the power button (turn off for appliances that can't be switched on / off remotely)
show_energy ❌ true Energy chip of the running or last cycle (24 h), when the appliance has an energy meter
energy_price ❌ — Price per kWh: the cycle's cost next to its energy (This cycle: 0.58 kWh · ≈ €0.12), in Home Assistant's currency
energy_price_entity ❌ — A sensor giving the price per kWh (current tariff, Tempo…), used instead of energy_price
zoom ❌ true Mini cards only: detail button at the top right that unfolds the full card (a click elsewhere folds it back)
language ❌ Auto Force language: fr, en, de, es, sr, sr-Latn, it, nl, pt, pl, ro, da, sv, bg, ru, uk, hu, sk, cs, sl, lv or el (auto-detects from HA settings)
entities ❌ Auto Override detected entities (see below)

Entity overrides#

Keys accepted under entities:

Key Domain Used for
operation_state sensor Status (ready, running, finished…)
door sensor or binary_sensor Door chip
progress sensor Progress bar
finish_time sensor Finish time and time left
selected_program select Program picker
active_program select Running program, and Start
power switch Power button
stop button Stop
pause / resume button Pause / Resume
remote_start binary_sensor Enables the Start button
remote_control binary_sensor Detects a program being set on the appliance itself
connectivity binary_sensor Online / offline state
salt / rinse_aid sensor Salt and rinse aid alerts (dishwashers)
energy sensor Energy meter (kWh / Wh) for the energy per cycle; a smart plug's works too

Every other switch and select of the device is shown as a program option (or as a setting, on appliances without programs).

Legacy card types#

home-connect-dishwasher-card, home-connect-washer-card, home-connect-dishwasher-mini-card and home-connect-washer-mini-card are kept so that existing dashboards keep working. They are the same card with the appliance type fixed; new dashboards should use smart-appliance-card.

How it works

How it works

The card reads the entity registry to list the entities of the chosen device and tells its integration from them. It then matches each role by its translation key, then by its entity ID (English and French slugs), then by its attributes (a door's device class, a timestamp…). Program and option labels use Home Assistant's own translations.

The appliance type comes from what the integration says about the device (Miele's model, LG's device type), else from its Home Connect programs, else from the entities only one kind of appliance has (a fridge's setpoints, a hood's fan stage). Each integration's states are folded into one set (ready, delayed start, running, paused, action required, finished, error), and when the integration reports the current step (rinse, spin, drying…), the card shows it instead of "Running". Commands go through what each integration offers: buttons (Home Connect, Miele, Matter, SmartThings dishwashers) or an operation select (SmartThings, LG ThinQ). The progress is computed from the elapsed and remaining times, or from the finish time and total duration, when the integration has no percentage.

Home Connect only sends program options when the selected program changes, so after a Home Assistant restart they all stay unavailable. The card then shows them greyed out with a Load options button, which switches to another program and back to load them. While someone turns the dial on the appliance (Remote control off), Home Assistant can't read the options: the card says so and disables the button until remote control is back. It never reloads them by itself, since that changes the program on the appliance. If loading fails, the original program is restored.

With Home Connect, Start selects the chosen program on the Active program entity, which is how that integration starts a program. Appliances sometimes reject a start for a moment (BadRequest, WrongOperationState): the card then retries once after 3 seconds, and if it fails again shows a short message in the card instead of Home Assistant's raw error (the technical detail is in its tooltip). Stop asks for a second tap within 3 seconds.

Some appliances can't be turned off remotely: after a first refusal, the card says so and keeps the power button disabled while the appliance is on (until the page is reloaded); turning it on still works. The power button and the option pills send an explicit turn on or turn off from the state shown, and stay disabled until the appliance answers, so a quick second click can't undo the first.

Support

Support

If you find this project useful, you can support its development:

Buy Me a Coffee

2.7.0Nov 12, 2026Latest

Features

  • show_title and show_subtitle options (also in the visual editor) hide the header's title and its subtitle, separately, for a card placed under a section heading of its own (asked in juju35/ha-vehicle-card#72).

2.6.0Nov 10, 2026

Features

  • Home Connect hob: a hob on the built-in Home Connect integration is now detected. It has no program and its device model is the VIB, so it is told apart by its event sensors: it is the only appliance with both the favorite keys (also on hoods) and the preheat / alarm clock events (also on ovens). Thanks @FredM67 (#79, #80).

2.5.2Nov 10, 2026

Improvements

  • Energy per cycle: with energy_price (per kWh) or energy_price_entity (a price sensor: current tariff, Tempo…), the chip adds the cycle's cost in Home Assistant's currency (This cycle: 0.58 kWh · ≈ €0.12). Both in the editor (full card), 22 languages.

2.5.1Nov 9, 2026

Maintenance

  • No code change: released again to check the installation from the Marketplace.

2.5.0Nov 9, 2026

Features

  • Energy per cycle: with an energy meter among the appliance's entities (device_class: energy, Miele, SmartThings, LG ThinQ…) or one set as entities.energy (a smart plug), a chip shows This cycle: 0.6 kWh while a program runs and Last cycle: 0.9 kWh once it ended (within 24 h). Worked out from the recorder's history of the operation state and the meter, read again when the state changes and every 5 minutes while a cycle runs; a meter that drops (Miele's per-program one) counts as a reset. show_energy (default true) in the editor; 22 languages.

2.4.1Nov 9, 2026

Fixes

  • Translations: the cards are defined once the page's language file has arrived (at most 1.5 s; Home Assistant builds a card when its element gets defined), so the first render is already translated instead of English then redrawn; until a language file is in, a missing text reads the English one wherever the card has no fallback of its own.