Files
haos-blueprints/Common/Washing Machine/README.md
T
alexei.dolgolyov ad6f30ce3c feat: add unload reminder to Washing Machine
- Send a reminder N minutes after cycle completion, with optional repeats
- Auto-cancel reminders when a new cycle starts or a door/lid sensor opens
- Gate the completion timestamp on configured door sensors being closed
- Track completion time (cct) and reminder count (urc) in persistent state
2026-05-27 13:09:55 +03:00

89 lines
3.9 KiB
Markdown

# Washing Machine / Dryer Notifications Blueprint
This blueprint monitors washing machine or dryer appliances and sends notifications for various events throughout the wash/dry cycle.
## Features
- Start notification with cycle duration, estimated end time, and mode details
- Completion notification (reminder to unload clothes) with energy report
- "Almost done" notification (configurable minutes before end)
- Unload reminder (configurable delay, optional repeats) — auto-cancelled when a new cycle starts or a configured door/lid sensor opens
- Pause/Resume notifications (detect when cycle is paused or resumed)
- Error message notifications
- Preparation mode notification (e.g., for dryer prep)
- Tub/drum cleaning reminder based on wash counter
- Power consumption monitoring with energy tracking per cycle
- Fully customizable notification messages (i18n support)
- Debug notifications for troubleshooting
## State Machine
The automation tracks the appliance through these states:
| State | Description |
|-------|-------------|
| IDLE | Waiting for cycle to start |
| RUNNING | Cycle in progress (start notification sent) |
| PAUSED | Cycle temporarily paused (pause notification sent) |
| FINISHING | Near completion (time-to-end notification sent) |
| COMPLETED | Cycle done (completion notification sent, state reset) |
## Persistent State Keys
| Key | Description |
|-----|-------------|
| `nass` | Notification About Start Sent |
| `nart` | Notification About Remaining Time Sent |
| `naps` | Notification About Preparation Sent |
| `napas` | Notification About Pause Sent |
| `wasp` | Was Paused flag |
| `cst` | Cycle Start Time (ISO timestamp) |
| `esmp` | Energy Samples accumulator (Wh) |
| `lst` | Last Sample Time (ISO timestamp) |
| `cct` | Cycle Completion Time (ISO timestamp, drives unload reminder) |
| `urc` | Unload Reminder Count (number of reminders already sent) |
## Message Template Variables
All message templates support these placeholder variables (use single braces):
| Variable | Description |
|----------|-------------|
| `{appliance_name}` | Device name (e.g., "Washing Machine") |
| `{remaining}` | Remaining time as string (e.g., "01:30:00") |
| `{estimated_end}` | Estimated completion time (e.g., "14:30") |
| `{minutes}` | Remaining minutes (almost-done) or elapsed minutes since completion (unload reminder) |
| `{error}` | Error message text (only in error notification) |
| `{tub_count}` | Tub clean counter value (only in tub clean notification) |
| `{tub_threshold}` | Tub clean threshold (only in tub clean notification) |
| `{details}` | Startup details from sensors (only in start notification) |
| `{energy_kwh}` | Energy consumed in kWh (only in completion notification) |
| `{energy_cost}` | Estimated cost (only in completion notification) |
## Requirements
- Sensors for: remaining time, run state, error messages
- `input_text` entity for persistent state storage
- Notification service entity
- (Optional) Power sensor for energy tracking
## Unload Reminder
If `Unload Reminder Delay` is greater than 0, the automation:
1. Records the completion timestamp (`cct`) when the cycle finishes — but **only if** every door sensor in `Unload Reminder Door Sensors` is currently closed (or the list is empty).
2. Sends a reminder N minutes later (where N = delay), then optionally repeats every `Unload Reminder Repeat Interval` minutes up to `Unload Reminder Repeat Count` total.
3. Cancels all pending reminders when:
- A new cycle starts (start handler clears `cct` and `urc`), **or**
- Any of the configured door / lid sensors transitions to `on` (treated as "user has unloaded").
The check runs once per minute via a `time_pattern` trigger. The door sensor list is optional — leave it empty to keep reminders purely time-based.
## Note
Default messages are in Russian for LG ThinQ integration. Customize messages in the "Messages" section for your language.
## Author
Alexei Dolgolyov (dolgolyov.alexei@gmail.com)