BewegungsMelder => Anwesenheit Prüfen

Hallo ich habe aktuell eine Automatisierung. Sie Funktioniert auch gut, jetzt kommt das ABER :smiley:

Kurz gesagt ich habe ein Zigbee Bewegungsmelder, wenn eine Bewegung Stattfindet, Schaltet er mit noch 2 Bedigungungen (Abhängig von der Zeit) eine oder alle Lampen im Bad an. Und schaltet Sie nach 5 min wieder aus.

Nun würde ich aber gern bevor die 5 min Ablaufen, Nochmal Prüfen, Ist noch jemand im Bad?

Hat da jemand eine Idee wie das in einer Schleife laufen kann? Und erst ausgeht bis kein Event mehr kommt mit Bewegung?

1 „Gefällt mir“

Hi, teile bitte deinen Code der Automatisierung, nicht nur den Screenshot. So kann keiner testen, herumprobieren bzw. dir richtig helfen. :slight_smile:

Bei meinen BWM bleibt der Status so lange aktiv, wie sich jemand bewegt. Daher sehen meine autos so aus:

alias: "BEW: Aussen"
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.bew_aussen_occupancy
    to: "on"
    id: Ein
  - trigger: state
    entity_id:
      - binary_sensor.bew_aussen_occupancy
    to: "off"
    id: Aus
    for:
      hours: 0
      minutes: 2
      seconds: 0
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Ein
          - condition: numeric_state
            entity_id: update.lux_terasse
            below: 700
        sequence:
          - data: {}
            target:
              entity_id: light.licht_aussen_flur1_l2
            action: light.turn_on
      - conditions:
          - condition: trigger
            id:
              - Aus
        sequence:
          - data: {}
            target:
              entity_id: light.licht_aussen_flur1_l2
            action: light.turn_off
mode: single

Gruß, Lars

Hey ja sorry ich habe bis jetzt leider nur die GUI benutzt. Und nicht direkt im Code aber ich werde mal den Code posten Moment

alias: Bewegungsmelder_Badezimmer
description: ""
triggers:
  - type: motion
    device_id: c50e42bdd47e297eb5dbdf435513f213
    entity_id: d47f30d1286115269291d0e584b5d0c2
    domain: binary_sensor
    trigger: device
conditions:
  - type: is_illuminance
    condition: device
    device_id: c50e42bdd47e297eb5dbdf435513f213
    entity_id: afa22584ff2397a1e796e0973d67af3e
    domain: sensor
    below: 900
actions:
  - if:
      - condition: time
        after: "06:00:00"
        before: "21:00:00"
    then:
      - type: turn_on
        device_id: 4052abe1c878f5b1e768eb8eff4e12df
        entity_id: eb4c8d6c50ca3da610123b69c9bde036
        domain: light
        brightness_pct: 50
      - action: media_player.play_media
        target:
          entity_id: media_player.echo_badezimmer
        data:
          media:
            media_content_id: play Antenne-Niedersachsen
            media_content_type: custom
            metadata: {}
        enabled: false
      - delay:
          hours: 0
          minutes: 5
          seconds: 0
          milliseconds: 0
      - action: media_player.turn_off
        metadata: {}
        data: {}
        target:
          device_id: c02d8993952b6e3ba7ae6d1f81fc2b2c
        enabled: false
      - type: turn_off
        device_id: 4052abe1c878f5b1e768eb8eff4e12df
        entity_id: eb4c8d6c50ca3da610123b69c9bde036
        domain: light
    else:
      - type: turn_on
        device_id: 72195354fb49ac864d3627cb2976ea43
        entity_id: 390ac1926a19dc48ee6b46cb8a1462af
        domain: light
        brightness_pct: 10
      - delay:
          hours: 0
          minutes: 5
          seconds: 0
          milliseconds: 0
      - type: turn_off
        device_id: 72195354fb49ac864d3627cb2976ea43
        entity_id: 390ac1926a19dc48ee6b46cb8a1462af
        domain: light
mode: single
1 „Gefällt mir“

Lars hat dir ja die richtige Richtung gezeigt… 2 Trigger und dann mit „Auswählen“ arbeiten.

1 „Gefällt mir“

Aber nach Ablauf der 5min geht das Licht kurz aus, auch wenn der Bereich schon wieder belegt ist. Der Modus „neu starten“ würde das verhindern.

Nicht bei meinen BWM - diese halten den Status „belegt“ so lange, wie sie immer wieder eine Bewegung entdecken. Erst wenn ca. 20 Sekunden gar keine Bewegung erkannt wurde, wechselt der Status auf „leer“.

Gruß, Lars

ich arbeite in diesen Fällen gerne mit timern.
Sobald das Licht eingeschaltet wird, egal ob per Automation oder per Hand, startet der timer.
Wenn eine weitere Bewegung erkannt wird, startet der Timer von vorne.
wenn der timer abgelaufen ist, prüfe ich, ob noch eine Bewegung/Anwesenheit vorhanden ist, falls ja, starte ich den timer erneut. Falls nein, schalte ich das Licht aus.

Vorteile dieser Lösung:

  • sie ist robust und übersteht auch einen HA Restart
  • sie schaltet auch manuell eingeschaltetes Licht aus.
  • sehr flexibel

Hier ein Ausschnitt einer meiner Automatisierungen. Das Licht wird bei Anwesenheit eingeschaltet, wenn es dunkel genug ist. Das Licht wird ausgeschaltet, wenn es hell genug ist oder niemand mehr im Raum (Bad) ist.
Ich verwende recht viele Variablen, um die Automatisierung leicht an neue Bedürfnisse anzupassen oder als Kopie zu verwenden. (Mit Blueprints werde ich da nicht so richtig glücklich bislang)

Hier geht es um eine Komponente, die gleichzeitig Bewegungsmelder und Leuchte ist, und auch noch das Umgebungslicht misst. Lasst Euch also nicht von den Namen verwirren :wink:
Den Teil der Automatisierung für den Nachtmodus (Nightglow, und geringere Helligkeit bei Bewegung) habe ich weggelassen :wink:

alias: Bad OG Nachtlicht (Bewegung, Timer)
description: ""
triggers:
  - id: bewegung_an
    trigger: state
    entity_id:
      - binary_sensor.bewegung_7z_occupancy
      - binary_sensor.bewegung_6z_occupancy
    to: "on"
  - id: bewegung_aus
    trigger: state
    entity_id:
      - binary_sensor.bewegung_7z_occupancy
      - binary_sensor.bewegung_6z_occupancy
    to: "off"
  - id: timer_fertig
    trigger: event
    event_type: timer.finished
    event_data:
      entity_id: timer.nachtlicht_bad_og
  - id: licht_eingeschaltet
    trigger: state
    entity_id: light.bewegung_7z
    to: "on"
    alias: Sobald das Licht eingeschaltet wird
  - id: licht_ausgeschaltet
    trigger: state
    entity_id: light.bewegung_7z
    to: "off"
    alias: Sobald das Licht ausgeschaltet wird
  - id: daemmerung_endet
    trigger: state
    entity_id: binary_sensor.dammerung_bad_og_fenster
    to: "off"
    alias: Sobald es hell ist
  - id: daemmerung_beginnt
    trigger: state
    entity_id: binary_sensor.dammerung_bad_og_fenster
    to: "on"
    alias: Sobald es dunkel ist
