Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

This custom integration provides a way to present a live view of a map for Xiaomi (Roborock/Viomi/Roidmi/Dreame) vacuums without a need for rooting.

License

NotificationsYou must be signed in to change notification settings

PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor

Repository files navigation

HACS DefaultGitHub Latest ReleaseGitHub All ReleasesCommunity ForumKo-Fibuycoffee.toPayPal.MeRevolut.Me

Xiaomi Cloud Map Extractor

This custom integration provides a way to present a live view of a map for Xiaomi, Roborock, Viomi, Roidmi and Dreame vacuums.(Supported devices)

Installation

UsingHACS (recommended)

This integration can be installed using HACS.To do it search forXiaomi Cloud Map Extractor inIntegrations section.

Manual

To install this integration manually you have to downloadxiaomi_cloud_map_extractor.zip and extract its contents toconfig/custom_components/xiaomi_cloud_map_extractor directory:

mkdir -p custom_components/xiaomi_cloud_map_extractorcd custom_components/xiaomi_cloud_map_extractorwget https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor/releases/latest/download/xiaomi_cloud_map_extractor.zipunzip xiaomi_cloud_map_extractor.ziprm xiaomi_cloud_map_extractor.zip

Configuration

After installation of the custom component, it needs to be configured inconfiguration.yaml file.To do so, add a camera entry to your configuration with at least abasic orrecommended configuration.Vacuum token can be extracted by followingthis guide (ignore "not recommended" message, as it applies only to built-in Xiaomi Miio integration).You also need to enter your Xiaomi Cloud username and password.These are the credentials used for the Xiaomi Home app (not ones from Roborock app).

After installation and a reboot of your Home Assistant instance, you should get a camera entity which shows the vacuum map.This might take a few minutes after a first restart.If you have a problem with configuration validation you have to remove camera fromconfiguration.yaml, restart Home Assistant, add camera config and restart HA again.

After modification of camera's configuration you can reload its settings inConfiguration or usingxiaomi_cloud_map_extractor.reload service.

Examples

Basic

camera:  -platform:xiaomi_cloud_map_extractorhost:!secret xiaomi_vacuum_hosttoken:!secret xiaomi_vacuum_tokenusername:!secret xiaomi_cloud_usernamepassword:!secret xiaomi_cloud_password

Recommended

camera:  -platform:xiaomi_cloud_map_extractorhost:!secret xiaomi_vacuum_hosttoken:!secret xiaomi_vacuum_tokenusername:!secret xiaomi_cloud_usernamepassword:!secret xiaomi_cloud_passworddraw:['all']attributes:      -calibration_points

Full

