Roborock
Robot vacuum control and status. Shared as-is from my own Home Assistant dashboard for reference/inspiration — entity IDs, sensors, and automations are specific to my setup and won't work unmodified in yours.
- type: sections
max_columns: 4
title: Roborock
path: roborock
icon: mdi:robot-vacuum
subview: true
sections:
- type: grid
cards:
- type: conditional
conditions:
- entity: input_boolean.vacuum_selector
state: 'off'
card:
type: vertical-stack
cards:
- type: heading
heading: Downstairs
heading_style: subtitle
icon: mdi:home-floor-g
- type: custom:xiaomi-vacuum-map-card
entity: vacuum.valetudo_roborock_q7_max
map_locked: true
two_finger_pan: true
map_source:
camera: camera.valetudo_q7_max_freshzigzagskunk_camera
calibration_source:
camera: camera.valetudo_q7_max_freshzigzagskunk_camera
vacuum_platform: Hypfer/Valetudo
grid_options:
columns: 24
rows: auto
- type: conditional
conditions:
- entity: input_boolean.vacuum_selector
state: 'on'
card:
type: vertical-stack
cards:
- type: heading
heading: Upstairs
heading_style: subtitle
icon: mdi:home-floor-1
- type: custom:xiaomi-vacuum-map-card
entity: vacuum.valetudo_roborock_s5
map_locked: true
two_finger_pan: true
map_source:
camera: camera.valetudo_s5_gentlepossiblescorpion_camera
calibration_source:
camera: camera.valetudo_s5_gentlepossiblescorpion_camera
vacuum_platform: Hypfer/Valetudo
grid_options:
columns: 24
rows: auto
column_span: 4
visibility:
- condition: screen
media_query: '(min-width: 0px) and (max-width: 1023px)'
- type: grid
cards:
- type: vertical-stack
cards:
- type: heading
heading: Downstairs
heading_style: subtitle
icon: mdi:home-floor-g
- type: custom:xiaomi-vacuum-map-card
entity: vacuum.valetudo_roborock_q7_max
map_locked: true
two_finger_pan: true
map_source:
camera: camera.valetudo_q7_max_freshzigzagskunk_camera
calibration_source:
camera: camera.valetudo_q7_max_freshzigzagskunk_camera
vacuum_platform: Hypfer/Valetudo
grid_options:
columns: 24
rows: auto
- type: vertical-stack
cards:
- type: heading
heading: Upstairs
heading_style: subtitle
icon: mdi:home-floor-1
- type: custom:xiaomi-vacuum-map-card
entity: vacuum.valetudo_roborock_s5
map_locked: true
two_finger_pan: true
map_source:
camera: camera.valetudo_s5_gentlepossiblescorpion_camera
calibration_source:
camera: camera.valetudo_s5_gentlepossiblescorpion_camera
vacuum_platform: Hypfer/Valetudo
grid_options:
columns: 24
rows: auto
column_span: 4
visibility:
- condition: screen
media_query: '(min-width: 1024px)'
- type: grid
cards:
- type: custom:hki-navigation-card
position: bottom-right
offset_x: 12
offset_y: 20
button_size: 50
gap: 12
vertical_gap: 12
z_index: 5
base:
button:
id: 4e8c1d57-1c4c-48cb-83a0-447264197745
icon: mdi:home
tooltip: Home
label: ''
entity: input_boolean.kiosk_mode
button_type: icon
background: ''
background_opacity: ''
icon_color: ''
label_style: {}
pill_width: ''
tap_action:
action: navigate
navigation_path: /lovelace/home
hold_action:
action: none
double_tap_action:
action: toggle
horizontal:
enabled: true
columns: 6
buttons:
- id: e1b058dd-45fb-4395-b48a-75dbfb98c0e8
icon: mdi:floor-plan
tooltip: ''
label: Rooms
entity: ''
button_type: ''
background: ''
background_opacity: ''
icon_color: ''
label_style: {}
pill_width: ''
conditions_mode: all
conditions: []
tap_action:
action: navigate
navigation_path: /lovelace/rooms
hold_action:
action: none
double_tap_action:
action: none
- id: b6cbacab-fcf7-41be-a009-6d9961181441
icon: mdi:chevron-left
tooltip: Overview
label: ''
entity: ''
button_type: icon
background: DarkOrange
background_opacity: ''
icon_color: ''
label_style: {}
pill_width: ''
conditions_mode: all
conditions: []
tap_action:
action: back
navigation_path: /lovelace/rooms
hold_action:
action: none
double_tap_action:
action: none
vertical:
enabled: false
rows: 6
buttons:
- id: e1fd568d-f004-44c3-9207-cf3458f8d84f
icon: mdi:cog
tooltip: Settings
label: Settings
entity: ''
button_type: pill
background: ''
background_opacity: ''
icon_color: ''
label_style: {}
pill_width: ''
conditions_mode: all
conditions: []
tap_action:
action: navigate
navigation_path: /config
hold_action:
action: none
double_tap_action:
action: none
default_background: ''
default_button_opacity: 1
default_icon_color: ''
button_box_shadow: 0 8px 24px rgba(0, 0, 0, 0.35)
button_box_shadow_hover: 0 10px 30px rgba(0, 0, 0, 0.42)
default_button_type: icon
label_style:
font_size: 12
font_weight: 600
letter_spacing: 0
text_transform: none
color: ''
background: ''
background_opacity: 0.72
padding_x: 10
padding_y: 6
border_radius: 999
backdrop_blur: 8
max_width: 220
pill_width: 0
center_spread: false
offset_x_mobile: null
offset_x_tablet: null
offset_x_desktop: null
bottom_bar_enabled: false
bottom_bar_height: 85
bottom_bar_color: rgb(var(--rgb-card-background-color, 0,0,0))
bottom_bar_opacity: 0.85
bottom_bar_full_width: false
bottom_bar_border_radius: 0
bottom_bar_box_shadow: ''
bottom_bar_bottom_offset: 0
bottom_bar_margin_left: 0
bottom_bar_margin_right: 0
bottom_bar_border_width: 0
bottom_bar_border_style: solid
bottom_bar_border_color: ''
header:
card:
type: custom:hki-header-card
title: Roborock
subtitle: Vacuum Control
background: >-
https://global.roborock.com/cdn/shop/t/26/assets/reactff_section-first-bg.jpg?v=180405919845824700491645774642
min_height: 215
max_height: 270
title_offset_y: 65
subtitle_offset_y: 70
badges_gap: 30
badges_fixed: true
top_bar_offset_y: 15
top_bar_padding_x: 0
top_bar_left: custom
top_bar_right: weather
top_bar_left_card:
type: custom:hki-notification-card
use_header_styling: true
show_background: false
show_empty: true
display_mode: ticker
animation: bounce
direction: right
time_format: '24'
entity: sensor.hki_notify_main
info_pill: true
top_bar_left_offset_x: 0
top_bar_right_weather_icon_color_mode: state
top_bar_right_animate_icon: float
top_bar_right_tap_action:
action: more-info
entity: weather.buienradar
top_bar_right_weather_entity: weather.openweathermap
top_bar_right_show_humidity: false
top_bar_right_show_wind: false
top_bar_right_show_pressure: false
badges:
- type: custom:mushroom-template-badge
card_mod:
style: |
:host {
{% if is_state('input_boolean.vacuum_selector', 'off') %}
--ha-card-background: white;
color: var(--accent-color);
--primary-text-color: black;
{% endif %}
}
content: Downstairs
icon: mdi:home-floor-g
tap_action:
action: perform-action
perform_action: input_boolean.turn_off
target:
entity_id: input_boolean.vacuum_selector
visibility:
- condition: screen
media_query: '(min-width: 0px) and (max-width: 1023px)'
- type: custom:mushroom-template-badge
card_mod:
style: |
:host {
{% if is_state('input_boolean.vacuum_selector', 'on') %}
--ha-card-background: white;
color: var(--accent-color);
--primary-text-color: black;
{% endif %}
}
content: Upstairs
icon: mdi:home-floor-1
entity: input_boolean.vacuum_selector
tap_action:
action: perform-action
perform_action: input_boolean.turn_on
target:
entity_id: input_boolean.vacuum_selector
visibility:
- condition: screen
media_query: '(min-width: 0px) and (max-width: 1023px)'