Know exactly when your laundry, dishes, or dryer are done. No more guessing, no more forgotten loads.
Appliance Tracker monitors power consumption from any smart plug (Shelly, Zigbee, Z-Wave, etc.) and detects when your washing machine, dryer, or dishwasher starts, runs, and completes a cycle โ then notifies you.
- Smart state detection โ Tracks
Idle โ Running โ Finishing โ Completeusing power consumption patterns - Appliance presets โ Optimized defaults for washing machines, dryers, and dishwashers
- Configurable thresholds โ Fine-tune start/stop wattage and timing delays per appliance
- Cycle history โ Tracks cycle count and last cycle duration, persisted across restarts
- Binary sensor โ Simple on/off "Running" sensor for easy automations
- Event firing โ Fires
appliance_tracker_cycle_completeevent for advanced automations - Multi-appliance โ Track as many appliances as you have smart plugs
- Config flow UI โ Full GUI setup, no YAML needed
- Ready-made blueprints โ Notification, light flash, and TTS announcement blueprints included
- HACS compatible โ One-click install through HACS
For each configured appliance, the integration creates:
| Entity | Type | Description |
|---|---|---|
| State | sensor |
Current state: idle, running, finishing, complete |
| Current power | sensor |
Real-time power reading (W) |
| Cycle count | sensor |
Total completed cycles (persisted) |
| Last cycle duration | sensor |
Duration of the last cycle (minutes) |
| Last cycle energy | sensor |
Energy used in the last cycle (kWh) |
| Running | binary_sensor |
on when appliance is running or finishing |
power โฅ start_threshold
(for start_delay)
โโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโบ โโโโโโโโโโโ
โ IDLE โ โ RUNNING โ
โโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโ
โฒ โ
โ โ power < stop_threshold
โ โ (for stop_delay)
โ โผ
โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโ
โ COMPLETE โ power < stop for โ FINISHING โ
โโโโโโโโโโโโ finishing_delay โโโโโโโโโโโโโ
โ
โ auto-reset โ power โฅ start_threshold
โ (complete_timeout) โ โ back to RUNNING
โผ โ
IDLE โผ
RUNNING
The Finishing state handles mid-cycle pauses (e.g., a washing machine pausing between wash and spin). If power spikes back up, it returns to Running instead of falsely completing.
| Appliance | Start threshold | Stop threshold |
|---|---|---|
| Washing machine | 10 W | 5 W |
| Dryer | 50 W | 10 W |
| Dishwasher | 10 W | 5 W |
| Custom | 10 W | 5 W |
One-click install:
Or manually:
- Open HACS in your Home Assistant instance
- Click Integrations
- Click the โฎ menu โ Custom repositories
- Add
https://github.com/wroadd/ha-appliance-trackeras an Integration - Search for "Appliance Tracker" and install
- Restart Home Assistant
- Download the latest release
- Copy the
custom_components/appliance_trackerfolder to yourconfig/custom_components/directory - Restart Home Assistant
-
Go to Settings โ Devices & Services โ Add Integration
-
Search for Appliance Tracker
-
Select your appliance type and power sensor:
Step 1: Name your appliance, select its type, and choose the power sensor.
-
Adjust thresholds if needed (smart defaults are pre-filled):
Step 2: Fine-tune power thresholds and timing delays.
-
Done! Your appliance will appear as a new device with all sensors.
Import these blueprints with one click โ no YAML editing needed:
Send a push notification to your phone with cycle details, quiet hours support.
Visual alert โ flash any light with custom color and count.
Play a spoken announcement on any smart speaker (Google Home, Alexa, etc.)
automation:
- alias: "Washing machine done"
trigger:
- platform: state
entity_id: sensor.washing_machine_state
to: "complete"
action:
- service: notify.mobile_app_your_phone
data:
title: "๐งบ Washing done!"
message: "Your laundry is ready. Cycle took {{ state_attr('sensor.washing_machine_last_cycle_duration', 'state') }} minutes."automation:
- alias: "Any appliance done"
trigger:
- platform: event
event_type: appliance_tracker_cycle_complete
action:
- service: notify.mobile_app_your_phone
data:
title: "โ
{{ trigger.event.data.appliance_name }} done!"
message: "Cycle #{{ trigger.event.data.cycle_count }} completed in {{ trigger.event.data.duration_minutes }} minutes."automation:
- alias: "Dryer done - flash light"
trigger:
- platform: state
entity_id: binary_sensor.dryer_running
from: "on"
to: "off"
action:
- service: light.turn_on
target:
entity_id: light.laundry_room
data:
flash: short- Finding the right thresholds: Check your power sensor's history graph while running a cycle. The start threshold should be above the standby power, and the stop threshold should catch the end-of-cycle drop.
- Shelly plugs work great โ they report power with ~1 second resolution.
- Zigbee smart plugs (like IKEA TRร DFRI, Sonoff ZBMINI) also work well with Zigbee2MQTT.
- The finishing delay is key for washing machines that pause between wash and spin cycles. Set it long enough to bridge those pauses (default 3 minutes).
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
This project is licensed under the MIT License โ see the LICENSE file for details.