Custom Component: Dreame Vacuum

I tried to use your code, but i have this error:

  • Errore nell’analisi di YAML: missed comma between flow collection entries (riga: 2, colonna: 2)

How to fix it?

I changed the first line into this way putting the entity_id of my vacuum:

{# ----------------- PROVIDE YOUR OWN ENTITY ID AND ROOM COUNT HERE ----------------- #}

{% set vacuum_entity = "vacuum.l10s_ultra_gen_3" %}

And the error seems to be in the second row, second column.

The snippet is not meant to be posted into a dashboard, but into the developer tools → template section which will then spit out yaml for you to use in a dashboard

Thanks… i did it and now i have the card…

Installed the v2.0.0b21 beta which supports the Mova P10 Pro Ultra.

Initially had a login issue but the fix documented in Issue #1311 resolved it.

Thank you @tasshack for this integration.

I currently have a Dreame L10 PRO and I’m using v1.0.7 integration.
I just bought an L40s Pro Ultra so I’m wondering if this version will recognize the new vacuum cleaner or do I have to install the beta version of the integration?

Absolutely love the work you do @tasshack
Do you have an ETA for the non-beta version of v2.0?

Hi all,

EDIT: Figured it out! I used my Google account to create the account in the app. The Google password didn’t work for the integration, then inside the Dreame app I set a new password - voila! Logged in without issues!

Installed the v2.0.0b21 beta which supports the L40 Ultra AE.

During installation of Integration, I did choose the Dreamehome account, added my email and password, eu, but get ‘Could not login, check the credentials’

I have double checked the user and pass but still the same. What am I missing?

v1.0.8 has been released to fix entity id issue with HA 2026.02+

v2.0.0b22 has been released!

  • 63 new supported models.
  • Entity id fix for HA 2026.02+
  • Many bug fixes regarding 2025 models with latest firmware.
  • KR server support for Dreamehome.
  • Support for displaying locally stored obstacle photos.
  • Full support for Maxtrix10 series.
  • Full support for Aqua10 and other roller mop vacuums.

Do not forget to support the project!



hello,

i have a dreame.vacuum.p2008

i tested 1.07 & 1.08
also right now v2.0.22b

i want the function “goto” or “zone clean”

i have the coordinates from card in ha or dev tools. (x + y)
i try to use the “action” in dev tools.

i always get

  • … unknow function
  • … is not inside the map
  • … unknown error

i deleted the map, generate a new one, but the errors are always the same
also tryed this code

[{"id":"a472ce81445049f2","type":"server-state-changed","z":"967675d9b8bbd1be","name":"return","server":"7cb2eeb7.3b621","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"vacuum.dreame_robot_vacuum_d9","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"returning","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":90,"y":60,"wires":[["4bb7bb534022e5ec"],[]]},{"id":"719ddfcf52876c26","type":"api-call-service","z":"967675d9b8bbd1be","name":"kitchen","server":"7cb2eeb7.3b621","version":5,"debugenabled":false,"domain":"dreame_vacuum","service":"vacuum_clean_segment","areaId":[],"deviceId":[],"entityId":["vacuum.dreame_robot_vacuum_d9"],"data":"{ \"segments\": 1 }","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":380,"y":60,"wires":[["874c776491c69730"]]},{"id":"874c776491c69730","type":"ha-wait-until","z":"967675d9b8bbd1be","name":"in k","server":"7cb2eeb7.3b621","version":2,"outputs":1,"entityId":"sensor.dreame_robot_vacuum_d9_current_room","entityIdFilterType":"exact","property":"state","comparator":"is","value":"Kitchen","valueType":"str","timeout":"0","timeoutType":"num","timeoutUnits":"seconds","checkCurrentState":true,"blockInputOverrides":true,"outputProperties":[],"entityLocation":"data","entityLocationType":"none","x":530,"y":60,"wires":[["fd065cca3ab67606","e48a055547579519"]]},{"id":"fd065cca3ab67606","type":"api-call-service","z":"967675d9b8bbd1be","name":"stop","server":"7cb2eeb7.3b621","version":5,"debugenabled":false,"domain":"vacuum","service":"stop","areaId":[],"deviceId":[],"entityId":["vacuum.dreame_robot_vacuum_d9"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":670,"y":60,"wires":[["ab1e8e875902e167"]]},{"id":"ab1e8e875902e167","type":"api-call-service","z":"967675d9b8bbd1be","name":"notify","server":"7cb2eeb7.3b621","version":5,"debugenabled":false,"domain":"notify","service":"notify","areaId":[],"deviceId":[],"entityId":[],"data":"{ \"message\": \"Time to empty the vacuum\" }","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":810,"y":60,"wires":[[]]},{"id":"4bb7bb534022e5ec","type":"api-current-state","z":"967675d9b8bbd1be","name":">5m","server":"7cb2eeb7.3b621","version":3,"outputs":2,"halt_if":"5","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.dreame_robot_vacuum_d9_cleaning_time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":230,"y":60,"wires":[["719ddfcf52876c26"],[]]},{"id":"7cb2eeb7.3b621","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

but could not find a information in dev tools, arrived in zone or something simular.

the last i have not tried yet, generate a “room” inside a existing room, to send the vaccum to clean this new room and stop after cleaning …

what did i wrong ?
help please.

bg
mfg

p.s.
got it working, i created a “small” room and stop after cleaning … not nice but works … thanks

How to create predefined zones using this component and the xiaomi-vacuum card? I know i can create zones live with this card, but i will prefer to have predefined zones activable with a click. Is it possible? And if yes, How?
Thanks for any reply.

I am trying to save this zone and clean it, but get always the same error as you see in the screenshot.

Where am i wrong?

No supported devices found in this account on selected country. (xiaomi.vacuum.d102gl)

Denmark=de

Please!!

Xiaomi X20 Pro

Raise a ticket at the project’s Github issues page. That’s how these issues gets resolved.

https://github.com/Tasshack/dreame-vacuum/issues

I have a Mova P50 Pro Ultra integrated into HA using the Dreame Vacuum HACS component. I would now like to trigger a mop washing/cleaning from HA separately without starting a room cleaning (I always do this from the Mova App before I manually bring it to another level of the home to clean rooms there).
How could I do this?

It is not a vacuum that manufactured by Dreame therefore cannot be supported with this project.

There is a button entity for that button.vacuum_name_self_clean.
Use search button from your Home Assistant dashboard with keyword button self_clean.

1 Like

There should be a Generate Rooms Config button inside card configurator.
Check card documentation for room cleaning setup which has nothing to do with this project.

Thank you, will try to find out. Sadly button for generating rooms config does nothing.


Update:
Tried adding card again using your template. Seems like the first time it could not read room coordinates and no code related to rooms appeared in my card.

Rebuilding card from your template did the trick now.:partying_face: