🤖 Vacuum Notification Card — Persistent Android notification with live map, controls and smart sound management

Import Blueprint

A persistent Android notification card for robot vacuums that stays visible while your vacuum is running, shows a live map snapshot, exposes action buttons to control the robot, and sends a final completion notification with the last map frame when it docks. No extra helpers required — just your vacuum entity, a tank sensor and a camera.


How it works

The blueprint is triggered by state changes on the vacuum entity and the tank sensor. As long as the vacuum is active it maintains a single persistent notification, overwriting itself on every update using a fixed tag derived from the entity ID. When the robot docks, a separate completion notification is sent and the persistent one is cleared.

Notification content:

  • Current state (Cleaning, Paused, Returning to base, Idle, Error) with emoji
  • Battery level if available
  • Tank fill percentage from a dedicated sensor
  • Live map image from a camera entity (local or external URL)

Action buttons:

  • Stop / Resume — dynamic label depending on current state. Uses a negative condition (not in ['cleaning', 'returning', 'docked']) to handle any non-active state robustly, including integrations that report idle instead of paused
  • Go home — sends the robot back to base

Inputs

Input Description
Vacuum Entity vacuum.* entity
Tank Percentage Sensor sensor.* reporting dust tank fill level
Map Image URL Full URL to the camera snapshot (see below)
Notification Service e.g. notify.mobile_app_pixel_8 or notify.family

Map Image URL must be reachable from the mobile device. For external access the recommended format is:

https://your-host.duckdns.org/api/camera_proxy/camera.your_map?token={{ state_attr('camera.your_map', 'access_token') }}

This injects the token dynamically at runtime so it never expires. The camera entity is not an input field — the URL is passed directly, which makes the blueprint compatible with any camera integration (Xiaomi Cloud Map Extractor, Valetudo, Roborock, etc.) and also allows using a static URL or a local one depending on your setup.


Compatibility

Optimized for Android. Functional on iOS but sticky, persistent and notification channels are not supported on that platform — all updates will produce sound and the notification can be dismissed freely.


Source

GitHub — txitxo0/ha-blueprints


Full disclosure: I’m @Jesus_De_Luis_Serran and I was too lazy to write this myself, so I had AI write it for me. I just couldn’t be bothered with the post. :robot:

1 Like

I am using a Dreame L10s Ultra Gen 3 as vacuum and cannot find the tank sensor… May i not use that sensor when creating the automation? Or maybe can you add (for example) more sensors (battery level, cleaning time, etc…) ?

Hi there, thanks for the feedback. I have just push a new version getting the tank sensor as an optional input. make totally sense.

Regarding the more sensors… I have edit the readme including the images, so that you can check it is already using vacuum sensors like the batery :slight_smile:

Great!

Can you add rotation option? I normaly used vertical but for your BP it should be horizontal…

What do you mean by vertical? Vertical mode in the android device?

Updated to latest release, but cannot save the project if i disable the tank sensor…

Oh! That’s true, sorry!

Let me work on that and update it tomorrow if possible :wink:
Thank you!
I will do it in a beta version to prevent this situation next time :slight_smile: