Automation mit "or" und "and" oder "not" funktioniert nicht

atrost

Active member
Hallo Forum,
warum funktioniert das so nicht? Ich habe alle Varianten ausprobiert aber die "Mindestausschaltzeit" läuft und trotzdem läuft die Heizung.
Es soll aber so sein, daß die Heizung nur eingeschaltet wird, wenn einer der Thermostate anfordert und die Mindestausschaltzeit aus ist.
Diese ist ein Timer über eine Automation kann "active" sein oder "idle" sein.


YAML:
alias: WP_Heizung
description: >-
  Wärmepumpe einschalten bei Temperaturanforderung durch Wohnzimmer, Küche, Bad oder
  Büro und wenn Timer Mindestausschaltzeit aus ist
triggers:
  - entity_id:
      - input_boolean.wohnzimmer_anforderung
      - input_boolean.kueche_anforderung
      - input_boolean.bad_anforderung
      - input_boolean.buero_anforderung
    trigger: state
conditions: []
actions:
  - if:
      - condition: or
        conditions:
          - condition: state
            entity_id: input_boolean.wohnzimmer_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.kueche_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.bad_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.buero_anforderung
            state: "on"
      - condition: not
        conditions:
          - condition: state
            entity_id: automation.wp_mindestausschaltzeit
            state: active
    then:
      - type: turn_on
        device_id: 60acce45172a0d02bc03e1d40d9c2ac9
        entity_id: 04a77fd06f9993533a9584866ddcc4c0
        domain: switch
    else:
      - type: turn_off
        device_id: 60acce45172a0d02bc03e1d40d9c2ac9
        entity_id: 04a77fd06f9993533a9584866ddcc4c0
        domain: switch
mode: single
 
Bei der Mindestausschaltzeit hast du die Automatisierung als Bedingung eingetragen, nicht den Sensor.
Nein, er hat den Zustand der Automatisierung als Bedingung eingetragen und das halte ich für richtig.
Ich sehe eher das Problem bei "condition: not". Ich bin mir nicht sicher, ob da wirklich ein
Wenn a oder b oder c UND NICHT D
abläuft. Eventuell mal versuchen, ein UND vor das NOT zu setzen, damit es sicher UND Verknüpft wird.
Ansonsten wäre ein Traces auch mal nicht schlecht.
 
Ergibt sich doch eigentlich aus dem Code.
Code:
        conditions:
          - condition: state
            entity_id: automation.wp_mindestausschaltzeit
            state: active
Ich lese das so, das abgefragt wird, ob die Automatisierung xyz den Status "active" hat, was z.B. der Fall sein könnte, wenn ich eine Automatisierung starte "active" und dann auf ein DELAY aufläuft "bleibt active" und wenn die dann beendet ist, in den status "inaktive" wechselt.
 
Diese ist ein Timer über eine Automation kann "active" sein oder "idle" sein.
Zum Verständnis, ist es etwas, was mittels einer Automatisierung geschaltet wird - dann hätte "automation.wp_mindestausschaltzeit" im Code wohl wenig zu suchen - oder ist es eine Automatisierung, deren eigenen Status Du abfragst? Dafür gäbe es meines Wissens nach nur die Zustände unknown, unavailable, off, on.
 
Hallo Leute,
es ist tatsächlich der Fehler "automation.wp_mindestausschaltzeit". Es handelt ich um einen Timer "timer.wp_mindestausschaltzeit".
Bei diesem kann ich angeben "UND timer.wp_mindestausschaltzeit = idle" oder "NOT timer.wp_mindestausschaltzeit = "active".
Es wird beides als mögliche Konfiguration über die GUI der Automationen angegeben.
Vielen Dank, ich prüfe das morgen und gebe hier das Ergebnis bekannt.
 
Hallo Leute,
ich habe jetzt die Automation wie oben beschrieben und habe "UND timer.wp_mindestausschaltzeit = idle" eingetragen.
Funktioniert aber immer noch nicht.
Offensichtlich kann man den Status des Timers so nicht abfragen.
Jetzt muß ich mal gucken, ob ich nicht einen komplett anderen finde, um den Timer zu berücksichtigen.
Hat jemand eine Idee?
 
Doch, das abfragen des Timers ob "idle" funktioniert. Poste doch dein Programm nochmal wie es jetzt ist. Guck vorher aber mal ob dein Timer auch wirklich "idle" ist.
 
