Proxmox Backup Server einrichten – so sichere ich mein komplettes HomeLab ( inkl. ZFS-Mirror, UGREEN NAs & Sync Setup)

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

Proxmox Backup Server Titelbild

In meinem HomeLab spielt der Proxmox Backup Server eine zentrale Rolle. Viele unterschĂ€tzen das Thema Backups – aber wenn eine VM plötzlich weg ist oder Hardware ausfĂ€llt, sind die Schmerzen groß. Genau deshalb zeige ich dir in diesem Beitrag, wie ich meinen Proxmox Backup Server (PBS) eingerichtet habe: mit ZFS-Mirror, by-id-Passthrough, Backup-Jobs, Remote-Sync und Wiederherstellungsstrategie.

Ich verwende in meinem Setup mehrere UGREEN NAS-Systeme, die hervorragend mit Proxmox harmonieren und gleichzeitig effizient und leise laufen. Meine GerÀte:

Dazu habe ich den Speicher erweitert:
48 GB RAM fĂŒr UGREEN NAS*
👉 https://amzn.to/4nZzEfw


Warum Backups mehr sind als nur eine Kopie

Bevor wir starten, kurz der wichtigste Unterschied:

  • ZFS Mirror → schĂŒtzt mich vor Plattenausfall
  • Proxmox Backup Server → schĂŒtzt mich vor Datenverlust
  • Remote Sync → schĂŒtzt mich vor Brand, Diebstahl, Defekt

Ich erlebe in der Community hĂ€ufig, dass ein RAID oder ZFS-Mirror als Backup verstanden wird. Das ist aber nur eine VerfĂŒgbarkeitsschicht, kein echtes Backup.
Backups entstehen erst, wenn:

  • Daten inkrementell gespeichert werden
  • Versionen existieren
  • sie auf getrennter Hardware liegen

Genau das erfĂŒllt der Proxmox Backup Server im gezeigten Setup.


Mein Setup – Überblick

Ich nutze:

  • Proxmox 9 auf meinem HomeLab
  • UGREEN DXP8800 Plus als Haupt-NAS
  • UGREEN DXP4800 Plus als Backup-NAS
  • Ein weiterer PBS in der Cloud (optional)

Damit kann ich selbst bei einem kompletten Hardware-Schaden alle Backups wiederherstellen.


ZFS Mirror anlegen – die Basis

Zuerst habe ich im UGREEN NAS ein ZFS Mirror aus 2 HDDs angelegt. Das schafft Redundanz und optimale Performance fĂŒr den PBS-Datastore.

In meinem Fall:

Damit ZFS in der PBS-VM funktioniert, brauche ich die echten Laufwerke – und genau dafĂŒr ist Passthrough per /dev/disk/by-id unverzichtbar.


Warum ich /dev/disk/by-id nutze

Wenn du einfach /dev/sda oder /dev/sdb durchreichst, kann die Reihenfolge nach einem Reboot oder Update wechseln.
Das wÀre fatal.

Darum nutze ich:

ls -l /dev/disk/by-id

Dort suche ich meine beiden HDDs heraus – in meinem Fall z. B.:

  • ata-ST4000DM004_XXXXXX
  • ata-ST4000DM004_YYYYYY

Diese IDs trage ich spÀter bei der VM als Passthrough ein.

Erste HDD an scsi1:

qm set 126 --scsi1 /dev/disk/by-id/ata-WDC_WD40EFPX-68C6CN0_WD-WX12DC482U93

Zweite HDD an scsi2:

qm set 126 --scsi2 /dev/disk/by-id/ata-WDC_WD40EFPX-68C6CN0_WD-WX22DC4LF10E

Proxmox Backup Server ISO vorbereiten

Ich lade das ISO bei Proxmox herunter und packe es ins in mein Proxmox.

Dann lege ich eine neue VM an:

  • BIOS: UEFI
  • Machine: q35
  • Disk: 64 GB (SSD-Simulation)
  • RAM: 2 GB
  • Cores: 2
  • Netzwerkkarte: VirtIO

Alles sehr genĂŒgsam – PBS ist extrem leichtgewichtig.


ZFS Mirror im PBS anlegen

