{"id":13622150,"url":"https://github.com/Tasshack/dreame-vacuum","last_synced_at":"2025-04-15T05:33:48.867Z","repository":{"id":61373899,"uuid":"544426802","full_name":"Tasshack/dreame-vacuum","owner":"Tasshack","description":"Home Assistant integration for Dreame robot vacuums with map support","archived":false,"fork":false,"pushed_at":"2025-03-09T03:47:01.000Z","size":54228,"stargazers_count":1151,"open_issues_count":21,"forks_count":160,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-04-13T13:56:49.111Z","etag":null,"topics":["app","automation","cloud","dreame","dreamehome","dreametech","hacs","home-assistant","homeassistant","integration","map","mi-home","miio","robot","vacuum","vacuum-map","xiaomi"],"latest_commit_sha":null,"homepage":"https://community.home-assistant.io/t/custom-component-dreame-vacuum","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tasshack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["Tasshack"],"custom":["ko-fi.com/Tasshack","paypal.me/Tasshackk"]}},"created_at":"2022-10-02T12:59:19.000Z","updated_at":"2025-04-12T08:23:30.000Z","dependencies_parsed_at":"2024-05-30T01:29:45.471Z","dependency_job_id":"80600a0b-06d2-424f-bb01-0f10247155a6","html_url":"https://github.com/Tasshack/dreame-vacuum","commit_stats":{"total_commits":212,"total_committers":14,"mean_commits":"15.142857142857142","dds":"0.16981132075471694","last_synced_commit":"3328795c55d5d6d2b75ec35da0e393502c5e85fc"},"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tasshack%2Fdreame-vacuum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tasshack%2Fdreame-vacuum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tasshack%2Fdreame-vacuum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tasshack%2Fdreame-vacuum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tasshack","download_url":"https://codeload.github.com/Tasshack/dreame-vacuum/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249015968,"owners_count":21198824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","automation","cloud","dreame","dreamehome","dreametech","hacs","home-assistant","homeassistant","integration","map","mi-home","miio","robot","vacuum","vacuum-map","xiaomi"],"created_at":"2024-08-01T21:01:14.834Z","updated_at":"2025-04-15T05:33:48.860Z","avatar_url":"https://github.com/Tasshack.png","language":"Python","funding_links":["https://github.com/sponsors/Tasshack","ko-fi.com/Tasshack","paypal.me/Tasshackk","https://www.ko-fi.com/Tasshack","https://paypal.me/Tasshackk","https://ko-fi.com/tasshack'","https://paypal.me/tasshackK"],"categories":["Python","Custom Integrations"],"sub_categories":["🧹 Vacuums"],"readme":"[![version](https://img.shields.io/github/manifest-json/v/Tasshack/dreame-vacuum?filename=custom_components%2Fdreame_vacuum%2Fmanifest.json\u0026color=slateblue)](https://github.com/Tasshack/dreame-vacuum/releases/latest)\r\n![GitHub all releases](https://img.shields.io/github/downloads/Tasshack/dreame-vacuum/total)\r\n[![HACS](https://img.shields.io/badge/HACS-Default-orange.svg?logo=HomeAssistantCommunityStore\u0026logoColor=white)](https://github.com/hacs/integration)\r\n[![Community Forum](https://img.shields.io/static/v1.svg?label=Community\u0026message=Forum\u0026color=41bdf5\u0026logo=HomeAssistant\u0026logoColor=white)](https://community.home-assistant.io/t/custom-component-dreame-vacuum/473026)\r\n[![Ko-Fi](https://img.shields.io/static/v1.svg?label=%20\u0026message=Ko-Fi\u0026color=F16061\u0026logo=ko-fi\u0026logoColor=white)](https://www.ko-fi.com/Tasshack)\r\n[![PayPal.Me](https://img.shields.io/static/v1.svg?label=%20\u0026message=PayPal.Me\u0026logo=paypal)](https://paypal.me/Tasshackk)\r\n\r\n![Logo](https://raw.githubusercontent.com/Tasshack/dreame-vacuum/dev/docs/media/logo.png)\r\n\r\n# Dreame vacuum integration for Home Assistant\r\n\r\nComplete app replacement with Home Assistant for Dreame robot vacuums.\r\n\r\n\u003cimg src=\"https://raw.githubusercontent.com/Tasshack/dreame-vacuum/master/docs/media/map.png\" width=\"48%\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Tasshack/dreame-vacuum/master/docs/media/map_app.png\" width=\"48%\"\u003e\r\n\r\n\u003cimg src=\"https://raw.githubusercontent.com/Tasshack/dreame-vacuum/master/docs/media/settings.png\" width=\"48%\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Tasshack/dreame-vacuum/master/docs/media/settings_app.png\" width=\"48%\"\u003e\r\n\r\n## Features\r\n\r\n- [Auto generated device entities](https://github.com/Tasshack/dreame-vacuum/blob/master/docs/entities.md)\r\n- [Live and multi floor map support](https://github.com/Tasshack/dreame-vacuum/blob/master/docs/map.md)\r\n- [Customized room cleaning entities](https://github.com/Tasshack/dreame-vacuum/blob/master/docs/room_entities.md)\r\n- [Services for device and map with examples](https://github.com/Tasshack/dreame-vacuum/blob/master/docs/services.md)\r\n- [Persistent notifications and error reporting](https://github.com/Tasshack/dreame-vacuum/blob/master/docs/notifications.md)\r\n- [Events for automations](https://github.com/Tasshack/dreame-vacuum/blob/master/docs/events.md)\r\n- [Valetudo map card support](#with-valetudo-map-card)\r\n\r\n## Supported Devices\r\n- **Dreame**\r\n  - `dreame.vacuum.p2008` *(F9)*\r\n  - `dreame.vacuum.p2009` *(D9)*\r\n  - `dreame.vacuum.p2259` *(D9 Max)*\r\n  - `dreame.vacuum.p2187` *(D9 Pro)*\r\n  - `dreame.vacuum.r2205` *(D10 Plus)*\r\n  - `dreame.vacuum.p2029` *(L10 Pro)*\r\n  - `dreame.vacuum.p2028a` *(L10 Plus)*\r\n  - `dreame.vacuum.r2228o` *(L10s Ultra)*\r\n  - `dreame.vacuum.r2215o` *(L10s Pro)*\r\n  - `dreame.vacuum.r2216o` *(L10s Pro)*\r\n  - `dreame.vacuum.p2028` *(Z10 Pro)*\r\n  - `dreame.vacuum.p2027` *(W10)*\r\n  - `dreame.vacuum.r2104` *(W10 Pro)*\r\n  - `dreame.vacuum.r2251o` *(W10s)*\r\n  - `dreame.vacuum.r2232a` *(W10s Pro)*\r\n  - `dreame.vacuum.r2228` *(S10)*\r\n  - `dreame.vacuum.r2211o` *(S10+)*\r\n  - `dreame.vacuum.r2233` *(S10 Pro)*\r\n  - `dreame.vacuum.r2247` *(S10 Pro Plus)*\r\n  - `dreame.vacuum.r2246` *(S10 Plus)*\r\n  - `dreame.vacuum.r2215` *(X10)*\r\n  - `dreame.vacuum.r2235` *(X10 Ultra)*\r\n- **Mijia**\r\n  - `dreame.vacuum.p2036` *(Trouver LDS Finder)*\r\n  - `dreame.vacuum.p2150o` *(Vacuum-Mop)*\r\n  - `dreame.vacuum.p2150a` *(Vacuum-Mop 2 Ultra)*\r\n  - `dreame.vacuum.p2150b` *(Vacuum-Mop 2 Ultra Set)*\r\n  - `dreame.vacuum.p2114o` *(Self-Cleaning Robot Vacuum-Mop)* \r\n  - `dreame.vacuum.p2149o` *(Self-Cleaning Robot Vacuum-Mop Pro)*\r\n  - `dreame.vacuum.r2254` *(1S)*\r\n  - `dreame.vacuum.r2209` *(X10)*\r\n  - `dreame.vacuum.p2114a` *(X10+)*\r\n  - `dreame.vacuum.p2041` *(1T)*\r\n  - `dreame.vacuum.p2140a` *(2C)*\r\n  - `dreame.vacuum.p2140` *(2C)*\r\n  - `dreame.vacuum.p2140q` *(Mi Robot Vacuum-Mop 2)*\r\n  - `dreame.vacuum.p2140p` *(Mi Robot Vacuum-Mop 2)*\r\n  - `dreame.vacuum.p2140o` *(Mi Robot Vacuum-Mop 2)*\r\n  - `dreame.vacuum.p2148o` *(Mi Robot Vacuum Mop Ultra Slim)*\r\n  - `dreame.vacuum.p2041o` *(Mi Robot Vacuum-Mop 2 Pro+)*\r\n- **MOVA** \r\n  - `dreame.vacuum.p2157` *(L600)*\r\n  - `dreame.vacuum.p2156o` *(MOVA Z500)*\r\n\r\n## Installation\r\n\r\n### Manually\r\n\r\n```sh\r\nwget -O - https://raw.githubusercontent.com/Tasshack/dreame-vacuum/master/install | bash -\r\n```\r\n\r\n\r\n### Via [HACS](https://hacs.xyz/)\r\n\u003ca href=\"https://my.home-assistant.io/redirect/hacs_repository/?owner=Tasshack\u0026repository=dreame-vacuum\u0026category=integration\" target=\"_blank\"\u003e\u003cimg src=\"https://my.home-assistant.io/badges/hacs_repository.svg\" alt=\"Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.\" /\u003e\u003c/a\u003e\r\n\r\n## Configuration\r\n\u003ca href=\"https://my.home-assistant.io/redirect/config_flow_start/?domain=dreame_vacuum\" target=\"_blank\"\u003e\u003cimg src=\"https://my.home-assistant.io/badges/config_flow_start.svg\" alt=\"Open your Home Assistant instance and start setting up a new integration.\" /\u003e\u003c/a\u003e\r\n- Select configuration type:\r\n\r\n    \u003cimg src=\"https://raw.githubusercontent.com/Tasshack/dreame-vacuum/master/docs/media/config_flow.png\" width=\"550px\"\u003e\r\n\r\n    \u003ca href=\"https://github.com/Tasshack/dreame-vacuum/blob/master/docs/map.md\" target=\"_blank\"\u003eAbout map feature\u003c/a\u003e\r\n\r\n- Enter required credentials according to the selected configuration type. \r\n  \u003e Please make sure that the devices are at same subnet for both configuration types. \u003ca href=\"https://python-miio.readthedocs.io/en/latest/troubleshooting.html#discover-devices-across-subnets\" target=\"_blank\"\u003epython-miio article about this issue.\u003c/a\u003e\r\n- Set your device name and integration settings:\r\n\r\n    \u003cimg src=\"https://raw.githubusercontent.com/Tasshack/dreame-vacuum/master/docs/media/config_flow_settings.png\" width=\"350px\"\u003e\r\n\r\n    \u003ca href=\"https://github.com/Tasshack/dreame-vacuum/blob/master/docs/notifications.md\" target=\"_blank\"\u003eAbout notifications feature\u003c/a\u003e\u003cbr\u003e\u003ca href=\"https://github.com/Tasshack/dreame-vacuum/blob/master/docs/map.md#color-schemes\" target=\"_blank\"\u003eAbout map color schemes\u003c/a\u003e\r\n- Navigate to device page for disabling or enabling entities that you want to use.\r\n\r\n    \u003ca href=\"https://github.com/Tasshack/dreame-vacuum/blob/master/docs/entities.md\" target=\"_blank\"\u003eAbout entities\u003c/a\u003e\r\n \r\n## How to Use\r\n\r\nIntegration is compatible with all available Lovelace vacuum cards but if you want to use zone cleaning feature you can prefer the Xiaomi Vacuum Card.\r\n\r\n#### With [Xiaomi Vacuum Map Card](https://github.com/PiotrMachowski/lovelace-xiaomi-vacuum-map-card)\r\n\r\n```yaml\r\ntype: custom:xiaomi-vacuum-map-card\r\nentity: # Your vacuum entity\r\nmap_source:\r\n  camera: # Map Entity\r\ncalibration_source:\r\n  camera: true\r\nvacuum_platform: Tasshack/dreame-vacuum\r\n```\r\n\r\n\u003e Open card editor, click \"Generate rooms config\" button, check (adjust if needed) your config using yaml editor and save changes.\r\n\u003cimg src=\"https://user-images.githubusercontent.com/6118709/189792603-c5ad2089-7405-4d1b-850d-77af8f170618.png\"\u003e\r\n\r\n#### With [Vacuum Card](https://github.com/denysdovhan/vacuum-card)\r\n\r\n```yaml\r\ntype: custom:vacuum-card\r\nentity: # Your vacuum entity\r\nmap: # Map Entity\r\nmap_refresh: 1\r\nstats:\r\n  default:\r\n    - attribute: filter_left\r\n      unit: '%'\r\n      subtitle: Filter\r\n    - attribute: side_brush_left\r\n      unit: '%'\r\n      subtitle: Side brush\r\n    - attribute: main_brush_left\r\n      unit: '%'\r\n      subtitle: Main brush\r\n    - attribute: sensor_dirty_left\r\n      unit: '%'\r\n      subtitle: Sensors\r\n  cleaning:\r\n    - attribute: cleaned_area\r\n      unit: m²\r\n      subtitle: Cleaned area\r\n    - attribute: cleaning_time\r\n      unit: min\r\n      subtitle: Cleaning time\r\nshortcuts:\r\n  - name: Clean Room 1\r\n    service: dreame_vacuum.vacuum_clean_segment\r\n    service_data:\r\n      entity_id: # Your vacuum entity\r\n      segments: 1\r\n    icon: mdi:sofa\r\n  - name: Clean Room 2\r\n    service: dreame_vacuum.vacuum_clean_segment\r\n    service_data:\r\n      entity_id: # Your vacuum entity\r\n      segments: 2\r\n    icon: mdi:bed-empty\r\n  - name: Clean Room 3\r\n    service: dreame_vacuum.vacuum_clean_segment\r\n    service_data:\r\n      entity_id: # Your vacuum entity\r\n      segments: 3\r\n    icon: mdi:silverware-fork-knife\r\n```\r\n\r\n#### With \u003ca href=\"https://github.com/Hypfer/lovelace-valetudo-map-card\" target=\"_blank\"\u003eValetudo Map Card\u003c/a\u003e\r\n \u003e Enable **Map Data** camera entity. \r\n\u003ca href=\"https://my.home-assistant.io/redirect/entities/\" target=\"_blank\"\u003e\u003cimg src=\"https://my.home-assistant.io/badges/entities.svg\" alt=\"Open your Home Assistant instance and show your entities.\" /\u003e\u003c/a\u003e\r\n\r\n```yaml\r\ntype: custom:valetudo-map-card\r\nvacuum: # Your vacuum name not the entity id\r\nrotate: 0 # Map rotation entity does not work on valetudo map card\r\ndock_icon: mdi:lightning-bolt-circle\r\ndock_color: rgb(105 178 141)\r\nvacuum_color: rgb(110, 110, 110)\r\nwall_color: rgb(159, 159, 159)\r\nfloor_color: rgb(221, 221, 221)\r\nno_go_area_color: rgb(177, 0, 0)\r\nno_mop_area_color: rgb(170, 47, 255)\r\nvirtual_wall_color: rgb(199, 0, 0)\r\nvirtual_wall_width: 1.5\r\ncurrently_cleaned_zone_color: rgb(221, 221, 221)\r\npath_color: rgb(255, 255, 255)\r\npath_width: 1.5\r\nsegment_opacity: 1\r\nsegment_colors:\r\n  - rgb(171, 199, 248)\r\n  - rgb(249, 224, 125)\r\n  - rgb(184, 227, 255)\r\n  - rgb(184, 217, 141)\r\n```\r\n\r\n#### With \u003ca href=\"https://github.com/benct/lovelace-xiaomi-vacuum-card\" target=\"_blank\"\u003eXiaomi Vacuum Card\u003c/a\u003e and Picture Entity Card\r\n```yaml\r\ntype: picture-entity\r\nentity: # Your vacuum entity\r\ncamera_image: # Your camera entity\r\nshow_state: false\r\nshow_name: false\r\ncamera_view: live\r\ntap_action:\r\n  action: none\r\nhold_action:\r\n  action: none\r\n```\r\n\r\n```yaml\r\ntype: custom:xiaomi-vacuum-card\r\nentity: # Your vacuum entity\r\nvendor: xiaomi\r\nattributes:\r\n  main_brush_life:\r\n    label: 'Main Brush: '\r\n    key: main_brush_left\r\n    unit: '%'\r\n    icon: mdi:car-turbocharger\r\n  side_brush_life:\r\n    label: 'Side Brush: '\r\n    key: side_brush_left\r\n    unit: '%'\r\n    icon: mdi:pinwheel-outline\r\n  filter_life:\r\n    label: 'Filter: '\r\n    key: filter_left\r\n    unit: '%'\r\n    icon: mdi:air-filter\r\n  sensor_life:\r\n    label: 'Sensor: '\r\n    key: sensor_dirty_left\r\n    unit: '%'\r\n    icon: mdi:radar\r\n  main_brush: false\r\n  side_brush: false\r\n  filter: false\r\n  sensor: false\r\n\r\n```\r\n\r\n#### With Dreame Vacuum Card\r\n\r\n*Coming Soon*\r\n\r\n## To Do\r\n\r\n- Cleaning history map support\r\n- Map recovery support\r\n- Schedule editing\r\n- AI Obstacle image support\r\n- Custom lovelace card for map editing\r\n\r\n\r\n## Contributing\r\nIntegrations is currently only available on English language and if want you use it on our language it would be very helpful to you to translate files on *translations* folder and share with us.\r\n\r\nTo submit your changes please fork this repository and open a pull request. \r\n\r\n## Thanks To\r\n\r\n - [xiaomi_vacuum](https://github.com/pooyashahidi/xiaomi_vacuum) by [@pooyashahidi](https://github.com/pooyashahidi)\r\n - [Xiaomi MIoT for Home Assistant](https://github.com/ha0y/xiaomi_miot_raw) by [@ha0y](https://github.com/ha0y)\r\n - [Xiaomi Cloud Map Extractor](https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor) by [@PiotrMachowski](https://github.com/PiotrMachowski)\r\n - [Valetudo](https://github.com/Hypfer/Valetudo) by [@Hypfer](https://github.com/Hypfer)\r\n\r\n\r\n\u003ca href='https://ko-fi.com/tasshack' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi3.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\r\n\u003ca href=\"https://paypal.me/tasshackK\" target=\"_blank\"\u003e\u003cimg src=\"https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg\" border=\"0\" alt=\"PayPal Logo\" style=\"height: auto !important;width: auto !important;\"\u003e\u003c/a\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTasshack%2Fdreame-vacuum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTasshack%2Fdreame-vacuum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTasshack%2Fdreame-vacuum/lists"}