conditions: []
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ is_daytime and not is_nightmode}}"
        sequence:
          - choose:
              - conditions:
                  - condition: trigger
                    id: timer_fertig
                sequence:
                  - if:
                      - condition: template
                        value_template: "{{ not is_bewegung and is_light_on }}"
                        alias: Keine Bewegung und Licht an => Licht aus
                    then: []
                  - choose:
                      - conditions:
                          - condition: template
                            value_template: "{{ not is_bewegung and is_light_on }}"
                            alias: Keine Bewegung und Licht an => Licht aus
                        sequence:
                          - action: light.turn_off
                            target:
                              entity_id: "{{ light_entity }}"
                            data: {}
                      - conditions:
                          - alias: Hell genung und Licht an => Licht aus
                            condition: template
                            value_template: "{{ not is_daemmerung and is_light_on }}"
                        sequence:
                          - action: light.turn_off
                            target:
                              entity_id: "{{ light_entity }}"
                            data: {}
                    default:
                      - action: timer.start
                        target:
                          entity_id: "{{ timer_entity }}"
                        data:
                          duration: "{{ timer_duration }}"
              - conditions:
                  - condition: trigger
                    id:
                      - bewegung_an
                sequence:
                  - if:
                      - condition: template
                        value_template: "{{ is_daemmerung and not is_light_on }}"
                    then:
                      - action: light.turn_on
                        data: "{{ light_data_day_active }}"
                        target:
                          entity_id: "{{ light_entity }}"
                    alias: Dunkel und Licht aus => Licht an
              - conditions:
                  - condition: trigger
                    id:
                      - bewegung_aus
                sequence:
                  - action: timer.start
                    target:
                      entity_id: "{{ timer_entity }}"
                    data:
                      duration: "{{ timer_duration }}"
              - conditions:
                  - condition: trigger
                    id:
                      - daemmerung_beginnt
                sequence:
                  - if:
                      - condition: template
                        value_template: "{{ is_bewegung and not is_light_on }}"
                    then:
                      - action: light.turn_on
                        target:
                          entity_id: "{{ light_entity }}"
                        data: "{{ light_data_day_active }}"
                    alias: Bewegung und Licht aus => Licht an
              - conditions:
                  - condition: trigger
                    id:
                      - daemmerung_endet
                sequence:
                  - if:
                      - condition: template
                        value_template: "{{ is_light_on }}"
                    then:
                      - action: timer.start
                        target:
                          entity_id: "{{ timer_entity }}"
                        data:
                          duration: "{{ timer_duration }}"
              - conditions:
                  - condition: trigger
                    id:
                      - licht_eingeschaltet
                sequence:
                  - action: timer.start
                    target:
                      entity_id: "{{ timer_entity }}"
                    data:
                      duration: "{{ timer_duration }}"
              - conditions:
                  - condition: trigger
                    id:
                      - licht_ausgeschaltet
                sequence:
                  - action: timer.cancel
                    target:
                      entity_id: "{{ timer_entity }}"
        alias: Daytime und nicht Nightmode (Tagesmodus)
variables:
  timer_duration: "00:02:00"
  sensor_is_day: binary_sensor.is_not_nighttime
  timer_entity: timer.nachtlicht_bad_og
  daemmerung_entity: binary_sensor.dammerung_bad_og_fenster
  light_entity: light.bewegung_7z
  is_bewegung: >-
    {{ is_state('binary_sensor.bewegung_7z_occupancy', 'on') or is_state
    ('binary_sensor.bewegung_6z_occupancy', 'on') }}
  is_daemmerung: "{{ is_state('binary_sensor.dammerung_bad_og_fenster', 'on') }}"
  is_light_on: "{{ is_state(light_entity, 'on') }}"
  light_data_day_active: >
    {% set data = {} %} {% set data = data | combine({'brightness_pct': 85 }) %}
    {% set data = data | combine({'color_temp': 300 }) %}  {% set data = data |
    combine({'transition': 0 }) %} {{ data }}
2 „Gefällt mir“

Genau, und dann startet der Ausschaltvorgang und die Lampe geht aus auch wenn du schon wieder den Bereich betreten hast.

Das klingt gut, ich probiere das mal einzubauen, bei der Lösung aus dem vorigen Post bin ich gescheitert :rofl:

Da musst du mir nochmals auf die Sprünge helfen - nehmen wir mal folgendes Szenario an:

  1. der BWM meldet 20 Sekunden NACH der letzte Bewegung den „frei“ Status
  2. Solange ich mich also alle 20 Sekunden bewege, bleibt es bei „belegt“
  3. Verlasse ich nun den BWM für mehr als 20 Sekunden wird nach n-Minuten (festgelegte Zeit in der Automatisierung) das Licht ausgeschaltet.
  4. Komme ich aber innerhalb der 20 Sekunden oder auch auch nur währender der n-Minuten zurück in den BWM Bereich, geht kein Licht aus.

Habe ich etwas vergessen?

Gruß, Lars

3.stimme ich dir zu. :wink:
4.nur den ersten Teil, danach läuft die Ausschaltung für 2min los und blockiert die Einschaltung. Im single Modus wird nicht neu getriggert.

Hallo,
alternativ könntest du auch einen Präsenzmelder (mit mmWave-Radar) verwenden.
Die meisten Präsenzmelder benötigen jedoch eine feste Stromversorgung.

Vorteil: Eine Präsenz wird auch erkannt, wenn du dich im Bad nicht bewegst.

