Appliance Orchestrator Pro — Energy-aware lifecycle manager for any appliance
An agnostic lifecycle manager for any power-monitored appliance — washing machine, dishwasher, dryer, or anything with a smart plug. It orchestrates the full cycle against an energy schedule: holds the appliance in a waiting state outside cheap hours, resumes automatically when the window opens, and validates the cycle duration to detect failures.
Any integration that exposes cheap hours as a native HA schedule entity works as input. A PVPC → Schedule parser blueprint is planned as a companion piece in the same repository.
How it works
The blueprint is built around a state machine with four states: IDLE, WAITING_FOR_WINDOW, RUNNING, and ERROR.
Admission control: when power is detected above the start threshold, the blueprint checks whether the current time falls within the cheap window and whether there is enough time remaining to complete a full cycle. If not, it cuts power to the plug, moves to WAITING_FOR_WINDOW, and sends an actionable notification with a bypass button. When the cheap window opens again, it resumes automatically.
Watchdog: when power drops below the end threshold (with a configurable delay), the blueprint measures the actual cycle duration against the expected duration. It distinguishes three outcomes:
- Duration < 5% of expected → start failure (door left open, inlet problem) →
ERROR - Duration between 75% and 150% of expected → success →
IDLE - Anything else → anomaly (early stop, unexpected behaviour) →
ERROR
Notifications: all message text is user-defined and supports Jinja2 templates. Notifications use unique tags per automation instance and are auto-cleared after 5 minutes in WAITING_FOR_WINDOW. Custom actions can be attached to the pause, error, and completion events.
Prerequisites
- An
input_selecthelper with exactly these options:IDLE,RUNNING,WAITING_FOR_WINDOW,ERROR - A HA
scheduleentity defining your cheap energy hours - A smart plug or power sensor reporting consumption in W
- A mobile notification service (e.g.
notify.mobile_app_iphone)
Comparison with Blackshome’s Appliance Notifications & Actions
Big credit to @Blackshome — their blueprint is one of the most complete appliance notification solutions out there, with 61 stars and an impressive feature set: energy tracking, cycle counters, service reminders, reminder notifications, device tracker filtering, iOS/Android notification customization, and more.
This blueprint solves a different problem. Rather than tracking what an appliance does, it controls when it runs — specifically around energy pricing windows.
| Blackshome’s blueprint | Appliance Orchestrator Pro | |
|---|---|---|
| Focus | Notification & tracking after the appliance runs | Lifecycle orchestration around energy schedule |
| Energy schedule awareness | ✗ | ✓ Holds, delays and resumes based on cheap hours |
| Actionable bypass | ✗ | ✓ “Start Now” from the notification |
| Plug control | ✗ | ✓ Turns plug on/off as part of the lifecycle |
| Anomaly detection | Watchdog (timeout-based) | Watchdog + duration-based anomaly (too short / too long) |
| Energy & cost tracking | ✓ kWh + estimated cost per cycle | ✗ |
| Cycle counter | ✓ | ✗ |
| Service reminders | ✓ Cycle-based and time-based | ✗ |
| Reminder notifications | ✓ Repeating until attended | ✗ |
| iOS/Android notification options | ✓ Interruption levels, sounds, icons, channels | Basic |
| Device tracker filtering | ✓ Notify only if home | ✗ (this feat was though, but finally out of our roadmap) |
| Multiple instances | ✓ | ✓ mode: parallel |
| Setup complexity | Low — no extra helpers required | Medium — requires input_select and schedule entity |
If you want rich tracking and flexible notifications for an appliance that just runs whenever you turn it on, Blackshome’s blueprint is the better fit. If you want to delay the appliance automatically until electricity is cheap and let it manage the plug lifecycle on its own, that’s what this one does.
They can also complement each other: use this blueprint to orchestrate when the appliance runs, and Blackshome’s to track what happened during the cycle.
Full disclosure: I’m @Jesus_De_Luis_Serran and I was too lazy to write this myself, so I had AI do it. I just couldn’t be bothered with the post. ![]()