This configuration's purpose is to show all available options, do not use it unless you know what you are doing.
I know what I'm doing and I will not recklessly copy this config to my setup
camera:  -platform:xiaomi_cloud_map_extractorhost:!secret xiaomi_vacuum_hosttoken:!secret xiaomi_vacuum_tokenusername:!secret xiaomi_cloud_usernamepassword:!secret xiaomi_cloud_passwordcountry:"de"name:"My Vacuum Camera"colors:color_map_inside:[32, 115, 185]color_map_outside:[19, 87, 148]color_map_wall:[100, 196, 254]color_map_wall_v2:[93, 109, 126]color_grey_wall:[93, 109, 126]color_ignored_obstacle:[0, 0, 0, 127]color_ignored_obstacle_with_photo:[0, 0, 0, 127]color_obstacle:[0, 0, 0, 127]color_obstacle_with_photo:[0, 0, 0, 127]color_path:[147, 194, 238]color_mop_path:[255, 255, 255, 0x5F]color_goto_path:[0, 255, 0]color_predicted_path:[255, 255, 0, 0]color_cleaned_area:[127, 127, 127, 127]color_zones:[0xAD, 0xD8, 0xFF, 0x8F]color_zones_outline:[0xAD, 0xD8, 0xFF]color_virtual_walls:[255, 0, 0]color_carpets:[0xA9, 0xF7, 0xA9 ]color_no_carpet_zones:[255, 33, 55, 0x5F]color_no_carpet_zones_outline:[255, 0, 0]color_new_discovered_area:[64, 64, 64]color_no_go_zones:[255, 33, 55, 127]color_no_go_zones_outline:[255, 0, 0]color_no_mop_zones:[163, 130, 211, 127]color_no_mop_zones_outline:[163, 130, 211]color_charger:[0x66, 0xfe, 0xda, 0x7f]color_robo:[75, 235, 149]color_room_names:[0, 0, 0]color_unknown:[0, 0, 0]color_scan:[0xDF, 0xDF, 0xDF]room_colors:1:[240, 178, 122]2:[133, 193, 233]3:[217, 136, 128]4:[52, 152, 219]5:[205, 97, 85]6:[243, 156, 18]7:[88, 214, 141]8:[245, 176, 65]9:[252, 212, 81]10:[72, 201, 176]11:[84, 153, 199]12:[133, 193, 233]13:[245, 176, 65]14:[82, 190, 128]15:[72, 201, 176]16:[165, 105, 18]draw:      -charger      -cleaned_area      -goto_path      -ignored_obstacles      -ignored_obstacles_with_photo      -mop_path      -no_carpet_zones      -no_go_zones      -no_mopping_zones      -obstacles      -obstacles_with_photo      -path      -predicted_path      -room_names      -vacuum_position      -virtual_walls      -zonestexts:      -text:"Room 1"x:25y:25color:[125, 20, 213]      -text:"Room 2"x:25y:75color:[125, 20, 213, 127]font:"FreeSans.ttf"font_size:25map_transformation:scale:2rotate:180trim:top:10bottom:20left:30right:40sizes:charger_radius:4vacuum_radius:6.5path_width:1mop_path_width:16obstacle_radius:3ignored_obstacle_radius:3obstacle_with_photo_radius:3ignored_obstacle_with_photo_radius:3attributes:      -calibration_points      -carpet_map      -charger      -cleaned_rooms      -country      -goto      -goto_path      -goto_predicted_path      -image      -is_empty      -map_name      -mop_path      -no_carpet_areas      -no_go_areas      -no_mopping_areas      -obstacles      -ignored_obstacles      -obstacles_with_photo      -ignored_obstacles_with_photo      -path      -room_numbers      -rooms      -vacuum_position      -vacuum_room      -vacuum_room_name      -walls      -zonesscan_interval:seconds:10auto_update:truestore_map_raw:falsestore_map_image:truestore_map_path:"/tmp"force_api:xiaomi

Available configuration parameters

KeyTypeRequiredValueDescription
platformstringtruexiaomi_cloud_map_extractorName of a platform
hoststringtrue192.168.0.123IP address of a vacuum
tokenstringtrueghjhca3ykg8o2zyyj7xb5adamhgsypelToken of a vacuum
usernamestringtruexiaomi.account@gmail.comUsername (email or user ID) used to connect to Xiaomi cloud (the account used in the Xiaomi Home app)
passwordstringtrueaVerySecretPasswordPassword used to connect to Xiaomi cloud (the account used in the Xiaomi Home app)
namestringfalseDesired name of camera entity
countrystringfalseOne of:cn,de,us,ru,tw,sg,in,i2Server used in Xiaomi cloud. Leave empty if you are not sure.
colorsmapfalseColors configuration (see below)
room_colorsmapfalseRoom colors configuration (see below)
drawlistfalseList of elements to draw on a map (see below)
textslistfalseList of texts to draw on a map (see below)
map_transformationmapfalseParameters of map transformation (see below)
sizesmapfalseSizes of map's elements (see below)
attributeslistfalseList of desired entity attributes (see below)
scan_intervalintervalfalsedefault:5 secondsInterval between map updates (documentation)
auto_updatebooleanfalsedefault:trueActivation/deactivation of automatic map updates. (see below)
store_map_rawbooleanfalsedefault:falseEnables storing raw map data instore_map_path directory (more info). Xiaomi map can be opened withRoboMapViewer.
store_map_imagebooleanfalsedefault:falseEnables storing map image instore_map_path path with namemap_image_<device_model>.png
store_map_pathstringfalsedefault:/tmpStoring map data directory
force_apistringfalseOne of:xiaomi,viomi,roidmi,dreameForces usage of specific API.

Colors configuration

Each color is represented by a list of 3 or 4 parameters:[red, green, blue] or[red, green, blue, alpha].Each parameter is a number from a range 0-255 and can be also provided as a HEX value: [0x12, 0xAF, 0xC5] matches #12AFC5.

