Wenn "Nicht" Bedingung greift irgendwie manchmal nicht

Hi! Ich kämpfe hier auf mehreren Baustellen um irgendwie ein Problem zu Lösen…

Ständig wird mein “ZuhauseGeo” Schalter auf aus gesetzt OBWOHL er das eigentlich nicht sollte denn es ist mindestens eine der Voraussetzungen seit schon gestern erfüllt.

Eben Am Beispiel hat Dominic den Zustand auf Aus gesetzt obwohl er überhaupt nicht weg war…

Was habe ich in meiner Konfiguration übersehen?

Die Probleme macht der “Sonst” Abschnitt der ZuhauseGEO AUSschalten soll wenn ALLE drei seit 3 Minuten “NICHTAnwesend” sind.

Dementsprechend sollte solange einer immer da ist was ja so war ZuhauseGEO immer AN bleiben… Klappt aber nicht so wirklich.

Hier der ganze Yaml Code:

alias: ZuhauseGEO
description: ""
triggers:
  - trigger: state
    entity_id:
      - device_tracker.kb2003
    id: David
  - trigger: state
    entity_id:
      - device_tracker.oneplus9pro
    id: Dominic
  - trigger: state
    entity_id:
      - device_tracker.pixel8
    id: Chrissi
conditions: []
actions:
  - if:
      - condition: trigger
        id:
          - Chrissi
          - Dominic
          - David
        enabled: false
      - condition: or
        conditions:
          - condition: state
            entity_id: device_tracker.kb2003
            state: home
            for:
              hours: 0
              minutes: 1
              seconds: 0
          - condition: state
            entity_id: device_tracker.oneplus9pro
            state: home
            for:
              hours: 0
              minutes: 1
              seconds: 0
          - condition: state
            entity_id: device_tracker.pixel8
            state: home
            for:
              hours: 0
              minutes: 1
              seconds: 0
      - condition: state
        entity_id: input_boolean.zuhausegeo
        state: "off"
    then:
      - action: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.zuhausegeo
    else:
      - if:
          - condition: not
            conditions:
              - condition: state
                entity_id: device_tracker.kb2003
                state: home
                for:
                  hours: 0
                  minutes: 3
                  seconds: 0
              - condition: state
                entity_id: device_tracker.pixel8
                state: home
                for:
                  hours: 0
                  minutes: 3
                  seconds: 0
              - condition: state
                entity_id: device_tracker.oneplus9pro
                state: home
                for:
                  hours: 0
                  minutes: 3
                  seconds: 0
          - condition: state
            entity_id: input_boolean.zuhausegeo
            state: "on"
        then:
          - action: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.zuhausegeo
mode: single

Auszug aus dem Tracing:

Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
choice: then
if
Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
result: true
if/condition/0
Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
result: null
if/condition/1
Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
result: true
if/condition/1/conditions/0
Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
result: true
if/condition/1/conditions/0/entity_id/0
Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
result: true
state: home
duration: '2024-12-04T15:02:35.923790+00:00'
if/condition/2
Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
result: true
if/condition/2/entity_id/0
Ausgeführt: 4. Dezember 2024 um 16:03:35 
Ergebnis:
result: true
state: 'off'
wanted_state: 'off'

und die GEÄNDERTEN Variablen aus dem TRACING:

this:
  entity_id: automation.zuhause_geo
  state: 'on'
  attributes:
    id: '1733129295075'
    last_triggered: '2024-12-04T15:03:35.719170+00:00'
    mode: single
    current: 0
    friendly_name: ZuhauseGEO
  last_changed: '2024-12-04T15:01:27.999201+00:00'
  last_reported: '2024-12-04T15:03:35.723049+00:00'
  last_updated: '2024-12-04T15:03:35.723049+00:00'
  context:
    id: 01JE935C16QDW225JVBMY86YRW
    parent_id: 01JE935C15S997MZRH0BTDSMPC
    user_id: null
