Skip to content

About

Track washing machine, dryer & dishwasher cycles in Home Assistant using power consumption sensors

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

ย 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงบ Appliance Tracker for Home Assistant

hacs_badge GitHub Release License: MIT

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

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.

ko-fi


โœจ Features

  • Smart state detection โ€” Tracks Idle โ†’ Running โ†’ Finishing โ†’ Complete using 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_complete event 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

๐Ÿ“Š Created entities

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

๐Ÿ”„ State machine

                    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.

๐Ÿ“‹ Default thresholds

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

๐Ÿš€ Installation

HACS (recommended)

One-click install:

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Or manually:

  1. Open HACS in your Home Assistant instance
  2. Click Integrations
  3. Click the โ‹ฎ menu โ†’ Custom repositories
  4. Add https://github.com/wroadd/ha-appliance-tracker as an Integration
  5. Search for "Appliance Tracker" and install
  6. Restart Home Assistant

Manual installation

  1. Download the latest release
  2. Copy the custom_components/appliance_tracker folder to your config/custom_components/ directory
  3. Restart Home Assistant

โš™๏ธ Configuration

  1. Go to Settings โ†’ Devices & Services โ†’ Add Integration

  2. Search for Appliance Tracker

  3. Select your appliance type and power sensor:

    Step 1: Name your appliance, select its type, and choose the power sensor.

  4. Adjust thresholds if needed (smart defaults are pre-filled):

    Step 2: Fine-tune power thresholds and timing delays.

  5. Done! Your appliance will appear as a new device with all sensors.

๐Ÿ“˜ Blueprints (ready to use)

Import these blueprints with one click โ€” no YAML editing needed:

๐Ÿ“ฑ Notify when cycle is done

Send a push notification to your phone with cycle details, quiet hours support.

Import Blueprint

๐Ÿ’ก Flash a light when cycle is done

Visual alert โ€” flash any light with custom color and count.

Import Blueprint

๐Ÿ”Š TTS announcement when cycle is done

Play a spoken announcement on any smart speaker (Google Home, Alexa, etc.)

Import Blueprint


๐Ÿ”” Automation examples (manual YAML)

Notify when washing is done

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."

Using the event trigger

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."

Flash a light when dryer is done

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

๐Ÿ”ง Tips

  • 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).

๐Ÿค Contributing

Contributions are welcome! Please open an issue first to discuss what you'd like to change.

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.


ko-fi

About

Track washing machine, dryer & dishwasher cycles in Home Assistant using power consumption sensors

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages