Roborock in Home Assistant: Vacuum Map Card richtig einrichten und Räume gezielt reinigen

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

Einführung

Seit 2019 setze ich Roborock-Saugroboter zuverlässig in meinem Zuhause ein. Von älteren Modellen bis hin zu aktuellen Geräten arbeiten sie täglich für uns – und sind für unsere Familie nicht mehr wegzudenken. Gerade weil wir in jedem Stockwerk einen Roborock nutzen, ist mir eine effiziente Integration in Home Assistant besonders wichtig.

Bereits vor längerer Zeit hatte ich dazu ein Video sowie ein Skript bereitgestellt. Dieses funktionierte zuverlässig, war jedoch an ein grundlegendes Problem gebunden: Es arbeitete auf Geräte-IDs statt Entitäten. Wenn ein neuer Roboter hinzukam, musste das gesamte Skript manuell angepasst werden. Da bei uns immer wieder ein neues Modell seinen Platz findet, wurde diese Anpassung zunehmend unübersichtlich. Aus diesem Grund habe ich eine modernisierte, flexiblere Lösung entwickelt.

In diesem Beitrag zeige ich Schritt für Schritt, wie du:

  • Roborock korrekt in Home Assistant einbindest
  • die Roborock Custom Map Integration installierst
  • die Vacuum Map Card einrichtest
  • Räume sauber konfigurierst
  • die Karte vollständig nutzen kannst

Das Ziel ist, Roborock komfortabel und visuell ansprechend zu steuern – ganz ohne komplexe Skriptanpassungen.

Roborock Vacuum Map Card

Unterstützung des Kanals

Die Erstellung meiner Skripte und Videos ist mit einem erheblichen zeitlichen Aufwand verbunden – von der technischen Vorbereitung und intensiven Recherche bis hin zu Tests, Aufnahmen und Nachbearbeitung. Alle Inhalte stelle ich dir dennoch vollständig kostenlos zur Verfügung.

Aktuell gibt es in den Black Weeks besonders attraktive Angebote. Ich selbst habe mir zu diesen hervorragenden Konditionen einen neuen Roborock-Saugroboter gegönnt – die Preise sind wirklich stark.

Wenn du ebenfalls über den Kauf eines Roborock nachdenkst, kannst du meinen Kanal und meine Arbeit wirkungsvoll unterstützen, indem du den Roboter über meinen Affiliate-Link bestellst. Für dich bleibt der Preis unverändert, aber ein kleiner Anteil des Kaufpreises hilft mir, weiterhin hochwertige Inhalte bereitzustellen. Wenn du vielleicht etwas anderes in den Black Wecks kaufen möchtest, kannst du mich dennoch unterstützen, wenn du meinen allgemeinen amazon Link für deinen Einkauf verwendest.

Angebot
roborock Qrevo Curv Saugroboter mit Wischfunktion&Hebarem Wischmopp, Dual Anti-Tangle-System, AdaptiLift™ Chassis, 18.500Pa, 75℃ Heißwasser-Moppwäsche, Intelligente Schmutzerkennung&Sprachassistent
  • [Dual Anti-Tangle-System] Entdecke das revolutionäre doppelte Verhedderungsschutz-System des roborock Qrevo Curv mit Hauptbürste und Seitenbürste, einfach perfekt für den Umgang mit langen Haaren und für haustierfreundliche Wohnungen. Genieße eine Reinigung ohne verhedderte Haare und ähnliches, die Bürste reinigt sich fast von selbst.
  • [Extreme Saugkraft von 18.500 Pa] Branchenführende 18.500 Pa HyperForce Saugkraft in Kombination mit den Borsten der DuoDivide Bürste garantieren, dass der roborock Qrevo Curv auch anspruchsvolle Stellen wie Teppiche und Lücken in harten Böden gründlich reinigt und dabei selbst die kleinsten Partikel entfernt.
  • [FlexiArm Technologie] Die FlexiArm Arc Seitenbürste und das Kantenwischsystem, die exklusiv von Roborock angeboten werden, ermöglichen eine unvergleichliche Reinigungsabdeckung, da blinde Flecken beseitigt werden und somit kein Schmutz zurückbleibt.
  • [AdaptiLift Chassis] Erreiche ein höheres Niveau bei der Reinigung mit dem AdaptiLift Chassis, einer Premiere in der Branche, bei der viele verschiedene Anhebezustände dank drei unabhängig einstellbarer Räder erreicht werden können. So kann das gesamte Chassis um 10 mm angehoben werden oder nur die vordere, hintere, linke oder rechte Hälfte, damit die Anpassung an deine heimische Umgebung problemlos möglich ist.
  • [75 °C Heißwasser-Moppwäsche] Beseitige problemlos hartnäckige Flecken und fettige Verschmutzungen mit 75 °C heißem Wasser von deinen Mopps, gleichermaßen perfekt für Küchen und Essbereiche. Das heiße Wasser beseitigt über 99,99 % der Bakterien und gewährleistet optimale Hygiene. Mit drei einstellbaren Temperatureinstellungen bist du auf jedes Reinigungsszenario vorbereitet.
Angebot
roborock Saros 10R Saugroboter mit Wischfunktion&angebbarem Wischmopp, 22,000 Pa, 7,98cm Ultra-Slim Design, StarSight System 2.0, Zero-Tangle System
  • 7,98cm Ultraflaches Design – Dank des autonomen StarSight Systems 2.0 der nächsten Generation ist der Saros 10R unglaublich smart und beeindruckend flach. Mit seiner hochentwickelten Positionierungs- und Kartierungsfunktiornen navigiert er mühelos unter Sofas und Betten.
  • Autonomes StarSight System 2.0 – Mithilfe fortschrittlicher Technologie zur Vermeidung seitlicher Hindernisse gleitet er mühelos um unregelmäßig geformte Möbel und Wände herum und reinigt sogar die Umgebung herumliegender Kabel garantiert gründlich.
  • Zero-Tangle-System – Ständige Wartung der Bürste ist für dich kein Thema mehr- dank des revolutionären Anti-Tangle-Systems an Hauptbürste und Seitenbürste. Das System reinigt sich selbst und kommt selbst mit langen Haaren zurecht. Dank HyperForce Saugleistung verschwinden Staub und Schmutz auf verschiedenen Arten von Böden und Teppichen, da auch die kleinsten Partikel spurlos beseitigt werden.
  • FlexiArm Riser Seitenbürste und Mopp – Die FlexiArm Technologie ist die Grundlage der doppelten Roboterarme für die Seitenbürste und den Mopp, damit Schmutz aus Ecken, an Kanten und unter Möbeln gekonnt aufgekehrt wird.
  • AdaptiLift Chassis als Branchenpremiere – Das gesamte Gehäuse kann abgenommen werden. Dabei sind die drei Räder unabhängig voneinander einstellbar. So erreicht dein Roborock auch schwer erreichbarre Stellen wie ein allrad-betriebener Geländewagen – für optimale Reinigungsabdeckung.