Heute habe ich mich zufällig mit einer ähnlichen Aufgabe beschäftigt.
Im Badezimmer soll das Licht automatisch ein- und ausgeschaltet werden.

Das Licht soll allerdings auch dann an bleiben, wenn man mal eine längere „Sitzung“ bei völliger Bewegungslosigkeit abhält. :toilet: :hourglass:

Vor einiger Zeit habe ich das mit einem Präsenzmelder versucht, bin aber daran gescheitert, dass der PM „sieht“ wenn sich bei geöffnetem bzw. gekipptem Fenster, die Lamellenjalousie im Wind bewegt. :wind_face:

Jetzt habe ich einen anderen Ansatz verfolgt.

  • In die Deckenleuchte habe ich eine WLAN-LED-Lampe eingesetzt.
  • Von innen, auf dem Türrahmen habe ich einen sehr preiswerten Zigbee-PIR-Melder, welcher auch eine Entität für Helligkeit liefert, angebracht.
  • Zusätzlich wurde die Tür mit einem Aqara-Fensterkontakt ausgerüstet.

Zur Funktion:

  • betritt man den Raum, wird durch den PIR-Melder, in Abhängikeit der aktuellen Helligkeit, das Licht eingeschaltet.
  • wenn dann die Tür geschlossen wird, was bei diversen „Sitzungen“ ja normal ist, wird ein Helfer gesetzt.
  • dieser Helfer sorgt dafür, dass das Licht an bleibt auch wenn die Haltezeit des PIR-Melders ablaufen sollte.
  • erst wenn man nach der „Sitzung“ die Tür wieder öffnet und den Raum verlässt, wird das Ausschalten frei gegeben und das Licht wird mit etwas Nachlaufzeit ausgeschaltet.
  • geht man nur kurz in’s Bad ohne beim Herein- und Herausgehen die Tür zu schliessen, geht das Licht an und es läuft die normale Haltezeit ab und das Licht geht wieder aus.

Mal seh’n ob es in Zukunft irgendwelche Grenzfälle gibt, bei denen das nicht wie gewünscht funktioniert.
Bisher läuft das einwandfrei.

Etwas off-topic an dieser Stelle ist die Tatsache, dass ich diese Automation mit Node-RED umgesetzt habe, aber sicher kann man diese Vorgehensweise auch mit einer HA-Automation realisieren.

3 „Gefällt mir“

:slight_smile:
ja, die Grenzfälle … wie zum Beispiel beim Start der Sitzung ist es noch hell, und dann gehen die Rollladen runter :wink:
oder umgekehrt, doch das wäre nicht so schlimm :slight_smile:

Leider (oder zum Glück?) habe ich dort keinen Rollladen, nur eine manuell betätigte Lamellenjalousie. :wink:
Aber einen automatischen Rollladen würde ich in die Automation mit einbauen. :blush:

Haha ja das klingt echt gut, Zigbee Fenster Kontakt hab ich auch noch​:+1:t2::face_with_hand_over_mouth:.

Frage ist wie ich das mit dem Helfer mache und so weiter in Home assistant automation?

Weil mit dem Code war ich leider ein bisschen überfordert das hat nichts ausgelöst bei mir.

Ich habe Bewegungs- und Präsenzmelder bei mir kombiniert.
Der Bewegungsmelder macht das Licht an. Anschließend überwacht der Präsenzmelder die Anwesenheit. Wird keine Präsenz mehr erkannt, Licht aus.

Für Bad und WC kombiniere ich den Bewegungsmelder mit einem Kontaktsensor für die Tür, es wird nicht mehr dunkel, wenn der BWM mal nicht mehr triggert (längere „Sitzung“ oder man verschwindet hinterm Duschvorhang). Das funktioniert sehr zuverlässig, solange man auch wirklich die Tür schließt, wenn man sich im jeweiligen Raum aufhält.
Benötigt werden neben dem Kontaktsensor und dem BWM noch ein Template Binary Sensor und ein Gruppenhelfer. Letzterer löst die Automation aus.

Der BWM: binary_sensor.bewegung_und_licht_bad_spultisch_occupancy

Der Kontaktsensor: binary_sensor.badezimmertur_kontakt_contact

Der Template Sensor, gehört in die configuration.yaml (Neustart HA nach dem Erstellen!):

