Deferred Load: Washing Machine¶
Defer a washing machine cycle until solar surplus is available, so the appliance runs on free energy.
The Problem¶
A washing machine runs a fixed cycle (typically 60-120 minutes) and cannot be paused mid-cycle without ruining the wash. You want to run it during peak solar production, but you do not know exactly when that will be today.
The Solution¶
Hanergy configures the washing machine as a deferred load. The workflow is:
- You load the machine and prepare it for a wash.
- You press a "Start when solar" button in Home Assistant (an
input_buttonhelper). - Hanergy queues the request and waits for sufficient surplus.
- When surplus exceeds the machine's power draw, Hanergy switches it on.
- The machine runs for its estimated cycle duration, then Hanergy switches it off.
The key difference from other load types: deferred loads do not activate automatically. They require an explicit user trigger first.
Device Configuration¶
Add the washing machine as a deferred load in Settings > Devices.
| Field | Value | Notes |
|---|---|---|
| Name | Washing Machine | Display name |
| Type | Deferred | User-triggered, runs a complete cycle |
| Switch entity | switch.washing_machine | On/off control via smart plug |
| Rated power | 2000 | Peak draw during heating phase |
| Estimated runtime | 120 | Minutes for a full cycle |
| Trigger entity | input_button.start_washing_machine | User presses this to request a run |
Creating the trigger entity
In Home Assistant, go to Settings > Devices & Services > Helpers > Create Helper > Button. Name it "Start Washing Machine" and note the entity ID (e.g., input_button.start_washing_machine). You can add this button to a dashboard card, an NFC tag, or a physical Zigbee button.
Priority Configuration¶
| Field | Value | Notes |
|---|---|---|
| Load | Washing Machine | Select the device |
| Minimum surplus | 2000 | Watts required to start the cycle |
| Enabled | Yes |
Place the washing machine at a moderate priority. It does not need to be high priority because the cycle can wait, but it should not be the lowest priority either -- a washing machine left waiting all day may not run before sunset.
How It Works¶
Once the user presses the trigger button:
- Hanergy marks the load as queued.
- On each evaluation cycle, the engine checks whether surplus exceeds
min_surplus_w. - When surplus is sufficient, Hanergy activates the switch entity, starting the machine.
- The machine runs for
est_runtime_minminutes (120 minutes in this example). - After the estimated runtime, Hanergy switches the load off.
Cannot pause mid-cycle
Unlike dynamic and fixed loads, a deferred load runs until completion once started. Hanergy does not shed a deferred load mid-cycle if surplus drops. The estimated runtime tells the engine how long the cycle will take, allowing it to account for the power draw in surplus calculations for the duration.
Tips¶
-
Estimated runtime should be generous. Set it to the longest possible cycle for your machine. If the machine finishes early, its own internal relay will stop drawing power. If the estimate is too short, Hanergy may cut power before the cycle completes.
-
Smart plug requirement. The washing machine needs to be connected through a smart plug (e.g., Shelly Plug, Sonoff, Zigbee plug) that exposes a
switchentity in Home Assistant. The machine should be set to start automatically when power is applied. -
Dishwasher works the same way. The deferred load pattern applies to any appliance that runs a fixed cycle: dishwashers, tumble dryers, bread machines. Create a separate deferred load for each appliance with its own trigger entity.
-
Trigger expiry. If the trigger is pressed but surplus never reaches the threshold before sunset, the request stays queued. Hanergy will attempt to start the machine the next day when surplus is available. Clear the trigger manually if you no longer want the cycle to run.