Roborock Core Integration installieren

Ich beginne in Home Assistant mit einer sauberen Testumgebung, sodass jeder Schritt nachvollziehbar ist. Die Core Integration lässt sich über Einstellungen → Geräte & Dienste → Integration hinzufügen installieren. Nach Eingabe der E-Mail-Adresse und des Bestätigungscodes erscheinen alle Roborock-Geräte automatisch in der Übersicht.

Roborock Integration

Damit steht das Fundament, auf dem die gesamte spätere Kartenfunktionalität aufbaut.


Custom Map Integration über HACS installieren

Die Vacuum Map Card benötigt spezielle Map-Datenstrukturen. Die normale Roborock-Integration stellt diese jedoch nicht vollständig bereit. Genau dafür dient die Roborock Custom Map Integration.

Roborock Custom Map Integration

Nach dem Öffnen des Repositorys in HACS sucht man nach Roborock Custom Map Integration und drückt auf herunterladen. Anschließend ist ein Neustart von Home Assistant erforderlich. Roborock

Wichtig: Die bisherige Image-Entität des Roboters sollte deaktiviert werden. Die neue Custom-Image-Entität wird später in der Vacuum Map Card genutzt.

Roborock Image deaktivieren

Vacuum Map Card installieren

Die Karte selbst wird ebenfalls über HACS installiert.

Roborock Vacuum Map Card

Ein Neustart ist hier nicht notwendig. Danach kann ich direkt im Dashboard eine neue Karte hinzufügen und folgende Einstellungen setzen:

  • Plattform: Roborock
  • Staubsauger: Eure Sauger Entität
  • Image: die neue, durch die Custom Map Integration erzeugte Map-Entität

Die Karte zeigt nun die vollständige Umgebung an und bildet die Grundlage für die spätere Raumsteuerung.


Räume korrekt einrichten

Damit die Karte weiß, welche Bereiche ausgewählt werden können, müssen die Räume in der Roborock App korrekt definiert bzw. bereinigt werden.

Roborock Handy App

Über Karte bearbeiten → Erstelle Raumkonfiguration wird die Raumkonfiguration ausgelesen und im YAML Code der Karte angelegt. Im Code-Editor kann man dann die Erstellung überprüfen.

Hier zeigt Home Assistant zwar sämtliche Räume an, allerdings meist in mehrfacher Ausführung. Ich lösche alle überflüssigen Einträge und behalte nur diejenigen, die tatsächlich existieren – in meinem Fall Flur, Studio und Büro. Mir ist dabei aufgefallen, wenn man von unten nach oben geht, dann hat man an den letzten Stellen immer die korrekten Räume mit ihren IDs. D.h. ich geht wie im Beispiel Studio, Büro, Flur nach oben und löscht wie im Video gezeigt die überflüssigen Räume

Nach dem Speichern erscheinen die Räume korrekt und lassen sich über die Karte selektieren.


Erweiterte Reinigungsoptionen – ohne Skriptanpassungen

Viele Anwender starten die Reinigung direkt über die Karte und stellen die gewünschten Parameter dort ein. Das funktioniert zuverlässig. Auch Saugleistung, Modi und Wischintensitäten lassen sich dort einstellen.

Da ich selbst häufig erst sauge und anschließend wische, habe ich ein eigenes erweitertes Vorgehen entwickelt. Dieses ermöglicht es mir über ein Skript erst zu saugen und dann zu wischen und gleichzeitig alle relevanten Parameter vorzubelegen.

Die benötigten Entitäten – etwa für Mop-Modus, Wischintensität oder Ventilatorgeschwindigkeit – lassen sich zuvor über die Entwicklerwerkzeuge bestimmen. Wichtig, achtet darauf, dass wir die korrekten Attribute bei der Übergabe an das Skript übernehmt.

Dynamisches Skript für erst Saugen und dann Wischen ( nur für Roborock Saugroboter)

alias: Sauge und Wische Dynamisch
description: ""
mode: parallel
max: 10
fields:
  vacuum_entity:
    name: vacuum_entity
    description: Vacuum-Entität, z.B. vacuum.roborock_s8_pro_ultra
    required: true
    selector:
      entity:
        filter:
          domain: vacuum
  mop_mode_entity:
    name: mop_mode_entity
    description: Select-Entität für Mop-Modus (z.B. select.*_mop_modus)
    required: true
    selector:
      entity:
        filter:
          domain: select
  mop_intensity_entity:
    name: mop_intensity_entity
    description: Select-Entität für Wischintensität (z.B. select.*_wisch_intensitat)
    required: true
    selector:
      entity:
        filter:
          domain: select
  segments:
    name: segments
    description: Segment-IDs aus der Map Card (z.B. [16,17])
    required: true
    selector:
      object: {}
  fan_speed_saugen:
    name: fan_speed_saugen
    description: Lüfterstufe fürs Saugen (z.B. max, turbo, quiet)
    required: false
    default: max
    selector:
      text: {}
  fan_speed_wischen:
    name: fan_speed_wischen
    description: Lüfterstufe fürs Wischen
    required: false
    default: quiet
    selector:
      text: {}
  mop_mode:
    name: mop_mode
    description: Mop-Modus (z.B. standard)
    required: false
    default: standard
    selector:
      text: {}
  mop_intensity_saugen:
    name: mop_intensity_saugen
    description: Wischintensität während Saugen
    required: false
    default: mild
    selector:
      text: {}
  mop_intensity_wischen:
    name: mop_intensity_wischen
    description: Wischintensität während Wischen
    required: false
    default: moderate
    selector:
      text: {}
  saugen:
    name: saugen
    description: Soll gesaugt werden?
    required: false
    default: true
    selector:
      boolean: {}
  wischen:
    name: wischen
    description: Soll gewischt werden?
    required: false
    default: true
    selector:
      boolean: {}
sequence:
  - variables:
      segs: |-
        {% set s = segments %} {% if s is string %}
          {% set s = s | from_json %}
        {% endif %} {{ s | map('int') | unique | list }}
  - if:
      - condition: template
        value_template: "{{ saugen }}"
        alias: Wenn Saugen eingeschaltet ist
    then:
      - alias: Wisch Intensität (Saug-Durchgang)
        action: select.select_option
        target:
          entity_id: "{{ mop_intensity_entity }}"
        data:
          option: "{{ mop_intensity_saugen }}"
      - delay:
          milliseconds: 500
      - alias: Mopp-Modus (Saug-Durchgang)
        action: select.select_option
        target:
          entity_id: "{{ mop_mode_entity }}"
        data:
          option: "{{ mop_mode }}"
      - delay:
          milliseconds: 500
      - alias: Lüfterstufe (Saug-Durchgang)
        action: vacuum.set_fan_speed
        target:
          entity_id: "{{ vacuum_entity }}"
        data:
          fan_speed: "{{ fan_speed_saugen }}"
      - delay:
          milliseconds: 500
      - alias: Starte Saug-Durchgang (Segmente)
        action: vacuum.send_command
        target:
          entity_id: "{{ vacuum_entity }}"
        data:
          command: app_segment_clean
          params: "{{ segs }}"
      - action: persistent_notification.create
        data:
          message: "Sauge: {{ segs }}"
  - alias: Wischen
    if:
      - condition: template
        value_template: "{{ wischen }}"
    then:
      - alias: Wenn Saugen und Wischen aktiv sind
        if:
          - condition: template
            value_template: "{{ saugen }}"
        then:
          - alias: Warte bis Roboter nicht mehr 'docked' ist
            wait_template: "{{ not is_state(vacuum_entity, 'docked') }}"
            timeout: "00:05:00"
            continue_on_timeout: true
          - alias: Warte bis Roboter 1 Minute am Stück 'docked' ist
            wait_template: |-
              {{ is_state(vacuum_entity, 'docked')
                 and (as_timestamp(now())
                      - as_timestamp(states[vacuum_entity].last_changed)) > 60 }}
            timeout: "02:00:00"
            continue_on_timeout: true
          - alias: Prüfe Dock-Status nach Timeout
            if:
              - condition: template
                value_template: "{{ not is_state(vacuum_entity, 'docked') }}"
            then:
              - action: persistent_notification.create
                data:
                  title: Saugskript Hinweis
                  message: >-
                    {{ vacuum_entity }} war nach 2 Stunden noch nicht stabil
                    'docked'. Wisch-Durchgang wird trotzdem gestartet.
      - alias: Lüfterstufe (Wisch-Durchgang)
        action: vacuum.set_fan_speed
        target:
          entity_id: "{{ vacuum_entity }}"
        data:
          fan_speed: "{{ fan_speed_wischen }}"
      - delay:
          milliseconds: 500
      - alias: Mopp-Modus (Wisch-Durchgang)
        action: select.select_option
        target:
          entity_id: "{{ mop_mode_entity }}"
        data:
          option: "{{ mop_mode }}"
      - delay:
          milliseconds: 500
      - alias: Wisch Intensität (Wisch-Durchgang)
        action: select.select_option
        target:
          entity_id: "{{ mop_intensity_entity }}"
        data:
          option: "{{ mop_intensity_wischen }}"
      - delay:
          milliseconds: 500
      - alias: Starte Wisch-Durchgang (Segmente)
        action: vacuum.send_command
        target:
          entity_id: "{{ vacuum_entity }}"
        data:
          command: app_segment_clean
          params: "{{ segs }}"
      - action: persistent_notification.create
        data:
          message: "Wische: {{ segs }}"

Integration in die Vacuum Map Card

Damit die Reinigung komfortabel über einen einzigen Button in der Karte ausgelöst werden kann, erweitere ich die Kartenkonfiguration. Dadurch entsteht ein zusätzlicher Menüpunkt wie „Saugen und Wischen“. Dieser greift auf die zuvor definierten Parameter zu und löst die Reinigungssequenz aus. Roborock

Default Code Ansicht ohne Räume:

YAML Code Ansicht der Vacuum Card, mit den Räumen

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: image.s8_ug_untergeschoss_custom
calibration_source:
  camera: true
entity: vacuum.roborock_s8_pro_ultra
vacuum_platform: Roborock
map_modes:
  - template: vacuum_clean_zone
  - template: vacuum_goto
  - template: vacuum_clean_segment
    predefined_selections:
      - id: "16"
        icon:
          name: mdi:broom
          x: 22850
          "y": 22675
        label:
          text: Flur
          x: 22850
          "y": 22675
          offset_y: 35
        outline:
          - - 19700
            - 20200
          - - 26000
            - 20200
          - - 26000
            - 25150
          - - 19700
            - 25150
      - id: "17"
        icon:
          name: mdi:broom
          x: 22925
          "y": 26825
        label:
          text: Büro
          x: 22925
          "y": 26825
          offset_y: 35
        outline:
          - - 19450
            - 25150
          - - 26400
            - 25150
          - - 26400
            - 28500
          - - 19450
            - 28500
      - id: "18"
        icon:
          name: mdi:broom
          x: 28075
          "y": 26850
        label:
          text: Studio
          x: 28075
          "y": 26850
          offset_y: 35
        outline:
          - - 26250
            - 25200
          - - 29900
            - 25200
          - - 29900
            - 28500
          - - 26250
            - 28500

Um jetzt ein zusätzliches Skript aufzurufen, müssen wir ein paar Parameter im YAML Code ergänzen. Diese fügen wird direkt unterhalb der vorherigen Eintragungen ( bei euch demnach nach euren Räumen mit den Koordinaten ) ein.

