Smart Appliance Card
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
type: custom:smart-appliance-cardInstall
- 1Open the repository in the Marketplace with the Add to Marketplace button above, or add
github.com/juju35/ha-smart-appliance-cardas a custom repository (category Dashboard). - 2Download it from the Marketplace.
- 3Reload the browser and add the card from the dashboard editor.
Gallery 52
Documentation
From the README Features
Features
- One card,
smart-appliance-card, and its compact versionsmart-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.
Changelog
All 49 versions 2.7.0Nov 12, 2026Latest
Features
show_titleandshow_subtitleoptions (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) orenergy_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 asentities.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(defaulttrue) 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.