trigger:
  id: Dominic
  idx: '1'
  alias: null
  platform: state
  entity_id: device_tracker.oneplus9pro
  from_state:
    entity_id: device_tracker.oneplus9pro
    state: home
    attributes:
      source_type: gps
      latitude: 52.356517
      longitude: 9.2860122
      gps_accuracy: 100
      altitude: 101
      course: 0
      speed: 0
      vertical_accuracy: 100
      friendly_name: Dominic
    last_changed: '2024-12-04T15:03:35.717425+00:00'
    last_reported: '2024-12-04T15:03:35.717425+00:00'
    last_updated: '2024-12-04T15:03:35.717425+00:00'
    context:
      id: 01JE935C15S997MZRH0BTDSMPC
      parent_id: null
      user_id: null
  to_state:
    entity_id: device_tracker.oneplus9pro
    state: home
    attributes:
      source_type: gps
      latitude: 52.356517
      longitude: 9.2860122
      gps_accuracy: 100
      altitude: 101
      course: 0
      speed: 0
      vertical_accuracy: 100
      friendly_name: Dominic
    last_changed: '2024-12-04T15:03:35.918535+00:00'
    last_reported: '2024-12-04T15:03:35.918535+00:00'
    last_updated: '2024-12-04T15:03:35.918535+00:00'
    context:
      id: 01JE935C7EEBECGN3S54Y8ESAR
      parent_id: null
      user_id: null
  for: null
  attribute: null
  description: state of device_tracker.oneplus9pro

Und hier sieht man das dominic seit stuuuuuunden nicht weg war und trotzdem denkt das die Automatisierung…

Hat jemand eine IDEE?

Du verwendest als Auslöser


  - trigger: state
    entity_id:
      - device_tracker.kb2003
    id: David

Und gleichzeitig die Bedingung


          - condition: state
            entity_id: device_tracker.kb2003
            state: home
            for:
              hours: 0
              minutes: 1
              seconds: 0

Die Bedingung wird nie erfüllt sein.
Da die Bedingung nur wenige ms nach dem auslösen geprüft wird. Da kann unmöglich der Device Tracker bereits 1 Minute lang zuhause bzw. Abwesend sein.

Gruß
Osorkon

Hmm… da wären wir wieder bei den Blitzen im Kopf…

Aber wie muss das dann lauten wenn er ja immer prüfen soll und wenn sich was ändert er dann nach 3 minuten erst auslösen soll?

Er soll ja auslösen aber dann prüfen ob die Bedingungen greifen und dann erst ausschalten…

Oder hab ich da was falsch verstenden, mal wieder…

Moin,
darf ich mal Fragen warum du nicht einfach mit der Home Zone zone.home arbeitest?
grafik

Der Zustand zeigt dir immer an wie viele in der Zone sind.
0 wenn keiner da ist 1 bei einem 2 wenn zwei da sind…

LG
Tobi

Auslöser David für 3 Minuten zuhause
Oder David für 3 Minuten abwesend.

Wenn es Personen bezogene Aktionen sein sollen.

Wenn es nur generell drum geht ob das Haus bewohnt oder leer ist mit der Zone Home arbeiten, wie von @totow angemerkt.

Keiner Zuhause für 3 min


triggers:
  - trigger: numeric_state
    entity_id:
      - zone.home
    for:
      hours: 0
      minutes: 3
      seconds: 0
    below: 1

Jemand Zuhause für 3 Minuten


triggers:
  - trigger: numeric_state
    entity_id:
      - zone.home
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 0

Gruß
Osorkon

Auslöser: zone.home, Veränderung für eine Minute.
Aktion: Wenn zone.home größer null, dann Schalter ein, sonst zwei Minuten warten und Schalter aus.
Automatisierung auf Restart.

Manchmal ist es einfacher als gedacht!

Vielen Dank euch für die Hilfe und Tipps!

Habe es jetzt so gelöst:

alias: ZuhauseGEO
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - zone.home
    for:
      hours: 0
      minutes: 1
      seconds: 0
    below: 1
    id: Home ABwesend seit 1Min
  - trigger: numeric_state
    entity_id:
      - zone.home
    id: Home ANwesend
    above: 0
conditions: []
actions:
  - if:
      - condition: trigger
        id:
          - Home ANwesend
      - condition: state
        entity_id: input_boolean.zuhausegeo
        state: "off"
    then:
      - action: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.zuhausegeo
    else:
      - if:
          - condition: trigger
            id:
              - Home ABwesend seit 1Min
          - condition: state
            entity_id: input_boolean.zuhausegeo
            state: "on"
        then:
          - action: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.zuhausegeo
mode: single