A Lovelace card for washers, dryers and dishwashers — cycle in progress, program, remaining time, door status, alerts and controls.
No brand assumed: every field is a configurable entity mapping, so it works with any integration (Electrolux, Samsung, LG, Home Connect, Miele, a smart plug + template sensors…).
Status: early preview. Feedback and issues welcome. 🇫🇷 Lire en français

Features
- State normalization:
Idle,RUNNING,wash,En marche… are auto-detected (accent-insensitive, 12 languages) and mapped to idle / running / paused / done / delayed / error.state_mapcovers anything else; unmatched states are shown as-is. - Animated illustration (washer water, dryer tumbling, dishwasher spray arm) — static when idle, auto-detected or set via
appliance_type. The door is shown ajar on the illustration while open.compact: truekeeps only the text. - Progress bar from a direct percentage sensor, or estimated client-side from the remaining time.
- Program, info lines (temperature, spin speed…), door, alerts, connectivity (top-right wifi icon) — each optional and independent.
- Start / pause / resume / stop controls, only shown for the entities you configure.
- Visual editor: pick the state entity and the other fields are auto-suggested from sibling entities on the same device.
Installation (HACS)
Not yet in the default HACS store — add it as a custom repository:
- HACS → "⋮" menu → Custom repositories.
- Repository:
https://github.com/ADNPolymerase/ha-appliance-card, category: Dashboard. - Install HA Appliance Card, then add a
custom:ha-appliance-cardcard (YAML or visual editor).
Configuration
Only state_entity is required — everything else is optional. In the visual editor, setting the state entity auto-fills the other fields when a matching sibling entity is found on the same device; each field can still be changed or cleared.
| Option | Description |
|---|---|
state_entity |
Required. Entity reporting the appliance's overall state (any domain). |
state_map |
Optional map: raw state → idle|running|paused|done|delayed|error. |
state_show_raw |
true to display the raw state text instead of the translated label (color/animation still follow the detected category). |
name |
Card title. Defaults to the state entity's friendly name. |
compact |
true to hide the illustration and show only text. |
appliance_type |
auto (default) | washer | dryer | dishwasher. |
program_entity / program_format |
Program/cycle entity. clean (default) trims common "<category> Pr <name>" patterns; raw shows the state as-is. |
remaining_time_entity / remaining_time_unit |
Remaining duration. Unit auto (default), seconds, or minutes. |
progress_entity |
Optional 0–100 sensor; overrides the client-side estimate. |
door_entity / door_open_state / door_invert |
Door sensor, the state meaning "open" (default on), and an invert toggle. |
alerts_entity |
Entity whose attributes are on/off flags; any "on/true/active" attribute is shown as an active alert. |
connectivity_entity / connectivity_connected_state |
Connectivity sensor and the state meaning "connected" (default on). |
info_entities |
Up to 5 { entity, icon?, label? } extra info lines (temperature, spin speed…). |
start_entity / pause_entity / resume_entity / stop_entity |
Button/switch/script entities wired to the corresponding control. Only configured ones are shown. |
Example
type: custom:ha-appliance-card
state_entity: sensor.lave_linge_appliance_state
program_entity: select.lave_linge_program_uid
remaining_time_entity: sensor.lave_linge_time_to_end
door_entity: binary_sensor.lave_linge_door_state
alerts_entity: sensor.lave_linge_alerts
info_entities:
- entity: select.lave_linge_temperature
icon: mdi:thermometer
- entity: select.lave_linge_spin_speed
icon: mdi:rotate-3d-variant
pause_entity: button.lave_linge_execute_command_pause
stop_entity: button.lave_linge_execute_command_stopreset
Comments