Roborock i Home Assistant — Kortet, rummene, og hvad der faktisk er nyttigt

Roborock S5 Max med interaktivt støvsugerkort, rum-segment-rengøring og vedligeholdelsessensorer der advarer dig inden børsten brænder ud.

#roborock #støvsuger #dashboard #home-assistant
4. april 2025
Roborock i Home Assistant — Kortet, rummene, og hvad der faktisk er nyttigt

Roborock-integrationen er bygget direkte ind i HA — ingen HACS nødvendig. Tilføj den, log ind med din Roborock-konto, og støvsugeren dukker op. Hvad den ikke fortæller dig er at det interessante kommer fra et separat HACS-kort der gengiver det live kort.

Integrationen

Cloud-polling med 5-sekunders opdatering. Lokal kommunikation er mulig men kræver at man hiver nøgler ud af enhedens firmware, og det gad jeg ikke. Til alt der betyder noget — starte rengøring, tjekke batteri, rum-segmenter — er cloud-polling hurtigt nok.

Entiteter efter opsætning:

vacuum.roborock_s5_max
sensor.roborock_battery
sensor.roborock_status
sensor.roborock_last_clean_area
sensor.roborock_main_brush_left    — procent levetid tilbage
sensor.roborock_side_brush_left
sensor.roborock_filter_left
sensor.roborock_sensor_dirty_left

Kortkortet

custom:xiaomi-vacuum-map-card (HACS) er det der gør opsætningen faktisk nyttig. Det gengiver det live kort med dine rum-zoner markeret, og tryk på et rum starter rengøring af netop det segment.

type: custom:xiaomi-vacuum-map-card
entity: vacuum.roborock_s5_max
map_source:
  camera: camera.roborock_map
calibration_source:
  auto: true
rooms:
  - id: 16
    name: Stue
    icon: mdi:sofa
  - id: 17
    name: Køkken
    icon: mdi:silverware-fork-knife
  - id: 18
    name: Soveværelse
    icon: mdi:bed
  - id: 19
    name: Kontor
    icon: mdi:desk
map_modes:
  - template: vacuum_clean_segment
  - template: vacuum_goto

Find dine rum-ID’er: Udviklingsværktøjer → Skabelon, evaluer {{ state_attr('vacuum.roborock_s5_max', 'room_list') }}. ID’erne er heltal tildelt da kortet blev oprettet i appen. Mine starter ved 16 — dine vil sandsynligvis være anderledes.

Kortkortet bor inde i en glas stack-in-card. Kortkort har brug for border-radius: 0 på det indre kort, og den ydre container har brug for overflow: hidden — ellers bløder kortets hjørner ud over den afrundede glasindpakning.

type: custom:stack-in-card
card_mod:
  style: |
    ha-card {
      background: rgba(255,255,255,0.05) !important;
      backdrop-filter: blur(15px) !important;
      border: 1px solid rgba(255,255,255,0.10) !important;
      box-shadow: 0 8px 32px rgba(0,0,0,0.3) !important;
      border-radius: 28px !important;
      overflow: hidden !important;
    }
    ha-card::before { display: none !important; }
cards:
  - type: custom:xiaomi-vacuum-map-card
    # ...
    card_mod:
      style: |
        ha-card { border-radius: 0; box-shadow: none; border: none; }

Vedligeholdelsessensorer

Børste- og filtersensorerne tæller ned fra 100% til 0%. Jeg ignorerede dem for længe og fik så en advarsel om at hovredbørsten var på 8% — hvilket viste sig at være meget mere nedslidt end en procent antydede.

Farvede indikatorkort for hver komponent med custom:mushroom-template-card (HACS, Mushroom-suite) og card_mod (HACS):

type: custom:mushroom-template-card
primary: "{{ states('sensor.roborock_main_brush_left') }}%"
secondary: Hovedbørste
icon: mdi:brush
icon_color: >
  {% set pct = states('sensor.roborock_main_brush_left') | int(100) %}
  {% if pct > 40 %}green{% elif pct > 20 %}orange{% else %}red{% endif %}

Og en vedvarende notifikation (ikke push — jeg behøver ikke at min telefon bimler over en børste) når noget falder under 20%:

alias: Roborock — Vedligeholdelsesadvarsel
trigger:
  - platform: numeric_state
    entity_id: [sensor.roborock_main_brush_left, sensor.roborock_filter_left,
                sensor.roborock_side_brush_left]
    below: 20
action:
  - service: persistent_notification.create
    data:
      title: "Roborock — tjek vedligeholdelse"
      message: >
        {{ trigger.entity_id | replace('sensor.roborock_','') | replace('_left','')
           | replace('_',' ') | title }} er på {{ trigger.to_state.state }}%.
      notification_id: roborock_maintenance

Automatiseringen jeg bruger hver dag

Rengør mens jeg er væk, dock inden jeg kommer hjem:

alias: Roborock — Rengør ved afgang
trigger:
  - platform: state
    entity_id: person.rolf
    to: not_home
    for:
      minutes: 5
condition:
  - condition: time
    after: "09:00:00"
    before: "18:00:00"
  - condition: state
    entity_id: vacuum.roborock_s5_max
    state: docked
action:
  - service: vacuum.start
    target:
      entity_id: vacuum.roborock_s5_max

alias: Roborock — Dock ved hjemkomst
trigger:
  - platform: state
    entity_id: person.rolf
    to: home
condition:
  - condition: state
    entity_id: vacuum.roborock_s5_max
    state: cleaning
action:
  - service: vacuum.return_to_base
    target:
      entity_id: vacuum.roborock_s5_max

5-minutters forsinkelsen ved afgang er vigtig. Uden den trigger et kort GPS-udsving en rengøring, og støvsugeren er halvvejs igennem køkkenet når jeg går ind ad døren igen to minutter efter.

Dock-ved-hjemkomst-automatiseringen har præcis én gang reddet mig fra at træde på støvsugeren i mørket. Værd det.