Die Parameter fan_speed_saugen, fan_speed_wischen, mop_intensity_saugen. mop_intensity_wischen, sind nach den zuvor ausgelesenen Attributen aus den Entwicklerwerkzeugen einzusetzen. Bitte nicht einfach kopieren, denn jeder Roborock Roboter hat hier unter Umständen andere Namen in den Attributen!

  - name: UG Saugen & Wischen
    icon: mdi:layers-triple
    selection_type: ROOM
    max_selections: 10
    run_immediately: false
    variables:
      fan_speed_saugen: max
      fan_speed_wischen: "off"
      mop_mode: standard
      mop_intensity_saugen: "off"
      mop_intensity_wischen: moderate
    service_call_schema:
      service: script.sauge_und_wische_dynamisch
      service_data:
        vacuum_entity: "[[entity_id]]"
        segments: "[[selection]]"
        saugen: true
        wischen: true
        mop_mode_entity: select.roborock_s8_pro_ultra_mop_modus
        mop_intensity_entity: select.roborock_s8_pro_ultra_wisch_intensitat
        fan_speed_saugen: "[[fan_speed_saugen]]"
        fan_speed_wischen: "[[fan_speed_wischen]]"
        mop_mode: "[[mop_mode]]"
        mop_intensity_saugen: "[[mop_intensity_saugen]]"
        mop_intensity_wischen: "[[mop_intensity_wischen]]"
    predefined_selections:

Jetzt fehlen und bei de predefined_selections: nur noch die Räume. Hier gibt es jetzt zwei Möglichkeiten. Entweder man kopiert sich die „predefined_selections“ aus dem vorherigen Code Abschnitt, oder aber man nutzt einen YAML-Anker. Ich nutze einen YAML-Anker, um Raumdefinitionen nicht doppelt pflegen zu müssen. Das reduziert die Fehleranfälligkeit und erleichtert spätere Anpassungen.

Dazu geht an die erste Stelle mit“ predefined_selections“ im Code.

und fügt dort folgendes nach dem Doppelpunkt ein:

&seg

Dann geht zum letzten Eintrag mit „predefined_selections“, also der Blog, den ihr zuvor eingefügt hattet.

Dort fügt nun nach dem Doppelpunkt ein :

*seg

ein.

Jetzt nur noch auf „Speichern“ drücken. Und der Abschnitt nach eurem letzten „predefined_selections“ wird automatisch mit den Eintragungen aus dem oberen Abschnitt gefüllt. Das Verfahren verringert aus meiner Sicht die Fehleranfälligkeit beim Kopieren und Einfügen.

Um euch die Möglichkeit zu geben eure YAML Konfiguration der Vacuum Map Card abzugleichen, habt ihr hier nochmal den kompletten YAML Code meiner eigenen Konfiguration. Bitte beachtet, dass ihr eure eigene Raumkonfiguration erstellen müsst, da diese in meinem Setup auf unsere Raumkonfiguration in der Roborock App abgestimmt ist!

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: image.s8_ug_untergeschoss_custom
calibration_source:
  camera: true
entity: vacuum.roborock_s8_pro_ultra
vacuum_platform: Roborock
map_modes:
  - template: vacuum_clean_zone
  - template: vacuum_goto
  - template: vacuum_clean_segment
    predefined_selections:
      - id: "16"
        icon:
          name: mdi:broom
          x: 22850
          "y": 22675
        label:
          text: Flur
          x: 22850
          "y": 22675
          offset_y: 35
        outline:
          - - 19700
            - 20200
          - - 26000
            - 20200
          - - 26000
            - 25150
          - - 19700
            - 25150
      - id: "17"
        icon:
          name: mdi:broom
          x: 22925
          "y": 26825
        label:
          text: Büro
          x: 22925
          "y": 26825
          offset_y: 35
        outline:
          - - 19450
            - 25150
          - - 26400
            - 25150
          - - 26400
            - 28500
          - - 19450
            - 28500
      - id: "18"
        icon:
          name: mdi:broom
          x: 28075
          "y": 26850
        label:
          text: Studio
          x: 28075
          "y": 26850
          offset_y: 35
        outline:
          - - 26250
            - 25200
          - - 29900
            - 25200
          - - 29900
            - 28500
          - - 26250
            - 28500
  - name: UG Saugen & Wischen
    icon: mdi:layers-triple
    selection_type: ROOM
    max_selections: 10
    run_immediately: false
    variables:
      fan_speed_saugen: max
      fan_speed_wischen: "off"
      mop_mode: standard
      mop_intensity_saugen: "off"
      mop_intensity_wischen: moderate
    service_call_schema:
      service: script.sauge_und_wische_dynamisch
      service_data:
        vacuum_entity: "[[entity_id]]"
        segments: "[[selection]]"
        saugen: true
        wischen: true
        mop_mode_entity: select.roborock_s8_pro_ultra_mop_modus
        mop_intensity_entity: select.roborock_s8_pro_ultra_wisch_intensitat
        fan_speed_saugen: "[[fan_speed_saugen]]"
        fan_speed_wischen: "[[fan_speed_wischen]]"
        mop_mode: "[[mop_mode]]"
        mop_intensity_saugen: "[[mop_intensity_saugen]]"
        mop_intensity_wischen: "[[mop_intensity_wischen]]"
    predefined_selections:
      - id: "16"
        icon:
          name: mdi:broom
          x: 22850
          "y": 22675
        label:
          text: Flur
          x: 22850
          "y": 22675
          offset_y: 35
        outline:
          - - 19700
            - 20200
          - - 26000
            - 20200
          - - 26000
            - 25150
          - - 19700
            - 25150
      - id: "17"
        icon:
          name: mdi:broom
          x: 22925
          "y": 26825
        label:
          text: Büro
          x: 22925
          "y": 26825
          offset_y: 35
        outline:
          - - 19450
            - 25150
          - - 26400
            - 25150
          - - 26400
            - 28500
          - - 19450
            - 28500
      - id: "18"
        icon:
          name: mdi:broom
          x: 28075
          "y": 26850
        label:
          text: Studio
          x: 28075
          "y": 26850
          offset_y: 35
        outline:
          - - 26250
            - 25200
          - - 29900
            - 25200
          - - 29900
            - 28500
          - - 26250
            - 28500

Praxisbeispiel

Nach der vollständigen Einrichtung lassen sich Räume über die Vacuum Map Card einfach auswählen. Wenn ich einzelne Bereiche oder mehrere Räume zu einer kombinierten Reinigung zusammenfasse, genügt ein Klick auf den jeweiligen Button. Der Roboter fährt die Bereiche nacheinander ab und führt, je nach Einstellung, Saugen und Wischen exakt in dieser Reihenfolge aus. Roborock