Hallo Janniboy,
der Timer schaltet zwischen "active" und"idle", wir in der HA Doku beschrieben.
YAML:
alias: WP_Heizung
description: >-
  Wärmepumpe einschalten bei Temperaturanforderung durch Wohnzimmer, Küche, Bad,
  Büro und WP_Mindestausschaltzeit
triggers:
  - entity_id:
      - input_boolean.wohnzimmer_anforderung
      - input_boolean.kueche_anforderung
      - input_boolean.bad_anforderung
      - input_boolean.buero_anforderung
    trigger: state
conditions: []
actions:
  - if:
      - condition: or
        conditions:
          - condition: state
            entity_id: input_boolean.wohnzimmer_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.kueche_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.bad_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.buero_anforderung
            state: "on"
      - condition: and
        conditions:
          - condition: state
            entity_id: timer.wp_mindestauschaltzeit
            state: idle
    then:
      - type: turn_on
        device_id: 60acce45172a0d02bc03e1d40d9c2ac9
        entity_id: 04a77fd06f9993533a9584866ddcc4c0
        domain: switch
    else:
      - type: turn_off
        device_id: 60acce45172a0d02bc03e1d40d9c2ac9
        entity_id: 04a77fd06f9993533a9584866ddcc4c0
        domain: switch
mode: single
 
Kann es sein, das die Anforderungen kommen wenn der Timer gerade auf Aktiv steht?
Füge als 5. Trigger mal "Timer wird idle" hinzu.
 
Kann es sein, das die Anforderungen kommen wenn der Timer gerade auf Aktiv steht?
Füge als 5. Trigger mal "Timer wird idle" hinzu.
Du hast die Lösung fast getroffen. Entscheidend ist tatsächlich das triggern des Timers - egal in welche Richtung.
Erst dadurch werden sofort, wenn der Verdichter ausschaltet und damit den Timer auslöst (in einer separaten Automation), wird sofort die Freigabe umgeschaltet.
Schaltet der Timer von ACTIVE zu IDLE, wird geprüft, ob noch immer eine Anforderung anliegt und die Freigabe erteilt.
Schaltet der Timer von IDLE zu ACTIVE, wird sofort die Freigabe gesperrt.
Endlich - das hat bei mir echt lange gedauert aber wenn man genau darüber nachdenkt, kommt man darauf, daß die in den Bedingungen aufgeführten "states" auch getriggert werden sollten, damit das funktioniert.
Wieder was dazugelernt. Folgend das Ergebnis:
YAML:
alias: WP_Heizung
description: >-
  Wärmepumpe einschalten bei Temperaturanforderung durch Wohnzimmer, Küche, Bad,
  Büro und Mindestausschaltzeit
triggers:
  - entity_id:
      - input_boolean.wohnzimmer_anforderung
      - input_boolean.kueche_anforderung
      - input_boolean.bad_anforderung
      - input_boolean.buero_anforderung
      - timer.wp_mindestauschaltzeit
    trigger: state
conditions: []
actions:
  - if:
      - condition: or
        conditions:
          - condition: state
            entity_id: input_boolean.wohnzimmer_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.kueche_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.bad_anforderung
            state: "on"
          - condition: state
            entity_id: input_boolean.buero_anforderung
            state: "on"
      - condition: and
        conditions:
          - condition: state
            entity_id: timer.wp_mindestauschaltzeit
            state: idle
    then:
      - type: turn_on
        device_id: 60acce45172a0d02bc03e1d40d9c2ac9
        entity_id: 04a77fd06f9993533a9584866ddcc4c0
        domain: switch
    else:
      - type: turn_off
        device_id: 60acce45172a0d02bc03e1d40d9c2ac9
        entity_id: 04a77fd06f9993533a9584866ddcc4c0
        domain: switch
mode: single
 
Zuletzt bearbeitet:
Also ohne dieses Forum wäre man echt aufgeschmissen, da HA schon sehr umfangreich ist.
Aber ich liebe das System und werde von Tag zu Tag schlauer. :)
 

Letzte Anleitungen

Statistik des Forums

Themen
5.493
Beiträge
54.223
Mitglieder
5.306
Neuestes Mitglied
ccinfo
Zurück
Oben