Sobald die VM lÀuft:

  1. Storage → Disks
  2. Die beiden Passthrough-HDDs auswÀhlen
  3. ZFS → Mirror
  4. Namen vergeben (z. B. zfs-mirror-pbs)
  5. Erstellen

PBS im Proxmox einbinden

Jetzt binde ich den Backup Server in Proxmox ein:

  • Datacenter → Storage → Add → Proxmox Backup Server

Hier brauche ich:

  • IP des PBS
  • Benutzer: root@pam
  • Datastore-Name (z. B. zfsmirrorpbs)
  • Fingerprint aus PBS → Dashboard → „Show Fingerprint“

Nach dem Speichern erscheint der PBS sofort im Storage-Baum.

Backup-Job in Proxmox erstellen

Jetzt richte ich den eigentlichen Backup-Job ein:

  • Datacenter → Backup → Add
  • Schedule: tĂ€glich 21:00 Uhr
  • Mode: selected VMs (damit PBS sich nicht selbst sichert)

Optional:

  • Notifications per Mail
  • Compression Zstandard
  • Bandwidth-Limit

Retention – wie viele Backups ich behalte

Hier verwende ich eine Mischung aus kurz und langfristig:

  • Keep Last: 5
  • Keep Daily: 1
  • Keep Weekly: 1
  • Keep Monthly: 2
  • Keep Yearly: 2

Damit habe ich:

  • schnelle Wiederherstellung
  • Schutz vor Ransomware
  • sauberen Versionsverlauf

Backup testen

Ich starte den Job manuell:

Backup → Run now

Wenn die VM danach im Datastore auftaucht, weiß ich:
Das Grundsetup passt.


Mein zweiter PBS – Remote Sync fĂŒr echte Sicherheit

Jetzt kommt der wichtigste Teil:
Backups mĂŒssen extern gespeichert werden.

Ich habe darum ein zweites NAS:

Dort lÀuft ebenfalls ein Proxmox Backup Server.

Ich richte dann ein:

  • Remote
  • Pull-Job (mein Favorit, weil sicherer)
  • Automatische Synchronisation

Beispiel:

  • Quelle: PBS #1 (Hauptsystem)
  • Ziel: PBS #2 (Backup-NAS)

So habe ich die Daten:

  • vor Ort → schnell wiederherstellbar
  • auf zweiter Hardware → geschĂŒtzt vor Totalausfall

Option:
Ich betreibe zusĂ€tzlich einen PBS in der Hetzner Cloud fĂŒr maximale Redundanz.


Energieoptimierung – mein Ansatz

Viele fragen mich:

„Kann ich das zweite NAS nicht einfach herunterfahren?“

Ja, kann man:

  • Second-NAS per Sync-Zeitpunkt wecken
  • Nach Sync automatisch herunterfahren
  • ZFS-Spindown aktivieren
  • Nur einmal pro Tag synchronisieren

Dadurch spare ich signifikant Energie.

Ich plane dazu ein eigenes Video & Blogbeitrag. Falls Interesse besteht, bitte in den Kommentaren zum Video einen kleinen Hinweis geben.


Restore – warum PBS hier so stark ist

Was ich am Proxmox Backup Server besonders schÀtze:

  • Deduplizierung
  • Schnelle inkrementelle Sicherungen
  • Extrem schnelle Wiederherstellung
  • Versioning
  • Bandbreitenlimit
  • Datensparsamkeit

Ich kann:

  • komplette VMs wiederherstellen
  • nur einzelne Dateien mounten
  • Snapshots vergleichen
  • Remote-Backups ziehen

Im Fall eines Hardware-Defekts:

  • ZFS-Mirror in neue Hardware einstecken
  • PBS ISO booten
  • Pool importieren
  • Backups direkt wiederherstellen

Fazit – ein zuverlĂ€ssiges, effizientes Backup-System

Mit dem Proxmox Backup Server, ZFS-Mirror und einem zweiten NAS habe ich endlich ein Setup, das:

  • sicher,
  • schnell,
  • energieeffizient
  • und absolut robust ist.

Ich kann Hardware austauschen, VMs sofort wiederherstellen und selbst im Worst-Case bleibt mein komplettes HomeLab funktionsfÀhig.

Wenn du ein UGREEN-NAS einsetzt oder ein kompaktes HomeLab betreiben möchtest, kann ich dir diese Lösungen ehrlich empfehlen:

Wenn du Fragen hast oder dein eigenes Backup-Setup optimieren willst, schreib’s gern in die Kommentare unter dem Video.

Folgende BeitrÀge zum Themen könnten dich auch interessieren:

Unraid unter Proxmox installieren – Mein komplettes HomeLab-Setup Schritt fĂŒr Schritt

Ugreen NAS mit TrueNAS – mein Setup unter Proxmox, ZFS & SMB-Freigaben im Praxistest

Ugreen NAS im Test – Mein Setup mit dem DXP8800 Plus & DXP4800 Plus fĂŒr Smart Home und Proxmox

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.

Unraid unter Proxmox installieren – Mein komplettes HomeLab-Setup

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

Unraid unter Proxmox installieren – Mein komplettes HomeLab-Setup

In diesem Beitrag möchte ich dir zeigen, wie ich Unraid unter Proxmox in meinem HomeLab betreibe – und warum dieses Setup fĂŒr mich aktuell die beste Kombination aus Energieeffizienz, FlexibilitĂ€t und Performance bietet. Ich nutze Proxmox schon lange als zentrale Virtualisierungsebene. Die Möglichkeit, darauf wiederum Unraid zu virtualisieren, ist fĂŒr mich ein idealer Weg, moderne NAS-Funktionen mit der FlexibilitĂ€t eines Linux-Hypervisors zu verbinden.

Gerade im privaten Umfeld spielt Stromverbrauch eine immer wichtigere Rolle. WĂ€hrend ZFS mit TrueNAS im professionellen Einsatz fĂŒr mich der absolute Favorit ist, lege ich zuhause Wert darauf, dass Platten zuverlĂ€ssig schlafen können und nicht permanent durchlaufen mĂŒssen. Und genau dort punktet Unraid enorm.


Warum ich Unraid unter Proxmox nutze

Zu Beginn war ich selbst skeptisch, ob eine Virtualisierung von Unraid ĂŒberhaupt sinnvoll ist. In der Praxis hat sich das aber schnell als echte Lösung herausgestellt. Ich habe einerseits die komplette Kontrolle von Proxmox inklusive Snapshots, VMs, Netzwerkmanagement und ZFS-Speicher fĂŒr meine virtuellen Maschinen. Gleichzeitig nutze ich die StĂ€rken von Unraid, nĂ€mlich ein extrem flexibles Array, Caching, schlafende HDDs, Docker-Management und eine sehr unkomplizierte Erweiterbarkeit.

Was viele nicht wissen: Auf dem USB-Stick wird fast nie geschrieben. Der Stick dient in erster Linie als Boot-Medium, und lediglich Änderungen an der Konfiguration werden gespeichert. Dadurch ist er erstaunlich langlebig. Ich verwende Sticks mit garantiert eindeutiger GUID, da Unraid die Lizenz an diese ID bindet.


Mein Hardware-Setup*

In meinem Video habe ich ein UGREEN 4-Bay NAS als Beispiel genutzt. Mein produktives System ist das 8-Bay Modell mit deutlich mehr KapazitĂ€t. Die Vorgehensweise ist identisch, weshalb sich das Tutorial flexibel auf verschiedenste Hardware ĂŒbertragen lĂ€sst.

In meinem Testsystem stecken vier 4-TB-HDDs, zwei NVMe-SSDs im ZFS-Mirror (fĂŒr Proxmox selbst) und eine virtuelle 250-GB-Disk, die ich spĂ€ter als Cache-Laufwerk fĂŒr Unraid verwende. ZusĂ€tzlich habe ich den Arbeitsspeicher auf 48 GB erweitert, was im Alltag angenehm ist, aber fĂŒr Unraid selbst gar nicht nötig wĂ€re.


Vorbereitung des USB-Sticks*

Um Unraid nutzen zu können, lade ich das offizielle Flash-Tool herunter und spiele die aktuelle Version auf einen frisch formatierten Stick. Das geht wirklich unkompliziert. Wichtig ist nur, dass die GUID korrekt erkannt wird und der Stick zuverlÀssig von der Hardware gebootet werden kann. Danach stecke ich ihn in das UGREEN-NAS und kann in Proxmox direkt loslegen.