Diese Lösung funktioniert zuverlässig mit allen Roborock-Modellen, die von der Core-Integration unterstützt werden.


Fazit

Durch die Kombination aus Roborock Core Integration, Roborock Custom Map Integration und Vacuum Map Card wird Home Assistant deutlich leistungsfähiger. Die Kartenansicht erleichtert die Steuerung im Alltag erheblich und bietet eine sehr klare Übersicht über alle Räume.

Während bei uns zu Hause meine Frau die puristische Ansicht bevorzugt, nutze ich gerne die Vacuum Map Card mit den erweiterten Funktionen. Beide Varianten haben ihre Vorteile – entscheidend ist, was im Alltag besser funktioniert. Den Blogbeitrag zu meiner alten Lösung findet ihr hier:

Blogbeitrag: Roborock in Home Assistant, Core Integration

Wenn du eigene Ideen oder Optimierungen hast, freue ich mich über Rückmeldungen. Ergänzende Dateien und Konfigurationen findest du wie gewohnt auf meiner Blogseite.

Home Assistant Präsenz­erkennung mit dem Bayesian Sensor – So denkt dein Smart Home in Wahrscheinlichkeiten

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

Einleitung

Kennst du das Problem, dass Home Assistant manchmal „denkt“, du bist nicht zu Hause – obwohl du gerade gemütlich auf der Couch sitzt?
Oft liegt das daran, dass ein einzelner Sensor (z. B. dein Handy im WLAN) den Ausschlag gibt. Ist der Akku leer oder das WLAN kurz aus, geht Home Assistant davon aus: niemand zu Hause!

Genau hier kommt der Bayesian Sensor ins Spiel. Er arbeitet nicht mit starrer Logik, sondern mit Wahrscheinlichkeiten. Damit wird deine Präsenz­erkennung so zuverlässig wie nie zuvor.

In diesem Beitrag zeige ich dir Schritt für Schritt, wie du den Bayesian Sensor in Home Assistant einrichtest, konfigurierst und sinnvoll in deine Automatisierungen einbindest.


Was ist der Bayesian Sensor?

Der Bayesian Sensor (oft auch „Bayes-Sensor“ genannt) ist eine Integration in Home Assistant, die auf dem Bayes’schen Wahrscheinlichkeitsprinzip basiert.
Das klingt erst mal nach Statistik, ist aber unglaublich nützlich: Der Sensor kombiniert verschiedene Zustände (z. B. WLAN-Verbindung, Tür geöffnet, Bewegung erkannt) und berechnet daraus eine Gesamtwahrscheinlichkeit, ob du zu Hause bist oder nicht.

Das Entscheidende: Du kannst jedem Sensor eine eigene Gewichtung geben.
So denkt dein Smart Home nicht mehr in „Ja/Nein“, sondern in „Wie wahrscheinlich ist es, dass jemand da ist?“

Beispiel:

  • WLAN ist verbunden → +20 %
  • Companion App meldet „Zuhause“ → +30 %
  • Haustür wurde geöffnet → +10 %
  • Bewegung im Flur → +15 %

➡️ Ab einer bestimmten Schwelle (z. B. 60 %) wird der Zustand auf „anwesend“ gesetzt.


Warum Wahrscheinlichkeiten besser sind als Logik

Die klassische Logik („UND“ / „ODER“) in Home Assistant ist anfällig für Störungen.
Wenn du zum Beispiel folgende Bedingung nutzt:

„Nur wenn WLAN und Companion App beide ‘Home’ melden, gilt Anwesenheit als wahr“

…dann reicht ein kleiner WLAN-Aussetzer – und dein ganzes System glaubt, du bist weg.
Lichter gehen aus, Heizung wird abgesenkt, und du wunderst dich, warum alles dunkel wird.

Mit dem Bayesian Sensor passiert das nicht.
Er „denkt“ wie ein Mensch und gewichtet jede Information nach ihrer Verlässlichkeit.


Einrichtung des Bayesian Sensors in Home Assistant

🧭 Hinweis: Du findest die Integration unter
Einstellungen → Geräte & Dienste → Integration hinzufügen → Bayesian Sensor

Ich zeige dir hier die wichtigsten Schritte an einem Beispiel für die Präsenz­erkennung.


Grundwahrscheinlichkeit festlegen

Zuerst definierst du, wie wahrscheinlich es generell ist, dass du zu Hause bist.
Wenn du z. B. werktags 8 Stunden arbeitest, kannst du sagen:

Grundwahrscheinlichkeit : 40 % , dass ich zu Hause bin

Die Wahrscheinlichkeitsschwelle habe ich auf 60% gelegt. D.h. wenn diese Schwelle überschritten wird, gilt der Zustand „zu Hause“ .


Beobachtungen (Observations) hinzufügen

Jetzt kommen deine Sensoren ins Spiel.
Jede Beobachtung bekommt zwei Werte:

  • prob_given_true: Wahrscheinlichkeit, dass der Sensor „an“ ist, wenn du da bist
  • prob_given_false: Wahrscheinlichkeit, dass der Sensor „an“ ist, obwohl du nicht da bist

Hier ein Beispiel für die Companion App:

🧩 Damit sagst du: Wenn mein iPhone auf „home“ steht, bin ich mit 95 %iger Sicherheit zu Hause.


WLAN-Sensor hinzufügen

WLAN-Verbindungen sind nützlich, aber nicht immer zuverlässig (z. B. bei iPhones im Sleep-Modus).
Ich nutze in meinem Setup Unifi, du kannst aber genauso gut die FritzBox-Integration oder einen Ping-Sensor verwenden.

Beispiel-Template (mit 10-Minuten-Check):

{% set wlan = states('device_tracker.unifi_default_54_eb_e9_bd_03_13') %}
          {% set last_upd = as_timestamp(states.device_tracker.unifi_default_54_eb_e9_bd_03_13.last_updated, 0) %}
          {% set age = as_timestamp(now()) - (last_upd or 0) %}
          {{ wlan == 'home' or (age < 10) }}


Türkontakt als zusätzlicher Indikator

Wenn du nach Hause kommst, öffnest du normalerweise eine Tür.
Das kannst du clever nutzen, um die Wahrscheinlichkeit weiter zu erhöhen:

{{ (as_timestamp(now()) - as_timestamp(states.binary_sensor.haustur_eg_contact.last_changed, 0)) < 120 }}

Dadurch berücksichtigt der Sensor Türaktivität nur in den letzten zwei Minuten – perfekt für das Szenario „Nach Hause kommen“.


Live-Test & Feinabstimmung

Nachdem du alles eingerichtet hast, kannst du den Zustand in den Entwicklerwerkzeugen prüfen.
Die Entität zeigt dir:

Wenn du z. B. dein WLAN deaktivierst, sinkt der Wert leicht – bleibt aber über 0.6, solange andere Sensoren „Zuhause“ melden.

So erreichst du endlich ein stabiles Verhalten, auch bei kleinen Aussetzern.


Erweiterte Anwendungen

Der Bayesian Sensor kann weit mehr als nur Präsenz­erkennung.
Ein paar Ideen, wie du ihn nutzen kannst:

  • Nachtmodus aktivieren, wenn:
    • keine Bewegung mehr erkannt wird
    • alle Media Player aus sind
    • bestimmte Lichter aus sind
  • „Nicht zu Hause“-Modus, wenn:
    • niemand mehr aktiv ist
    • Tür längere Zeit geschlossen bleibt
    • Bewegungsmelder inaktiv sind

Dadurch erhältst du fließende Zustände, die viel realistischer wirken als reine Logik.


Kombination mit Automatisierungen

Du kannst den Bayesian Sensor wie jeden anderen Binärsensor in Automationen nutzen:

alias: Licht ausschalten bei Abwesenheit
trigger:
  - platform: state
    entity_id: binary_sensor.tobias_zuhauses_bayes
    to: 'off'
action:
  - service: light.turn_off
    target:
      area_id: wohnzimmer


Tipps für dein Setup

✅ Starte mit 2–3 Beobachtungen und erweitere schrittweise
✅ Teste Änderungen über die Entwicklerwerkzeuge
✅ Achte auf realistische Gewichtungen (WLAN nie zu hoch gewichten)
✅ Nutze Templates, um zeitbasierte Bedingungen (z. B. „letzte 10 Minuten“) einzubauen
✅ Lies die Wahrscheinlichkeiten aus und beobachte den Verlauf über ein paar Tage


Fazit – Warum der Bayesian Sensor so stark ist

Der Bayesian Sensor ist für mich einer der unterschätztesten, aber mächtigsten Sensoren in Home Assistant.
Er ermöglicht eine flexible, menschlich anmutende Logik – ohne komplizierte Node-RED-Flows oder YAML-Monster.

Ich verwende ihn mittlerweile für:

  • Präsenz­erkennung
  • Nachtmodus
  • Energiesteuerung (z. B. „Wahrscheinlichkeit, dass jemand gleich heimkommt“)
  • und Szenarien mit mehreren Personen

👉 Probiere es aus – du wirst schnell merken, wie stabil deine Automatisierungen werden.

Schreib mir gerne in die Kommentare, wofür du den Bayesian Sensor nutzt oder welche Kombinationen bei dir besonders gut funktionieren.


Interne Links


💤 Home Assistant Nachtmodus mit Labels – einfache Struktur statt komplizierter Gruppen

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

🌙 Warum ich den Nachtmodus neu gedacht habe

Es war wieder Zeit für die Automatisierung des Monats – und diesmal wollte ich bewusst etwas Einfaches zeigen. Etwas, das wirklich jeder in Home Assistant umsetzen kann, ohne sich durch komplexe YAML-Strukturen oder unübersichtliche Gruppen zu kämpfen.

Ich nenne es die „Nachtmodus-mit-Labels-Methode“. Sie hilft, dein Smart Home strukturiert, flexibel und wartungsarm zu gestalten. Und das Beste: Du kannst sie in wenigen Minuten umsetzen.


🏠 Was soll der Nachtmodus eigentlich tun?

Der typische Nachtmodus schaltet im Smart Home:

  • alle Lichter aus,
  • fährt die Rollos herunter,
  • regelt die Heizung runter
  • und deaktiviert unnötige Geräte.

Doch wie immer steckt der Teufel im Detail: Nicht jedes Gerät soll sich ausschalten.
Mein Server zum Beispiel hängt an einem Smart Plug – wenn der ausginge, wäre es schnell vorbei mit Home Assistant. 😅

Früher habe ich das über Gruppen geregelt. Aber Gruppen müssen ständig gepflegt und aktualisiert werden, sobald neue Geräte hinzukommen oder sich Namen ändern. Und das ist genau der Punkt, wo Labels die perfekte Lösung sind.


🏷️ Labels – der Gamechanger für Automatisierungen

Labels sind in Home Assistant ein oft übersehenes, aber mächtiges Feature.
Du findest sie unter
Einstellungen → Bereiche, Labels & Zonen → Labels

Hier kannst du jedem Gerät oder jeder Entität ein oder mehrere Labels zuweisen – und später in Automatisierungen darauf zugreifen.

Ich habe mir also ein Label mit dem Namen „Nachtmodus“ angelegt, mit Symbol 🌙 und einer passenden Farbe. Anschließend weise ich dieses Label einfach allen Geräten zu, die beim Aktivieren des Nachtmodus reagieren sollen:

  • Lampen
  • Wandlampe im Büro
  • Rollos im Schlafzimmer
  • Thermostat im Büro

Fertig – kein manuelles Gruppieren mehr nötig. Ihr verseht nun alle Geräte, die ihr in der Nacht in irgendeiner Art im Zustand verändern wollt mit diesem Label.


💡 Geräte mit Labels verbinden

Damit du den Überblick behältst, kannst du Labels direkt über das Zahnrad-Symbol im Geräte-Menü vergeben.
Ich gehe dabei Schritt für Schritt vor:

  1. Licht auswählen → Zahnrad → Label „Nachtmodus“ hinzufügen
  2. Schalter oder Steckdose → ebenfalls Label hinzufügen
  3. Thermostat → Label „Nachtmodus“ zuweisen
  4. Optional: Abdeckung (Rollo) → Label ergänzen

Ihr könnt auch weitere Geräte, wie ein Türschloss, Mediaplayer etc.. hinzufügen.

Damit ist die Vorarbeit abgeschlossen – jetzt kann die Automatisierung kommen.


⚙️ Die Automatisierung für den Nachtmodus erstellen

Gehe zu
Einstellungen → Automatisierungen & Szenen → Neue Automatisierung erstellen.

Jetzt kommt der wichtigste Teil:
Ich baue eine Automatisierung, die nicht auf feste Entitäten zugreift, sondern nur auf Labels. Dadurch bleibt sie dynamisch.

Schritt 1: Auslöser definieren

Der Auslöser kann frei gewählt werden:

  • ein Schalter am Bett,
  • ein Zigbee-Button,
  • ein Dashboard-Taster,
  • oder eine Sprachsteuerung über Alexa.

Ich verwende meist einen einfachen Schalter und nenne den Auslöser „Nachtmodus aktivieren“.

Schritt 2: Aktionen festlegen

Jetzt werden alle Aktionen hinzugefügt, die über das Label gesteuert werden:

service: light.turn_off
target:
  label: Nachtmodus

Dasselbe Prinzip gilt auch für andere Gerätetypen:

service: switch.turn_off
target:
  label: Nachtmodus

service: climate.set_temperature
target:
  label: Nachtmodus
data:
  temperature: 15

alias: automatischer Nachtmodus
description: ""
triggers: []
conditions: []
actions:
  - action: light.turn_off
    metadata: {}
    data: {}
    target:
      label_id: nachtmodus
  - action: switch.turn_off
    metadata: {}
    data: {}
    target:
      label_id: nachtmodus
  - action: cover.close_cover
    metadata: {}
    data: {}
    target:
      label_id: nachtmodus
  - action: climate.set_temperature
    metadata: {}
    data:
      temperature: 10
    target:
      label_id: nachtmodus
mode: single

Dadurch schaltet Home Assistant alle Geräte mit dem Label „Nachtmodus“ automatisch aus oder regelt sie herunter.
Wenn du später neue Geräte hinzufügst, musst du nur das Label vergeben – keine Änderungen an der Automatisierung nötig!


🔍 Testen und Feinschliff

Ich empfehle, den Nachtmodus zunächst manuell über die drei Punkte in der Automatisierung auszuführen, um zu prüfen, ob alle Geräte reagieren.
Bei mir gingen sofort alle Lichter aus, die Heizung wurde heruntergeregelt – perfekt.

Zur Kontrolle kannst du in den Entitäten nach „Nachtmodus“ filtern. Dort siehst du alle zugehörigen Geräte und deren aktuellen Status.


📈 Warum Labels so viel besser sind als Gruppen

Hier die wichtigsten Vorteile auf einen Blick:

Weniger Pflegeaufwand – keine Gruppen mehr anpassen
Mehr Flexibilität – ein Gerät kann mehreren Labels angehören (z. B. Nachtmodus, Urlaub, Energiesparen)
Bessere Übersicht – klare Struktur im Gerätemanagement
Automatisierungen bleiben unverändert – selbst bei vielen Änderungen im System

Ich nutze Labels inzwischen nicht nur für den Nachtmodus, sondern auch für:

  • Urlaubsmodus
  • Energiesparmodus
  • Szenensteuerungen
  • Zeitgesteuerte Aktionen


🌅 Und am nächsten Morgen?

Natürlich lässt sich die gleiche Logik auch für den Morgenmodus anwenden.
Einfach ein zweites Label anlegen, z. B. „Morgenmodus“, und damit die gewünschten Aktionen starten:

  • Lichter im Flur an
  • Rollos hoch
  • Heizung auf Komforttemperatur

So baust du dir Schritt für Schritt ein modulares Smart Home-System, das leicht zu pflegen ist und immer nachvollziehbar bleibt.


💬 Fazit – Einfach, klar und wirkungsvoll

Mit dem Home Assistant Nachtmodus über Labels erreichst du maximale Kontrolle bei minimalem Aufwand.
Du kannst neue Geräte in Sekunden integrieren, behältst die Übersicht und brauchst keine YAML-Monster oder endlosen Gruppenlisten mehr.

Für erfahrene Nutzer ist es ein effizienter Weg, bestehende Strukturen zu optimieren.
Für Einsteiger ist es die perfekte Methode, Automatisierungen endlich zu verstehen – intuitiv, visuell und sauber aufgebaut.


🤝 Community-Tipp

🔗 Forum: https://community-smarthome.com
💬 Discord: https://smarthomeundmore.de/discord

Dort findest du viele engagierte Mitglieder, die bei Fragen rund um Home Assistant, Automatisierungen und MQTT , EVCC schnell weiterhelfen.

Home Assistant Erfahrungen: Warum ich trotz aller Kritik dabei bleibe!

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

Home Assistant Erfahrungen: Warum ich trotz aller Kritik dabei bleibe

Meine Home Assistant Erfahrungen zeigen: Das System ist nicht perfekt – doch ich bleibe trotzdem dabei. Warum? Genau das erkläre ich in diesem Beitrag.

Home Assistant – nicht perfekt, aber wertvoll

Ja, es stimmt: YAML kann anstrengend sein, die Benutzeroberfläche wirkt manchmal chaotisch, und Updates sorgen gelegentlich für mehr Frust als Fortschritt. Und dennoch bleibt Home Assistant mein System der Wahl. Warum? Weil es mehr ist als nur ein Smart-Home-Tool – es ist ein System, das mit mir wächst und das mir auf lange Sicht viele Möglichkeiten eröffnet.

5 Home Assistant Erfahrungen, die mich überzeugt haben

1. Vollständige Kontrolle ohne Cloud-Zwang

Ich bestimme, was passiert. Home Assistant lässt sich komplett lokal betreiben – ohne Abhängigkeit von Cloud-Diensten. Das bedeutet: Auch ohne Internet läuft mein Zuhause stabil weiter. Diese Unabhängigkeit ist besonders wichtig im Hinblick auf Datenschutz und Systemsicherheit. Ich weiß, dass meine Daten auf meinen eigenen Servern bleiben – und das beruhigt ungemein.

2. Gerätevielfalt unter einem Dach

Egal ob Zigbee, WLAN, Bluetooth oder Cloud-Anbindungen wie Home Connect – Home Assistant bringt alles zusammen. Ich nutze Geräte von verschiedensten Herstellern: Fernseher von Samsung, eine Spülmaschine von Siemens, eine Waschmaschine von LG und viele weitere Komponenten. Durch Home Assistant bekomme ich alles unter eine Oberfläche – ein echter Mehrwert im Alltag.

3. Echte Automatisierung mit echtem Nutzen

