Roborock Home Assistant Integration

  • Beitrags-Kommentare:0 Kommentare

In diesem Beitrag geht es um die Roborock Home Assistant Integration über einen Roborock Account zur Steuerung des Saugroboters. Zur Integration werden zwei Entitäten benötigt. Einmal die des Saugroboters und eine Kamera Entität. Beide werden über die Roborock Integration angelegt und können anschließend in der HACS Integration Xiaomi Vaccum Map Card verwendet werden. Die Map Card visualisiert zu einem deinen Grundriss und ermöglicht zum anderen die Steuerung deines Saugroboters.

Zur Integration des Saugroboters habe ich bisher zwei Videos erstellt.

  1. Xiaomi Integration (2022) https://youtu.be/i8JHl0YIXJs
  2. Roborock Integration (2023) https://youtu.be/r0TFQo-axRg

In diesem Code werden folgende Templates verwendet:

  • Zonenreinigung
  • Raumreinigung
  • Pin & Go Reinigung
  • Pfad Reinigung
Home Assistant Grundlagen Kurs fuer Einsteiger

Die rot markierten Entitäten musst du mit deinen Entitäten ersetzen!

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.roborock_s6_maxv_map
calibration_source:
  camera: true
entity: vacuum.roborock_s6_maxv
vacuum_platform: send_command
map_modes:
  - name: Zone cleanup
    icon: mdi:select-drag
    run_immediately: false
    coordinates_rounding: true
    selection_type: MANUAL_RECTANGLE
    max_selections: 5
    repeats_type: INTERNAL
    max_repeats: 3
    service_call_schema:
      service: vacuum.send_command
      service_data:
        command: app_zoned_clean
        params: '[[selection]]'
        entity_id: '[[entity_id]]'
    predefined_selections: []
    variables: {}
  - name: Zone EG
    icon: mdi:floor-plan
    run_immediately: false
    coordinates_rounding: true
    selection_type: PREDEFINED_RECTANGLE
    max_selections: 5
    repeats_type: INTERNAL
    max_repeats: 3
    service_call_schema:
      service: vacuum.send_command
      service_data:
        command: app_zoned_clean
        params: '[[selection]]'
        entity_id: '[[entity_id]]'
    predefined_selections:
      - zones:
          - - 22159
            - 24854
            - 26680
            - 29060
        label:
          text: Wohnzimmer
          x: 24543
          'y': 26811
          offset_y: 35
        icon:
          name: mdi:sofa
          x: 24543
          'y': 26811
      - zones:
          - - 27014
            - 24162
            - 29844
            - 28663
        label:
          text: Küche
          x: 28452
          'y': 26940
          offset_y: 35
        icon:
          name: mdi:pot-mix
          x: 28452
          'y': 26940
      - zones:
          - - 21322
            - 20909
            - 25461
            - 24809
        label:
          text: Esszimmer
          x: 23348
          'y': 22876
          offset_y: 30
        icon:
          name: mdi:table-furniture
          x: 23348
          'y': 22876
      - zones:
          - - 25485
            - 22666
            - 28471
            - 24588
        label:
          text: Flur
          x: 26762
          'y': 23493
          offset_y: 45
        icon:
          name: mdi:rug
          x: 26762
          'y': 23493
      - zones:
          - - 28339
            - 22964
            - 30586
            - 24233
        label:
          text: Windfang
          x: 29493
          'y': 23526
          offset_y: 25
        icon:
          name: mdi:home-roof
          x: 29493
          'y': 23526
      - zones:
          - - 28448
            - 20854
            - 30285
            - 22726
        label:
          text: WC
          x: 29395
          'y': 21705
          offset_y: 30
        icon:
          name: mdi:paper-roll
          x: 29395
          'y': 21705
    variables: {}
  - name: Zone OG
    icon: mdi:floor-plan
    run_immediately: false
    coordinates_rounding: true
    selection_type: PREDEFINED_RECTANGLE
    max_selections: 5
    repeats_type: INTERNAL
    max_repeats: 3
    service_call_schema:
      service: vacuum.send_command
      service_data:
        command: app_zoned_clean
        params: '[[selection]]'
        entity_id: '[[entity_id]]'
    predefined_selections:
      - zones:
          - - 23677
            - 27002
            - 27035
            - 31285
        label:
          text: Schlafzimmer
          x: 25054
          'y': 29347
          offset_y: 35
        icon:
          name: mdi:bed-double
          x: 25054
          'y': 29347
      - zones:
          - - 23717
            - 24200
            - 28195
            - 26962
        label:
          text: Flur OG
          x: 25694
          'y': 25625
          offset_y: 35
        icon:
          name: mdi:floor-plan
          x: 25694
          'y': 25625
      - zones:
          - - 24318
            - 22197
            - 27036
            - 24159
        label:
          text: Bad
          x: 25774
          'y': 23263
          offset_y: 35
        icon:
          name: mdi:shower
          x: 25774
          'y': 23263
      - zones:
          - - 28120
            - 25921
            - 32159
            - 30685
        label:
          text: Lilly
          x: 30297
          'y': 29187
          offset_y: 35
        icon:
          name: mdi:teddy-bear
          x: 30297
          'y': 29187
      - zones:
          - - 27078
            - 22078
            - 32077
            - 25081
        label:
          text: Noah
          x: 29616
          'y': 23864
          offset_y: 35
        icon:
          name: mdi:teddy-bear
          x: 29616
          'y': 23864
    variables: {}
  - name: Pin & Go
    icon: mdi:map-marker-plus
    run_immediately: false
    coordinates_rounding: true
    selection_type: MANUAL_POINT
    max_selections: 999
    repeats_type: NONE
    max_repeats: 1
    service_call_schema:
      service: vacuum.send_command
      service_data:
        command: app_goto_target
        params: '[[selection]]'
        entity_id: '[[entity_id]]'
    predefined_selections: []
    variables: {}
  - name: Path
    icon: mdi:map-marker-path
    run_immediately: false
    coordinates_rounding: true
    selection_type: MANUAL_PATH
    max_selections: 999
    repeats_type: NONE
    max_repeats: 1
    service_call_schema:
      service: script.vacuum_follow_path
      service_data:
        service: vacuum.send_command
        mode: send_command
        path: '[[selection]]'
        entity_id: '[[entity_id]]'
    predefined_selections: []
    variables: {}
