Automation dauerhaft laufen lassen

Ich möchte eine Schaltsteckdose einschalten, wenn die Temperatur im Wohnzimmer für 10 Minuten unter 20°C gesunken ist. Das soll zwischen 6 und 22 Uhr überprüft werden. Es gibt noch eine spiegelbildliche Automation, die in der gleichen Weise die Steckdose wieder abschaltet, sobald die Temperatur für 10 Minuten über 20°C war. Das habe ich im Automatisierungseditor zusammengeklickt:

alias: Heizlüfter an
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.temperatur_wohnzimmer
    for:
      hours: 0
      minutes: 10
      seconds: 0
    below: 20
conditions:
  - condition: time
    after: "06:00:00"
    before: "22:00:00"
  - condition: state
    entity_id: light.pw_sonoff02
    state:
      - "off"
actions:
  - action: light.turn_on
    metadata: {}
    target:
      entity_id: light.pw_sonoff02
    data: {}
mode: restart

DIese Automation ist genau einmal gestartet (es gibt nur einen Traces-Eintrag), schaltete da die Steckdose ein und danach passierte nichts mehr, obwohl ich die Steckdose manuell ausgeschaltet habe und die Temperatur dauerhaft unter 20°C lag.

Was übersehe ich?

Daran liegt es. Dein Trigger sagt:
Sobald die Temperatur unter 20° fällt.

Wenn sie dauerhaft unter 20° liegt, kann der Schwellwert-Trigger nicht auslösen.

Wenn die Temperatur bereits vor 6 Uhr unter dem Schwellenwert lag, um diesen Zustand ebenfalls zu berücksichtigen, füge den Trigger 6 Uhr ein und zusätzlich die Besingung Temperatur unter x .

Wenn Du auch um 6 Uhr die 10 Minuten berücksichtigt willst. Kannst Du Dir einen Trigger based Template Sensor (Yaml) erstellen und diesen in der Automatisierung als Trigger und Bedingung verwenden.

Gruß Osorkon

“for 10 minutes below 20”? das müsste nach 10 minuten auf wahr springen, dachte ich? Da ist doch ein Wert gefragt und kein Schwellendurchgang?

Doch, sind Schwellwert-Trigger.

Nimm einach noch 6 Uhr als Trigger mit auf und bei den Bedingungen nimmst du noch < 20° mit auf.

Nachfrage: einfach als zusätzlichen Trigger 6 Uhr und als zusätzliche Bedingung <20? So etwa:

alias: Heizlüfter an
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.temperatur_wohnzimmer
    for:
      hours: 0
      minutes: 10
      seconds: 0
    below: 20
  - trigger: time_pattern
    minutes: /5
conditions:
  - condition: time
    after: "06:00:00"
    before: "22:00:00"
  - condition: state
    entity_id: light.pw_sonoff02
    state:
      - "off"
  - condition: numeric_state
    entity_id: sensor.temperatur_wohnzimmer
    below: 20
actions:
  - action: light.turn_on
    metadata: {}
    target:
      entity_id: light.pw_sonoff02
    data: {}
mode: restart

Wird das nicht jetzt alle 5 Minuten auslösen, auch wenn die Temperatur noch nicht mindestens 10 Minuten zu niedrig war? Da ist die Hysterese ja weg…

Mit dem Time-Pattern geht es auch, dachte eher an 6 Uhr.
Mit dem Zeitraster bräuchtest du denn anderen Trigger nicht mehr.

Ja wird es. Würde ich so nicht machen.

Leg dir einen binary_sensor-Helfer an, der auf on bzw. off wechselt, wenn die Temperatur für 10 Min unter 20 fällt (separate Automation).

In der eigentlichen Automation sind der Helfer und 6 Uhr die Auslöser und die Bedingung sind ebenfalls 6 Uhr und der Helfer.

1 „Gefällt mir“

Der Helfer ist ja imho nicht nötig, wenn er aus dem time-pattern eine feste Zeit macht.

1 „Gefällt mir“

Mmn ist der Helfer notwendig. Denn wenn um 5:58 Uhr die Temperatur unter 20 fällt, wird um 6 Uhr ausgelöst und auch geschaltet. In den Bedingungen gibt es nicht “unter 20 für 10 Min.”.

Genau, das gibt es nicht. Danke für deinen Vorschlag, das versuche ich mal.

[Edit] Passt irgendwie immer noch nicht. Ich habe einen boolean Helfer Wohnzimmer kalt angelegt und zwei Automationen, die ihn an- und ausschalten sollen:

alias: WZ_kalt_Trigger
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.temperatur_wohnzimmer
    for:
      hours: 0
      minutes: 10
      seconds: 0
    below: 20
conditions: []
actions:
  - action: input_boolean.turn_on
    metadata: {}
    target:
      entity_id: input_boolean.wohnzimmer_kalt
    data: {}
mode: restart

und

alias: WZ_warm_Trigger
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.temperatur_wohnzimmer
    for:
      hours: 0
      minutes: 5
      seconds: 0
    above: 20
conditions: []
actions:
  - action: input_boolean.turn_off
    metadata: {}
    target:
      entity_id: input_boolean.wohnzimmer_kalt
    data: {}
mode: restart

Die Automationen für das An- und Abschalten des Lüfters sind:

alias: Heizlüfter an
description: ""
triggers:
  - trigger: time
    at: "06:00:00"
  - trigger: state
    entity_id:
      - input_boolean.wohnzimmer_kalt
    to:
      - "on"
conditions:
  - condition: time
    after: "06:00:00"
    before: "22:00:00"
  - condition: state
    entity_id: light.pw_sonoff02
    state:
      - "off"
  - condition: state
    entity_id: input_boolean.wohnzimmer_kalt
    state:
      - "on"
actions:
  - action: light.turn_on
    metadata: {}
    target:
      entity_id: light.pw_sonoff02
    data: {}
mode: restart

und

alias: Heizlüfter ausschalten
description: ""
triggers:
  - trigger: time_pattern
    minutes: /5
    hours: "*"
conditions:
  - condition: state
    entity_id: light.pw_sonoff02
    state:
      - "on"
  - condition: state
    entity_id: input_boolean.wohnzimmer_kalt
    state:
      - "off"
actions:
  - action: light.turn_off
    metadata: {}
    target:
      entity_id: light.pw_sonoff02
    data: {}
mode: restart

Der Zielschalter wird aber nicht ausgelöst - warum nicht?

Hier müsste dann ja der input boolean und kurz vor 22:00 Uhr als Trigger gesetzt werden.

alias: Heizlüfter aus
description: ""
triggers:
  - trigger: time
    at: "21:59:55"
  - trigger: state
    entity_id:
      - input_boolean.wohnzimmer_kalt
    to:
      - "off"
conditions:
  - condition: time
    after: "06:00:00"
    before: "22:00:00"
  - condition: state
    entity_id: light.pw_sonoff02
    state:
      - "on"
  - condition: state
    entity_id: input_boolean.wohnzimmer_kalt
    state:
      - "off"
actions:
  - action: light.turn_off
    metadata: {}
    target:
      entity_id: light.pw_sonoff02
    data: {}
mode: single

Deine Variante verstehe ich nicht so ganz. Ich würde das übersetzen in “löse um 21:59:55 aus, sowie dann, wenn Wohnzimmer_kalt auf off wechselt. Wenn dann die Zeit zwischen 6 und 22 Uhr ist und der Schalter an ist und Wohnzimmer_kalt off ist, schalte den Schalter aus”.

Das hätte für mich die Lücke, dass nach 22 Uhr nicht mehr abgeschaltet wird, wenn Wohnzimmer_kalt erst danach auf off wechselt - der Schalter bliebe an.

Abgesehen davon: in meiner Variante schaltet der WZ_kalt_Trigger nicht, wenn es beim Aktivieren der Automation schon länger als 10 Minuten unter 20 Grad hat. Warum nicht? Es müsste wohl eine Bedingung wie “seit mehr als 10 Minuten” geben. Gibt es nicht, oder?

Ich hatte ich daran orientiert:

Aber die Bedingungen kannst du ja setzen wie du willst.

Warum sollte das passieren? Warum deaktivierst du die Automation? Davon war bisher nie die Rede.
Dann müsstest du als Trigger auch noch irgendwie die Aktivierung der Automation mit rein nehmen.

Mache ich gar nicht. Mir fiel nur auf, dass nach ändern und Speichern der Automation quasi nicht bei Null begonnen wird, wie ich es erwartet hätte, so dass das “10 Minuten unter 20 Grad” überhaupt nicht bemerkt wird. Erst nach einem Sprung über die 20 Grad irgendwann später und erneutem Absinken reagiert der Trigger.

Das hatte ich oben schon geschrieben: Schwellenwert-Trigger!

Das hatte ich auch oben schon verstanden :grinning_face_with_smiling_eyes:

Das bedeutet nur z.B., dass die ganze Chose nie aktiv würde, wenn nach Neustart von HA oder dieser Automation die Temperatur bereits unter 20 Grad liegt. Deswegen suche ich nach einer Möglichkeit, das abzubilden. Ich komme von der C++ -Programmierung, da würde man beim Start anfangen zu messen und nach 10 Minuten unter 20 Grad triggern - das Initialproblem wie bei der Automation tritt da nicht auf.

doch, die Chose würde spätestens um 6 Uhr aktiv.

(und gerade bei einem Neustart von HA würde es vermutlich nach 10 Min. triggern, da der Zustand vermutlich von unknown, unavailable, 0 o.ä. triggert)