Mit Home Assistant automatisiere ich nicht nur aus Spaß an der Technik, sondern weil es meinen Alltag erleichtert. Beispiele? PV-Überschussladen mit EVCC, ein Awtrix-Display mit Müllkalender und Timer für den Geschirrspüler oder intelligente Benachrichtigungen. Solche Lösungen sparen mir Zeit, Geld und manchmal auch Nerven.

4. Eine starke Community

Home Assistant lebt von seiner Community. In Foren, auf YouTube oder in Discord-Servern findet man schnell Hilfe, Austausch und neue Ideen. Ich selbst bin durch die Community gewachsen, habe Dinge gelernt und weiterentwickelt. Dieser Zusammenhalt ist ein großer Pluspunkt, den ich nicht mehr missen möchte.

5. Es ist mein System – exakt so, wie ich es brauche

Mein Dashboard sieht heute ganz anders aus als noch vor einem Jahr – weil ich es mir so gestalten kann, wie ich es brauche. Ob einfache Steuerung für die Familie, komplexe Automatisierungen oder benutzerfreundliche Oberflächen – Home Assistant erlaubt mir die komplette Freiheit.

Was passiert, wenn ich mal ausfalle?

Eine häufige und absolut berechtigte Frage aus der Community. Was, wenn ich als zentrale Person für das Smart Home plötzlich ausfalle? Deshalb achte ich darauf, einfache Dashboards für die Familie bereitzustellen, Automatisierungen zu dokumentieren und regelmäßige Backups durchzuführen – z. B. über die Nabucasa Cloud. So bleibt das System auch im Notfall benutzbar und nachvollziehbar.

Updates – aber mit Bedacht

Updates können riskant sein, vor allem direkt nach Veröffentlichung. Ich warte in der Regel bis zum Monatsende mit dem Update und habe mir dafür eine Benachrichtigung eingerichtet. Das erspart mir viele Probleme und lässt anderen den Vortritt, neue Bugs zu entdecken.

Fazit – Home Assistant ist nicht perfekt. Aber es ist einzigartig.

Trotz aller Kritik bleibe ich bei Home Assistant. Die Möglichkeiten sind enorm, die Anpassbarkeit ist groß und der Community-Support ist herausragend. Wer bereit ist, sich einzuarbeiten, wird mit einem System belohnt, das individuell, zuverlässig und leistungsfähig ist – und das ohne Lizenzkosten.

Wie siehst du das?

Was sind deine Gründe, bei Home Assistant zu bleiben – oder vielleicht auch zu wechseln? Schreib mir gerne einen Kommentar oder diskutiere mit in der Community. Ich bin gespannt auf deine Sichtweise!

Ein Blick zurück – Meine Anfänge mit Home Assistant

Als ich mit Home Assistant begonnen habe, war ich begeistert, als ich das erste Mal Sensordaten auslesen konnte. Ich erinnere mich noch gut an den Moment, als ich zum ersten Mal einen einfachen Temperatursensor in meinem Dashboard angezeigt bekam. Das klingt rückblickend banal – aber es war der erste Schritt in eine neue Welt. Eine Welt voller Möglichkeiten, in der ich Stück für Stück gewachsen bin, zusammen mit den Herausforderungen, die dieses System mit sich bringt.

Wachstum durch Herausforderungen

Home Assistant ist nicht nur ein System, es ist ein Prozess. Ich habe erlebt, wie aus einfachen Automatisierungen wie dem Ein- und Ausschalten von Licht komplexe Abläufe wurden: PV-Überschussmanagement, Speicherlogik, Awtrix-Anzeigen mit Live-Daten und vieles mehr. Mit jedem neuen Anwendungsfall wurde ich sicherer, kreativer und effizienter. Das System hat mir die Möglichkeit gegeben, auf reale Anforderungen in meinem Alltag zu reagieren – und das mit einem hohen Maß an Individualisierung.

Familienfreundlich – oder nur was für Nerds?

Ein Kritikpunkt, der häufig auftaucht – und den ich auch verstehe – betrifft die Nutzbarkeit im Familienkontext. Was passiert, wenn die eine Person ausfällt, die alles eingerichtet hat? Genau hier setze ich an: mit Dokumentation, vereinfachten Dashboards, klar benannten Automationen und einem abgestuften Systemverständnis. Meine Frau soll nicht YAML-Dateien durchforsten, sondern einfach das Licht einschalten können, wenn der Bewegungsmelder mal streikt. Das ist nicht nur sinnvoll, sondern notwendig – für jedes ernst gemeinte Smart Home Setup.

Community – das vielleicht größte Feature

Neben allen technischen Vorzügen darf man eines nicht vergessen: Die Home Assistant Community ist unglaublich aktiv und hilfsbereit. Egal ob in Foren, auf Discord, YouTube oder Reddit – die Geschwindigkeit, mit der Fragen beantwortet und Probleme gelöst werden, ist beeindruckend. Ich selbst habe unzählige Impulse aus der Community bekommen, bin mit Entwicklern ins Gespräch gekommen und habe sogar Funktionen mitgestaltet. Diese Dynamik findet man so in kaum einem anderen Smart Home System.

Mein Setup heute – und wie es sich verändert hat

Wenn ich mein heutiges Home Assistant Setup mit dem von vor Jahren vergleiche, liegen Welten dazwischen. Was als Spielerei mit ein paar Sensoren begann, ist heute eine zentrale Steuerungsinstanz meines Hauses. Es gibt Automationen für Energieoptimierung, Sicherheitsfunktionen, Erinnerungen an Mülltage, Statusanzeigen, anwesenheitsbasierte Aktionen und vieles mehr. Und das Beste daran: Alles genau so, wie ich es brauche – nicht wie ein Hersteller es mir vorgibt.

Wohin geht die Reise?

Ich glaube nicht, dass Home Assistant je ‚fertig‘ ist – und das ist auch gut so. Neue Geräte, neue Anforderungen und neue Ideen aus der Community sorgen ständig für Weiterentwicklung. Ob neue Dashboard-Konzepte, Integrationen wie Matter oder clevere Visualisierungen mit Grafana – ich freue mich auf alles, was kommt. Und ich bleibe dabei – weil ich weiß, dass ich ein System nutze, das sich meinen Bedürfnissen anpasst. Nicht umgekehrt.

👉 Lies auch: Was mich an Home Assistant nervt !