Unraid unter Proxmox


Die virtuelle Maschine in Proxmox

Die VM fĂŒr Unraid ist schnell erstellt. Ich vergebe ihr einen Namen, lasse das Installationsmedium leer und wĂ€hle als Maschinentyp q35, damit alle modernen PCIe-Funktionen verfĂŒgbar sind. Anschließend stelle ich 4 GB Arbeitsspeicher und zwei bis vier CPU-Kerne bereit. Eine virtuelle Festplatte lege ich an dieser Stelle noch nicht an, da Unraid spĂ€ter die tatsĂ€chlichen HDDs direkt erhĂ€lt.

Damit die VM korrekt startet, passe ich anschließend die Bootreihenfolge an. Zuerst soll der USB-Stick booten. Die restlichen Order sind eigentlich ĂŒberflĂŒssig.


Passthrough von USB-Stick und SATA-Controller

Das ist der wichtigste Schritt des gesamten Setups. Der USB-Stick wird anhand seiner Vendor- und Device-ID durchgereicht. Das sorgt dafĂŒr, dass Unraid beim Start genau diesen Stick erkennt – unabhĂ€ngig davon, an welchem Port er steckt.

Noch wichtiger ist das Durchreichen des SATA-Controllers. Ich wĂ€hle also unter den PCI-GerĂ€ten den kompletten Controller aus, aktiviere „Alle Funktionen“ und reiche ihn mit PCIe-UnterstĂŒtzung an die VM durch. Das bedeutet: Unraid sieht die HDDs so, als wĂ€ren sie direkt ĂŒber SATA angeschlossen. Keine virtuelle Zwischenschicht, keine Geschwindigkeitseinbußen – echtes Bare-Metal-Feeling.

Die zusÀtzliche virtuelle SCSI-Disk lege ich als SSD-emuliertes Laufwerk an. Sie dient spÀter als Cache-Drive und trÀgt massiv dazu bei, dass die physikalischen HDDs lange schlafen können.


Der erste Start von Unraid

Nach dem Start bootet Unraid direkt vom USB-Stick. Sobald eine IP vergeben wurde, öffne ich die WeboberflĂ€che und vergebe zuerst ein Administrator-Passwort. Danach starte ich die kostenlose Trial oder nutze meinen vorhandenen LizenzschlĂŒssel.

Es ist wichtig zu wissen, dass die Lizenz fest an die eindeutige Stick-ID gebunden ist. Wechselst du den Stick, musst du die Lizenz ĂŒbertragen – daher lohnt sich ein qualitativ hochwertiges Modell.


Einrichtung des Arrays

Jetzt geht es ans HerzstĂŒck von Unraid: Das Array. Ich entscheide mich bewusst fĂŒr ein klassisches Setup mit ParitĂ€tsfestplatte. FĂŒr mich ist das der beste Kompromiss zwischen Sicherheit, FlexibilitĂ€t und Energieverbrauch. Bei einem ZFS-System mĂŒssen alle Platten permanent laufen, da die Datenstruktur ĂŒber mehrere Platten gleichzeitig verteilt ist. Unraid hingegen erlaubt es, Platten einzeln schlafen zu legen, solange sie nicht aktiv benötigt werden.

Ich ordne die Platten der Reihe nach zu, vergebe die Parity-Disk und ordne zwei oder drei weitere HDDs als Datenlaufwerke zu. Das Cache-Drive definiere ich ebenfalls direkt, sodass grĂ¶ĂŸere SchreibvorgĂ€nge zunĂ€chst auf den schnellen virtuellen NVMe-Speicher gehen.

Der erste Parity-Build dauert mehrere Stunden, was normal ist. WÀhrend dieser Zeit sollten möglichst keine Daten auf das Array geschrieben werden.


Energie sparen mit Spindown und Cache

Einer der HauptgrĂŒnde, warum ich Unraid privat so gerne nutze, ist der deutlich geringere Stromverbrauch. Sobald die ParitĂ€t erstellt wurde, stelle ich das automatische Einschlafen der HDDs ein. Bei mir sind 15 Minuten ideal, aber 30 Minuten sind ebenfalls ein guter Wert, wenn regelmĂ€ĂŸig kleinere Zugriffe stattfinden.

