# Dreame Vacuum Notifications Sends customizable notifications for Dreame vacuum events. Requires the [Dreame Vacuum](https://github.com/Tasshack/dreame-vacuum) integration and Home Assistant 2024.7+ (`notify.send_message` action). ## Features - Notifications for cleaning started and completed - Consumable end-of-life alerts (brush, filter, mop pad, sensor, etc.) - Device warning and error notifications - Informational alerts (e.g., action blocked by Do Not Disturb) - Individual toggle for each event type - Per-code filter lists for silencing routine warnings, errors, or info messages - Customizable message templates - Multiple notification targets ## How It Works The blueprint listens to events fired by the Dreame Vacuum integration: | Event | Description | | --- | --- | | `dreame_vacuum_task_status` | Cleaning job started or completed | | `dreame_vacuum_consumable` | Consumable reached end-of-life | | `dreame_vacuum_warning` | Dismissible device warning | | `dreame_vacuum_error` | Device fault | | `dreame_vacuum_information` | Action blocked by user settings | Events are filtered by the configured vacuum: 1. If the event payload includes `device_id`, it must match the device of the configured vacuum entity. This is the most reliable match. 2. Otherwise the entity_id in the event must equal the configured one, or equal it followed by a purely numeric suffix (e.g., `vacuum.dreame_x10_2`). The integration uses `generate_entity_id()`, so a numeric suffix can appear when the base entity_id is taken. This avoids false positives when two vacuums share an entity_id prefix (e.g., `vacuum.dreame_x10` vs. `vacuum.dreame_x10_pro`). ## Configuration | Input | Description | | --- | --- | | **Vacuum Entity** | The Dreame vacuum entity to monitor | | **Notification Targets** | One or more `notify` entities | | **Event Toggles** | Enable/disable each event type independently | | **Filtering** | Lists of warning/error/information codes to silence | | **Message Templates** | Customizable message for each event type | ### Filtering Each filter input is a list of codes (as strings) that should not produce a notification. The blueprint compares the event's `code` field (cast to string) against the list. Use this to suppress noisy routine events while keeping critical ones. ## Message Template Variables ### Cleaning Started | Variable | Description | | --- | --- | | `{vacuum_name}` | Friendly name of the vacuum | | `{cleaning_mode}` | Cleaning mode (e.g., sweeping, mopping) | | `{status}` | Current status | ### Cleaning Completed | Variable | Description | | --- | --- | | `{vacuum_name}` | Friendly name of the vacuum | | `{cleaning_mode}` | Cleaning mode used | | `{status}` | Final status | | `{cleaned_area}` | Area cleaned (m²) | | `{cleaning_time}` | Cleaning duration (minutes) | ### Consumable Depleted | Variable | Description | | --- | --- | | `{vacuum_name}` | Friendly name of the vacuum | | `{consumable}` | Consumable name (e.g., Main Brush, Side Brush, Filter, Mop Pad) | ### Warning | Variable | Description | | --- | --- | | `{vacuum_name}` | Friendly name of the vacuum | | `{warning}` | Warning description | | `{code}` | Warning code | ### Error | Variable | Description | | --- | --- | | `{vacuum_name}` | Friendly name of the vacuum | | `{error}` | Error description | | `{code}` | Error code | ### Information | Variable | Description | | --- | --- | | `{vacuum_name}` | Friendly name of the vacuum | | `{information}` | Information message (e.g., Dust Collection, Cleaning Paused) | | `{code}` | Information code | ## Notes - The default messages contain emojis. Most modern notify integrations (Mobile App, Telegram, Discord) render them correctly; legacy SMS-based integrations may not. - `notify.send_message` requires Home Assistant 2024.7 or newer. ## Debug Mode Enable **Debug Notifications** in the Debug section to send a persistent notification for every trigger. Each debug notification includes the blueprint version, dispatched event kind, and the enable decision — useful for confirming filters are doing what you expect. The notification is keyed per vacuum so debug entries from multiple vacuums do not overwrite each other. ## Author Alexei Dolgolyov ()