tiles:
  - tile_id: status
    entity: vacuum.roborock_s6_maxv
    label: Status
    attribute: status
    icon: mdi:robot-vacuum
    translations:
      starting: Starting
      charger disconnected: Charger disconnected
      idle: Idle
      remote control active: Remote control active
      cleaning: Cleaning
      returning home: Returning home
      manual mode: Manual mode
      charging: Charging
      charging problem: Charging problem
      paused: Paused
      spot cleaning: Spot cleaning
      error: Error
      shutting down: Shutting down
      updating: Updating
      docking: Docking
      going to target: Going to target
      zoned cleaning: Zoned cleaning
      segment cleaning: Segment cleaning
      emptying the bin: Emptying the bin
      charging complete: Charging complete
      device offline: Device offline
  - tile_id: battery_level
    entity: vacuum.roborock_s6_maxv
    label: Battery
    attribute: battery_level
    icon: mdi:battery-charging-100
    unit: '%'
  - tile_id: fan_speed
    entity: vacuum.roborock_s6_maxv
    label: Fan speed
    attribute: fan_speed
    icon: mdi:fan
    translations:
      silent: Silent
      standard: Standard
      medium: Medium
      turbo: Turbo
      auto: Auto
      gentle: Gentle
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.roborock_s6_maxv
        value_not: cleaning
      - entity: vacuum.roborock_s6_maxv
        value_not: error
      - entity: vacuum.roborock_s6_maxv
        value_not: returning
    tooltip: Start
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.roborock_s6_maxv
  - icon: mdi:pause
    conditions:
      - entity: vacuum.roborock_s6_maxv
        value_not: docked
      - entity: vacuum.roborock_s6_maxv
        value_not: idle
      - entity: vacuum.roborock_s6_maxv
        value_not: error
      - entity: vacuum.roborock_s6_maxv
        value_not: paused
    tooltip: Pause
    tap_action:
      action: call-service
      service: vacuum.pause
      service_data:
        entity_id: vacuum.roborock_s6_maxv
  - icon: mdi:stop
    conditions:
      - entity: vacuum.roborock_s6_maxv
        value_not: docked
      - entity: vacuum.roborock_s6_maxv
        value_not: idle
      - entity: vacuum.roborock_s6_maxv
        value_not: error
      - entity: vacuum.roborock_s6_maxv
        value_not: paused
    tooltip: Stop
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.roborock_s6_maxv
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.roborock_s6_maxv
        value_not: docked
      - entity: vacuum.roborock_s6_maxv
        value_not: returning
    tooltip: Return to base
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.roborock_s6_maxv
  - icon: mdi:target-variant
    conditions:
      - entity: vacuum.roborock_s6_maxv
        value_not: docked
      - entity: vacuum.roborock_s6_maxv
        value_not: error
      - entity: vacuum.roborock_s6_maxv
        value_not: cleaning
      - entity: vacuum.roborock_s6_maxv
        value_not: returning
    tooltip: Clean spot
    tap_action:
      action: call-service
      service: vacuum.clean_spot
      service_data:
        entity_id: vacuum.roborock_s6_maxv
  - icon: mdi:map-marker
    tooltip: Locate
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.roborock_s6_maxv
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value: 'off'
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: silent
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value: silent
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: balanced
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value: balanced
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: turbo
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value: turbo
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: max
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value: max
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: max_plus
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value: max_plus
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: custom
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: 'off'
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value_not: 'off'
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value_not: silent
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value_not: balanced
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value_not: turbo
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value_not: max
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value_not: max_plus
      - entity: vacuum.roborock_s6_maxv
        attribute: fan_speed
        value_not: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        fan_speed: 'off'
  - icon: mdi:home-floor-1
    tooltip: Erdgeschoss
    tap_action:
      action: call-service
      service: roborock.vacuum_load_multi_map
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        map_flag: 2
  - icon: mdi:home-floor-2
    tooltip: Obergeschoss
    tap_action:
      action: call-service
      service: roborock.vacuum_load_multi_map
      service_data:
        entity_id: vacuum.roborock_s6_maxv
        map_flag: 0

Schreibe einen Kommentar