Color nameDescription
color_carpetsCarpets fill, in checkboard pattern
color_chargerCharger fill
color_charger_outlineCharger outline
color_cleaned_areaFill of area that already has been cleaned
color_goto_pathPath for goto mode
color_grey_wallObstacles (e.g. chairs, table legs)
color_ignored_obstacle_with_photoIgnored obstacle with photo mark on a map
color_ignored_obstacleIgnored obstacle mark on a map
color_map_insideMap inside (for software without rooms support)
color_map_outsideMap outside
color_map_wall_v2Walls (for software with rooms support)
color_map_wallWalls (for software without rooms support)
color_new_discovered_areaNewly discovered areas
color_no_carpet_zones_outlineOutline of no-carpet zones
color_no_carpet_zonesFill of no-carpet zones
color_no_go_zones_outlineOutline of no-go zones
color_no_go_zonesFill of no-go zones
color_no_mop_zones_outlineOutline of no-mopping zones
color_no_mop_zonesFill of no-mopping zones
color_obstacle_with_photoObstacle with photo mark on a map
color_obstacleObstacle mark on a map
color_pathPath of a vacuum
color_mop_pathMopped path of a vacuum (for vacuums that support mopping)
color_predicted_pathPredicted path to a point in goto mode
color_roboVacuum fill
color_robo_outlineVacuum outline
color_room_namesRoom names (if available)
color_scanAreas not assigned to any room (for software with rooms support)
color_unknownOther areas
color_virtual_wallsVirtual walls
color_zones_outlineOutline of areas selected for zoned cleaning
color_zonesFill of areas selected for zoned cleaning

Room colors configuration

This section contains mapping between room numbers and colors.Each color is represented by a list of 3 or 4 parameters:[red, green, blue] or[red, green, blue, alpha].Each parameter is a number from a range 0-255 and can be also provided as a HEX value: [0x12, 0xAF, 0xC5] matches #12AFC5.

Draw configuration

A list of features to be drawn on a map. If all features should be drawn it can be replaced with:

draw:["all"]

Available values:

  • charger
  • cleaned_area
  • goto_path
  • ignored_obstacles_with_photo
  • ignored_obstacles
  • mop_path
  • no_carpet_zones
  • no_go_zones
  • no_mopping_zones
  • obstacles_with_photo
  • obstacles
  • path
  • predicted_path
  • room_names
  • vacuum_position
  • virtual_walls
  • zones

Texts configuration

Each list entry must obey a following schema.You can get a list of available fonts by executing this command:

fc-list| grep ttf| sed"s/.*\///"| sed"s/ttf.*/ttf/"
ParameterTypeRequiredDefault valueDescription
textstringtrueText to draw on a map
xfloattrueX position of a text (in percents)
yfloattrueY position of a text (in percents)
colorlistfalseblackDesired color of a text, formatted likehere
fontstringfalseName of a font to use
font_sizeintfalseSize of a font

Map transformation configuration

ParameterTypeRequiredDefault valueDescription
scalefloatfalse1Scaling factor for a map.
rotateintegerfalse0Angle of map rotation. Available values: [0,90,180,270]
trimmapfalse0Map trimming configuration. Each trimming direction is in percents: value25 means trimming of quarter of image size in a given dimension. Available keys: [left,right,top,bottom]

Sizes configuration

ParameterTypeRequiredDefault valueDescription
charger_radiusfloatfalse6Radius of a charger circle.
vacuum_radiusfloatfalse6Radius of a vacuum semi-circle.
obstacle_radiusfloatfalse3Radius of an obstacle circle.
ignored_obstacle_radiusfloatfalse3Radius of an ignored obstacle circle circle.
obstacle_with_photo_radiusfloatfalse3Radius of an obstacle with photo circle.
ignored_obstacle_with_photo_radiusfloatfalse3Radius of an ignored obstacle with photo circle.
path_widthfloatfalse1Width of path line.
mop_path_widthfloatfalseequal to vacuum radiusWidth of mop path line.

Attributes configuration

A list of attributes that an entity should have.Available values:

  • calibration_points - Calculated calibration points forLovelace Xiaomi Vacuum Map card.
  • carpet_map
  • charger
  • cleaned_rooms
  • country
  • goto_path
  • goto_predicted_path
  • goto
  • ignored_obstacles_with_photo
  • ignored_obstacles
  • image
  • is_empty
  • map_name
  • mop_path
  • no_carpet_areas
  • no_go_areas
  • no_mopping_areas
  • obstacles_with_photo
  • obstacles
  • path
  • room_numbers
  • rooms
  • vacuum_position
  • vacuum_room_name
  • vacuum_room
  • walls
  • zones

Updates

Camera image is updated every 5s by default.It can be disabled in config usingauto_update property.