template:
  - trigger:
      - trigger: state
        entity_id: binary_sensor.badezimmertur_kontakt_contact
        to: "on"
      - trigger: state
        entity_id: binary_sensor.badezimmertur_kontakt_contact
        to: "off"
        for:
          seconds: 15
      - trigger: state
        entity_id: binary_sensor.bewegung_und_licht_bad_spultisch_occupancy
        to: "on"
    binary_sensor:
      - name: "Bee In The Hive"
        device_class: occupancy
        icon: mdi:account-box-outline
        state: >
          {{ is_state('binary_sensor.badezimmertur_kontakt_contact', 'off') and is_state('binary_sensor.bewegung_und_licht_bad_spultisch_occupancy', 'on') }}

Ich habe ihn “Bee In The Hive” genannt, weil Blacky (der mit den vielen Blueprints) aus der Home Assistant Community (da habe ich das ganze gefunden) ihn auch so benannt hat und weil ich den Namen ganz nett finde.
Wie oben im Code ersichtlich, habe ich als Zeitverzögerung für die Tür 15 Sekunden genommen, das passt hier ganz gut, der BWM meldet nach 10 Sekunden „frei“, wenn keine Bewegung mehr erkannt wird.

Jetzt noch der Gruppenhelfer (Auslöser der Automation), binary_sensor.bad_bee_in_the_hive_gruppenhelfer bei mir:
Zur Gruppe gehören der Template Sensor (Bee In The Hive) und der BWM
(binary_sensor.bewegung_und_licht_bad_spultisch_occupancy).

Die Automation:

alias: Bad Bee-in-the-hive Beweg.-Autom. für Oberlicht
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.bad_bee_in_the_hive_gruppenhelfer
    to: "on"
conditions:
  - condition: or
    conditions:
      - condition: sun
        before: sunrise
        before_offset: "+00:30"
        after: sunset
        after_offset: "-00:30"
      - condition: numeric_state
        entity_id: sensor.bewegung_und_licht_bad_spultisch_illuminance
        below: 1700
actions:
  - if:
      - condition: state
        entity_id: binary_sensor.helfer_tageszeit_f_bad_oberlicht_automatik
        state: "on"
    then:
      - action: light.turn_on
        metadata: {}
        data:
          brightness_pct: 10
        target:
          device_id: 6e1b1504028e667db55aa3069fd166c3
    else:
      - action: light.turn_on
        metadata: {}
        data:
          brightness_pct: 100
        target:
          device_id: 6e1b1504028e667db55aa3069fd166c3
  - wait_for_trigger:
      - trigger: state
        entity_id:
          - binary_sensor.bad_bee_in_the_hive_gruppenhelfer
        to: "off"
        for:
          hours: 0
          minutes: 0
          seconds: 10
  - action: light.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: light.oberlicht
mode: restart

Den Tageszeithelfer binary_sensor.helfer_tageszeit_f_bad_oberlicht_automatik habe ich noch eingebaut, damit es mitten in der Nacht nicht so sehr hell wird (glaube, zwischen 1 und 6 Uhr habe ich für den genommen), kann man auch weglassen.
Wie man sieht, soll das Licht nur zu bestimmten Tageszeiten angehen, gesteuert von Sonnenuntergang und Sonnenaufgang.
Der sensor.bewegung_und_licht_bad_spultisch_illuminance ist ein Helligkeitssensor (bei mir im BWM mit drin) und wird in der Automation dafür genutzt, das Licht auch tagsüber einzuschalten, falls es wegen Bewölkung oder sowas mal zu dunkel wird.
Wenn der Gruppenhelfer jetzt 10 Sekunden lang „off“ meldet, dauert es bei mir insgesamt etwa 20 Sekunden, bis das Licht ausgeht, nachdem das Bad verlassen wurde.

Das Ganze läuft hier jetzt schon seit etwa einem 3/4 Jahr sehr zuverlässig und zeigt dass es auch ohne Präsenzmelder geht, vielleicht sogar besser, je nach Situation vor Ort.
Mehr Infos zum Sensor „Bee In The Hive“ in der HA-Community hier

2 „Gefällt mir“

Das ist ne gute Umsetzung. Jetzt müsste man nur noch, je nach Tageszeit, verschiedene Lichtszenen einbauen…nachts = Nachtlicht, morgens= gedimmt…

1 „Gefällt mir“