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.
- Xiaomi Integration (2022) https://youtu.be/i8JHl0YIXJs
- Roborock Integration (2023) https://youtu.be/r0TFQo-axRg
In diesem Code werden folgende Templates verwendet:
- Zonenreinigung
- Raumreinigung
- Pin & Go Reinigung
- Pfad Reinigung
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