Damit die Platten wirklich zuverlĂ€ssig schlafen können, ist das Cache-Drive entscheidend. Es nimmt alle kurzfristigen SchreibvorgĂ€nge auf, und erst spĂ€ter bewegt der sogenannte „Mover“ die Daten auf die HDDs. Ich lasse den Mover bewusst zu Zeiten laufen, in denen meine PV-Anlage Strom liefert – idealerweise mittags.

In Tests liegt mein System im Idle bei rund 30 W. WĂ€hrend der ParitĂ€t waren es etwa 57 W. Mit grĂ¶ĂŸeren HDDs (7 200 U/min) steigt der Unterschied noch stĂ€rker an, weshalb ein stromsparendes Setup auf Dauer bares Geld spart.


Netzwerk-Setup und 10-Gigabit-Anbindung

Unraid bekommt bei mir zunĂ€chst eine DHCP-Adresse, die ich im Router fest verankere. FĂŒr besonders schnelle KopiervorgĂ€nge nutze ich zusĂ€tzlich die 10-Gigabit-Schnittstelle des UGREEN-NAS. Diese reiche ich ebenfalls an die VM durch und vergebe ihr eine eigene statische IP.

In meinen Tests erreiche ich ĂŒber die 10-GbE-Verbindung bei Kopien auf den Cache problemlos Übertragungsraten von ĂŒber 200 MB/s. Gerade wenn ich Daten auf das NAS oder zwischen VMs verschiebe, bringt das spĂŒrbare Vorteile. Ich weiß, die 10GbE Schnittstelle sollte ja viel mehr können. Aber meine VM , von der ich aus kopiere liegt auf langsamen SSD Speicher, da geht nicht mehr. Mit einem physischen Rechner und einer schnellen NVME lassen sich aber die Bandbereiten fast vollstĂ€ndig ausnutzen. Mir geht es hier aber primĂ€r um Energie und nicht um Performance.


Docker, Apps und Benutzer

Nachdem das System steht, aktiviere ich Docker und installiere das Community-Apps-Plugin. Damit stehen mir hunderte Anwendungen direkt mit einem Klick zur VerfĂŒgung – von Medienservern ĂŒber Backuplösungen bis hin zu KI-Tools.

Anschließend lege ich Benutzer und Freigaben an. Der typische Workflow sieht bei mir so aus, dass ich ein Share erst auf den Cache schreiben lasse und der Mover die Dateien spĂ€ter automatisch ins Array verschiebt. Das sorgt dafĂŒr, dass die HDDs ĂŒber weite Strecken komplett schlafen können.


Warum Unraid fĂŒr mein HomeLab bleibt

Auch wenn ich im professionellen Umfeld TrueNAS weiterhin sehr gerne einsetze, ist Unraid fĂŒr mein HomeLab inzwischen die erste Wahl. Es erlaubt mir, flexibel Platten zu kombinieren, ja, es sind sogar Festplatten mit unterschiedlichen GrĂ¶ĂŸen möglich, sie einzeln schlafen zu lassen, Docker bequem zu verwalten und die Hardware sehr frei zu konfigurieren. Energietechnisch habe ich damit ein System, das im Leerlauf nicht mehr verbraucht als ein kleiner BĂŒro-PC – und gleichzeitig jederzeit erweiterbar bleibt.

Wenn du selbst ein HomeLab aufbaust und zwischen ZFS/TrueNAS und Unraid schwankst, kann ich dir nur empfehlen, einmal Unraid auszuprobieren. Gerade die Mischung aus Einfachheit, FlexibilitÀt und Energieeffizienz macht das System im privaten Einsatz extrem attraktiv. Auch Unraid beherrscht mittlerweile ZFS. Aber der Fokus lag bei mir auf die Einsparung von Energie.

Weitere BlogbeitrÀge zum Thema HomeLab:

Ugreen NAS im Test – Mein Setup mit dem DXP8800 Plus & DXP4800 Plus fĂŒr Smart Home und Proxmox

Ugreen NAS mit Proxmox – So baust du dir dein eigenes HomeLab

Ugreen NAS mit TrueNAS – mein Setup unter Proxmox, ZFS & SMB-Freigaben im Praxistest

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