Skip to content

Latest commit

 

History

History
243 lines (180 loc) · 7.29 KB

File metadata and controls

243 lines (180 loc) · 7.29 KB

Roborock

Integration's documentation

Warning

You MUST use HA 2025.4 or later for this to work.

This platform can be used to control vacuums connected to Home Assistant using the core Roborock integration

This works by using the core integration to send any needed commands, and a custom integration for passing information to the card.

If you need to setup this card using the custom component, you should use The "humbertogontijo/homeassistant-roborock" platform instead

Installation

  1. Install the Roborock Core Integration and set it up
  2. It is recommended that you first disable the Image entities within the core integration. Open each image entity, hit the gear icon, then trigger the toggle by enabled.
  3. Install the Roborock Custom Map Integration
  4. This integration works by piggybacking off of the Core integration, so the Core integration will do all the data updating to help prevent rate-limits. But that means that the core integration must be setup and loaded first. If you run into any issues, make sure the Roborock integration is loaded first, and then reload this one.
  5. Setup this card like normal! You should select a image with the suffix _custom. An example configuration would look like
type: custom:xiaomi-vacuum-map-card
vacuum_platform: Roborock
entity: vacuum.s7
map_source:
  camera: image.s7_downstairs_full_custom
calibration_source:
  camera: true
  1. You can hit Generate Room Configs to allow for cleaning of rooms. It might generate extra keys, so check the yaml and make sure there are no extra 'predefined_sections'
  2. There might be problems with instance that you have multiple maps. Calibration points may be missing for non-selected maps. Once you change to that map being the one selected, it should fix the calibration problems.

Optional (Remove the custom integration)

If you would like, you can hit generate static config. Then, you can set the map_source to the core roborock image instead. Note: If your map changes significantly or if your rooms change, it will not updated, so this really shouldn't be needed.

Available templates

  • Room cleaning (vacuum_clean_segment)

    Uses IDs to clean specific rooms. Requires predefined_selections to be provided.

    Configuration generator

    Getting coordinates

    Used service: vacuum.send_command

    Example configuration
    map_modes:
      - template: vacuum_clean_segment
        predefined_selections:
          - id: 14
            outline: [[ 21458, 32131 ], [ 24235, 32152 ], [ 24194, 27409 ], [ 23181, 27409 ]]
            label:
              text: "Bedroom"
              x: 22932
              y: 30339
              offset_y: 35
            icon:
              name: "mdi:bed"
              x: 22932
              y: 30339
          - id: 19
            outline: [[ 21478, 27237 ], [ 23048, 27250 ], [ 23061, 25655 ], [ 21478, 25680 ]]
            label:
              text: "Bathroom"
              x: 22282
              y: 26496
              offset_y: 35
            icon:
              name: "mdi:shower"
              x: 22282
              y: 26496
    Example video
    ROOM.mp4
  • Zone cleaning (vacuum_clean_zone)

    Uses 4 coordinates to clean rectangular zones.

    Used service: vacuum.send_command

    Example configuration
    map_modes:
      - template: vacuum_clean_zone
    Example video
    MANUAL_RECTANGLE.mp4
  • Predefined zone cleaning (vacuum_clean_zone_predefined)

    Uses 4 coordinates to clean rectangular zones that have been defined in the configuration. Requires predefined_selections to be provided.

    Getting coordinates

    Used service: roborock.send_command

    Example configuration
    map_modes:
      - template: vacuum_clean_zone_predefined
        predefined_selections:
          - zones: [[ 21485, 28767, 24236, 32131 ], [ 23217, 27379, 24216, 28737 ]]
            label:
              text: "Bedroom"
              x: 22932
              y: 30339
              offset_y: 35
            icon:
              name: "mdi:bed"
              x: 22932
              y: 30339
          - zones: [[ 27782, 27563, 29678, 29369 ]]
            label:
              text: "Kitchen"
              x: 28760
              y: 28403
              offset_y: 35
            icon:
              name: "mdi:pot-mix"
              x: 28760
              y: 28403
    Example video
    PREDEFINED_RECTANGLE.mp4
  • Going to a specified point (vacuum_goto)

    Uses a pair of coordinates for vacuum to get to a user-specified point.

    Used service: roborock.roborock.set_vacuum_goto_position

    Example configuration
    map_modes:
      - template: vacuum_goto
    Example video
    MANUAL_POINT.mp4
  • Going to a predefined point (vacuum_goto_predefined)

    Uses a pair of coordinates for vacuum to go to a point that has been defined in the configuration. Requires predefined_selections to be provided.

    Getting coordinates

    Used service: roborock.set_vacuum_goto_position

    Example configuration
    map_modes:
      - template: vacuum_goto_predefined
        predefined_selections:
          - position: [ 28006, 28036 ]
            label:
              text: "Emptying"
              x: 28006
              y: 28036
              offset_y: 35
            icon:
              name: "mdi:broom"
              x: 28006
              y: 28036
          - position: [ 32143, 26284 ]
            label:
              text: "Sofa"
              x: 32143
              y: 26284
              offset_y: 35
            icon:
              name: "mdi:sofa"
              x: 32143
              y: 26284
    Example video
    PREDEFINED_POINT.mp4
  • Following a specified path (vacuum_follow_path)

    Uses a list of points to make a vacuum follow a user-defined path. Requires follow_path script to be installed.

    Used service: script.vacuum_follow_path

    Example configuration
    map_modes:
      - template: vacuum_follow_path
    Example video
    MANUAL_PATH.mp4