// the find
3dg1luk43/ha_washdata
Home Assistant integration for smart-plug appliance monitoring: detects cycles, matches programs, estimates time remaining. Supports washing machines, dryers, dishwashers and more.
A Home Assistant custom component that turns a smart plug's power readings into cycle detection, program matching, and time-remaining estimates for appliances like washing machines and dishwashers. It learns your specific machine's power curves rather than shipping preset profiles, which means the first few weeks require labelling runs before matching gets reliable. For Home Assistant users who want laundry notifications and per-cycle energy cost tracking without a cloud subscription, this is the best option available.
The Playground tab is genuinely impressive engineering: it runs the actual detection and matching engine (not a simplified approximation) against stored history, with scrubbing, 1D optimization curves, and 2D parameter heatmaps. You can see exactly what setting change would have fixed a mis-matched cycle before committing it. The mid-cycle divergence detection is well thought out — if confidence drops below 60% of its peak score, the integration reverts to 'Detecting' rather than staying locked to a wrong profile for the rest of the run. Test coverage is serious: about 50 Python test files including dedicated repro tests per bug report, plus a Playwright suite for the frontend. Cloud features are disabled by default and require explicit opt-in — the Community Store, brand/model data, training data submission, all off unless you turn them on.
The panel frontend ships as compiled blobs (`ha-washdata-panel.js`, `ha-washdata-card.js`) with no source code in the repo. Contributors can read, test, and fix the Python detection logic, but the UI — which is where most users spend their time — is effectively closed. This is a real problem for a community integration claiming to be open source. NumPy as a runtime dependency in Home Assistant is fragile: HA doesn't sandbox Python packages, so version conflicts with other integrations happen, and HA core updates can break pinned NumPy versions in ways that are hard to diagnose. Cold start is painful — zero useful profiles until you've run and labelled 3-5 cycles per program, and temperature variants may stay ambiguous indefinitely if your machine's power draw doesn't change much between 40°C and 60°C. Finally, the electrical safety warning is not just boilerplate: running a 2500W washing machine through a cheap smart plug is a genuine fire risk, and the integration can't mitigate that in software.