Home Assistant

Bayesian-Sensor: Anwesenheit zuverlässig erkennen

Jeder, der Räume per Bewegungsmelder steuert, kennt das Ärgernis: Man sitzt ruhig am Schreibtisch, der Sensor sieht keine Bewegung mehr – und das Licht geht aus. Ein einzelner binary_sensor ist eben blind für alles ausser Bewegung. Die Lösung heisst nicht «noch ein Timer», sondern ein klügeres Modell, das mehrere Hinweise gewichtet kombiniert. Genau das leistet der Bayesian-Sensor in Home Assistant: Er schätzt aus vielen unsicheren Signalen die Wahrscheinlichkeit, dass ein Raum belegt ist – und schaltet erst, wenn diese Wahrscheinlichkeit hoch genug ist.

Die Idee dahinter

Der Bayesian-Sensor wendet das Bayes-Theorem an. Er startet mit einer Grundwahrscheinlichkeit, dem prior – also: Wie oft ist das Büro überhaupt belegt, wenn ich sonst nichts weiss? Sagen wir 30 Prozent. Jede Beobachtung verschiebt diese Schätzung dann nach oben oder unten. Ein Bewegungsmelder, der gerade ausgelöst hat, erhöht die Wahrscheinlichkeit stark. Ein Laptop, dessen Kamera aktiv ist, ebenfalls. Erreicht die kombinierte Wahrscheinlichkeit – der posterior – die Schwelle, schaltet der Sensor auf on.

Der Clou: Kein einzelnes Signal entscheidet allein. Fällt die Bewegung weg, halten andere Hinweise – ein laufendes Meeting, ein eingeschalteter Bildschirm – die Wahrscheinlichkeit oben. Das Licht bleibt an, solange die Gesamtschau plausibel auf «jemand ist da» deutet. Wer Anwesenheit bisher über mehrere Geräte zusammengeführt hat, etwa mit person– und zone-Entitäten, kennt den Ansatz – Bayesian macht ihn deutlich feinkörniger.

Die Bausteine: prior, probability_true, probability_false

Jede Beobachtung braucht zwei Werte. prob_given_true ist die Wahrscheinlichkeit, dass der Sensor on ist, wenn der Raum tatsächlich belegt ist. prob_given_false ist die Wahrscheinlichkeit, dass er on ist, obwohl niemand da ist. Ein guter Bewegungsmelder hat zum Beispiel ein hohes prob_given_true (er löst aus, wenn man da ist) und ein tiefes prob_given_false (er löst selten grundlos aus). Je grösser der Abstand zwischen beiden Werten, desto aussagekräftiger das Signal.

Diese Zahlen muss man nicht perfekt treffen – Schätzungen aus dem eigenen Alltag genügen für den Start. Wichtig ist die Logik: Ein Signal, das fast immer korrekt ist, bekommt einen grossen Abstand; ein unsicheres Signal einen kleinen. Mehrere mittelmässige Hinweise ergeben zusammen ein erstaunlich verlässliches Gesamtbild.

Schritt für Schritt: ein Büro-Sensor

Das folgende Beispiel kombiniert einen Bewegungsmelder, die mmWave-Präsenz und die Kamera-Nutzung des Arbeitslaptops zu einem robusten Büro-Belegungssensor. Die Konfiguration kommt in die configuration.yaml (oder eine ausgelagerte binary_sensor-Datei):


binary_sensor:
  - platform: bayesian
    name: "Büro belegt"
    unique_id: buero_belegt_bayesian
    prior: 0.3
    probability_threshold: 0.8
    observations:
      - platform: state
        entity_id: binary_sensor.hue_motion_sensor_2_bewegung
        to_state: "on"
        prob_given_true: 0.85
        prob_given_false: 0.10
      - platform: state
        entity_id: binary_sensor.presence_sensor
        to_state: "on"
        prob_given_true: 0.90
        prob_given_false: 0.15
      - platform: state
        entity_id: binary_sensor.macbook_pro_von_mike_camera_in_use
        to_state: "on"
        prob_given_true: 0.70
        prob_given_false: 0.02


Der prior von 0.3 sagt: Ohne weitere Hinweise ist das Büro zu 30 Prozent belegt. Die Schwelle von 0.8 sorgt dafür, dass der Sensor erst bei klarer Beweislage schaltet. Die laufende Kamera ist ein starkes Signal: Sie ist fast nie grundlos an (prob_given_false: 0.02), deshalb hebt sie die Wahrscheinlichkeit kräftig, sobald ein Meeting läuft – selbst wenn man minutenlang regungslos zuhört.

Anschliessend bindet eine Automation den neuen Sensor an das Licht – mit einem grosszügigen Ausschalt-Delay als Sicherheitsnetz:


automation:
  - alias: "Bürolicht nach Belegung"
    trigger:
      - platform: state
        entity_id: binary_sensor.buero_belegt
        to: "off"
        for: "00:05:00"
    action:
      - service: light.turn_off
        target:
          entity_id: light.wh_office_light


Feinschliff aus der Praxis

Drei Hinweise sparen Frust. Erstens: Beginnen Sie mit zwei, drei Beobachtungen und ergänzen Sie nach und nach – ein überladener Sensor ist schwer zu durchschauen. Zweitens: Den prior und die Schwelle nicht extrem wählen. Ein prior nahe 0 oder 1 macht den Sensor träge; eine Schwelle von 0.95 verlangt fast Gewissheit und schaltet kaum noch. Werte zwischen 0.7 und 0.85 sind ein guter Startbereich. Drittens: Sie können auch numeric_state-Beobachtungen einbauen, etwa einen Stromzähler des Arbeitsplatzrechners über der Standby-Schwelle – so fliesst sogar der Verbrauch als Indiz ein.

Fazit

Der Bayesian-Sensor verwandelt mehrere unsichere Einzelsignale in eine stabile Aussage über die Belegung eines Raums. Statt sture Timer gegen die Realität kämpfen zu lassen, gewichten Sie Hinweise so, wie ein Mensch es täte – Bewegung, Präsenz, laufendes Gerät, alles zusammen. Fangen Sie mit einem einzigen Raum und drei Beobachtungen an, beobachten Sie ein paar Tage das Verhalten im Verlauf und justieren Sie die Wahrscheinlichkeiten nach. Sie werden überrascht sein, wie schnell das nervige «Licht aus, obwohl ich hier sitze» verschwindet.

← Zurück zur Übersicht