You can also disable and enable automatic updates using servicescamera.turn_off,camera.turn_on.

If automatic updates are disabled you can manually trigger update usinghomeassistant.update_entity service.

You can change interval of automatic updates usingscan_interval setting (documentation)

If you want to disable map updates when a vacuum is not running you can usethis blueprint.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Supported devices

This integration was tested on following vacuums:

  • Xiaomi map format:
    • rockrobo.vacuum.v1 (Xiaomi Vacuum Gen 1, Mi Robot Vacuum, SDJQR01RR, SDJQR02RR)
    • roborock.vacuum.m1s (Xiaomi Mi Robot 1S)
    • roborock.vacuum.s4 (Roborock S4)
    • roborock.vacuum.s5 (Roborock S5)
    • roborock.vacuum.s5e (Roborock S5 Max)
    • rockrobo.vacuum.s6 (Roborock S6)
    • roborock.vacuum.a08 (Roborock S6 Pure)
    • roborock.vacuum.a10 (Roborock S6 MaxV)
    • roborock.vacuum.a15 (Roborock S7)
    • roborock.vacuum.a19 (Roborocka S4 Max)
    • roborock.vacuum.a27 (Roborock S7 MaxV)
    • roborock.vacuum.a70 (Roborock S8 Pro Ultra)
  • Viomi map format:
    • viomi.vacuum.v6 (Viomi Vacuum V2 Pro, Xiaomi Mijia STYJ02YM, Mi Robot Vacuum Mop Pro)
    • viomi.vacuum.v7 (Mi Robot Vacuum-Mop Pro)
    • viomi.vacuum.v8 (Mi Robot Vacuum-Mop Pro)
    • viomi.vacuum.v13 (Viomi V3)
  • Roidmi map format:
    • roidmi.vacuum.v60 (Roidmi EVE Plus)
    • viomi.vacuum.v18 (Viomi S9)
    • viomi.vacuum.v38 (Viomi V5 Pro)
    • zhimi.vacuum.xa1 (Lydsto R1)
    • chuangmi.vacuum.hmi707 (IMILAB V1 Vacuum)
  • Dreame map format:
    • dreame.vacuum.mc1808 (Xiaomi Mi Mop/Xiaomi Mijia 1C)
    • dreame.vacuum.p2008 (Dreame F9)
    • dreame.vacuum.p2009 (Dreame D9)
    • dreame.vacuum.p2028 (Dreame Z10 Pro)
    • dreame.vacuum.p2029 (Dreame L10 Pro)
    • dreame.vacuum.p2036 (Trouver LDS Cleaner)
    • dreame.vacuum.p2041o (Xiaomi Mop 2 Pro+)
    • dreame.vacuum.p2140 (Mijia Robot Vacuum-Mop 2C)
    • dreame.vacuum.p2157 (MOVA L600)
    • dreame.vacuum.p2259 (Dreame D9 Max)

Retrieving map

Whenstore_map_raw: true is added to your config this integration will store a raw map file in/tmp directory.If you don't use Core installation (installation types) you can retrieve this file in the following way:

  • InSSH & Terminal add-on enable protected access
  • Open terminal and use the following command to copy file:
    docker exec homeassistant bash -c "mkdir -p /config/tmp/ && cp /tmp/map_* /config/tmp/"
  • Map file will appear intmp folder in yourconfig folder

Enabling debug logging

To enable debug logging add following section to yourconfiguration.yaml

logger:default:infologs:custom_components.xiaomi_cloud_map_extractor:debug

Special thanks

This integration wouldn't exist without following projects:

Support

If you want to support my work with a donation you can use one of the following platforms:

PlatformPayment methodsLinkComment
Ko-fi
  • PayPal
  • Credit card
  • Buy Me a Coffee at ko-fi.com
  • No fees
  • Single or monthly payment
  • buycoffee.to
  • BLIK
  • Bank transfer
  • Postaw mi kawę na buycoffee.to
    PayPal
  • PayPal
  • PayPal Logo
  • No fees
  • Revolut
  • Revolut
  • Credit Card
  • Revolut
  • No fees
  • Powered by

    PyCharm logo.

    About

    This custom integration provides a way to present a live view of a map for Xiaomi (Roborock/Viomi/Roidmi/Dreame) vacuums without a need for rooting.

    Topics

    Resources

    License

    Stars

    Watchers

    Forks

    Languages


    [8]ページ先頭

    ©2009-2025 Movatter.jp