Automation auslösen unter einer definierten Temperatur, NICHT wenn diese erreicht wird

Sorry, wahrscheinlich eine zu doofe Frage aber ich bin neu im Geschäft, habe versucht über die Suche zu finden, auch bei Google, war aber nicht das richtige dabei.
Folgendes Problem:
Ich habe einen Aussentemperatursensor, funktioniert und ist eingebunden.
Ich möchte eine Scheibenheizung betreiben wenn die Temperatur unter zB -4 Grad fällt. Die soll dann etwa eine Stunde laufen, wenn immer noch unter -4 °C wieder etc (Zeit hier nur Beispielhaft…)
Dazu habe ich die Automation (visuell) erstellt.
Funktioniert aber nicht. Wir haben -3, aber die Automation wird nicht ausgelöst.
Ich habe in den Triggern gesehen, dass bei numerischen Trigger ( Numeric state trigger) die Aktion nur ausgelöst wird, wenn der Wert erreicht wird. Nun weis ich nicht was in der Automation angezogen wird, ich vermute mal dieser, weil ich die Aktion auslösen kann. Aber wie kann ich erreichen, das die Automation ausgelöst wird wenn der Wert bereits existiert?
Beim ioBroker gab es sowas wie “Wenn x kleiner als dann mache”…
Der Trigger als Yaml sieht so aus:

type: temperature
platform: device
device_id: b96aa0d91f6697e3d27531f26d9571a5
entity_id: 71af2e44319f42e01c7218527011c15d
domain: sensor
below: -4
for:
  hours: 1
  minutes: 10
  seconds: 10

Danke für Euren input!

:crayon:by HarryP: Codezeilen formatiert

Herzlich willkommen im Forum.

Dein Problem ist, dass der Trigger erst auslöst, wenn die Temperatur für die eingestellte Dauer unter minus vier Grad ist. Die Zeitdauer muss deshalb raus, dann löst er aus, sobald die Temperatur unter den eingestellten Wert fällt.

Du könntest dann mit dem Einschalten der Scheibenheizung einen Timer-Helfer starten. Dessen Ablauf triggert eine Abfrage, ob die Temperatur immer noch unter minus vier Grad ist, und wenn ja, startet der Timer wieder neu. Wenn nein, schaltet die Scheibenheizung ab (Wenn-dann-sonst). Das Schöne am Timer ist, dass er, wenn Du “Wiederherstellen?” auswählst, auch einen HA-Neustart überlebt.

Du kannst zwei Automationen daraus machen, aber es geht auch in einer. Dann musst Du den Triggern IDs geben und mit “Ausgelöst durch” zwei Wenn-dann-Aktionen bauen.

Ertsmal danke für deine Antwort.
Also, das JETZT -4 Grad eingestellt sind liegt daran, dass ich testen will ob die Automation auslöst wenn er die -4Grad “durchwandert” (zZt sind es -3.9) . Ich hatte den auf 2 und nichts ist passiert - obwohl wir gerade -2 hatten.

Der löst schon beim Durchwandern aus. Du darfst nur keine Zeitdauer angeben.

Aber Du kannst dafür auch den numerischen Trigger verwenden. Der löst natürlich nicht aus, wenn der Wert erreicht wird, denn die Bedingungen lauten ja über und unter.

Arrg, ich habe die falsche Zeit geändert! Sorry. der soll für eine Stunde laufen … aber nicht so lange unter der Temp sein.
Also das Problem ist, dass er nur auslöst wenn die Temp DURCHWANDERT wird. Ich möchte aber einen Check ob die Temperatur kleiner IST, und dann soll es auslösen.

Dann nimm als Trigger ein Zeitraster und trage /5 ein. Damit wird alle 5 Minuten ausgelöst. Als Bedingung kannst du dann die Temperatur nehmen.

1 „Gefällt mir“

Aah, okay, so herum. Dann kannst Du beispielsweise ein Zeitraster nehmen. Wenn Du mit einem Slash arbeitest, kannst Du regelmäßige Abfragen machen lassen. Also mit /1 bei den Stunden jede Stunde oder /30 bei den Minuten jede halbe Stunde.

Ich sehe gerade, @sirector war schon am Start.

1 „Gefällt mir“

Ahh, okay, werde ich versuchen. Also gerade wurden die -4 erreicht und ausgelöst. ich versuche das jetzt nach deinem Ansatz…
Danke!!!

So, habe das mit Bedingung

condition: numeric_state
entity_id: sensor.gartenhauslicht_ds18b20_id
below: “2”

versucht, löst aus aber schaltet nicht. Werden die Temperaturen nuerisch vielleicht anders ausgegeben? In Kelvin oder was weiss ich???

Du kannst die Bedingungen in der Automation testen über die 3 Punkte und dann Testen.

Ansonsten mal unter Entwicklerwerkzeuge → Template folgendes eingeben

{{ states('sensor.gartenhauslicht_ds18b20_id') }}

Was wird ausgegeben?

Oha,

{{ states('sensor.gartenhauslicht_ds18b20_id') }}
Ergebnistyp: string
**1B3E841E64FF**
Dieses Template überwacht die folgenden Ereignisse, die einen Zustand ändern:

Entität: sensor.gartenhauslicht_ds18b20_id

Dann ist es die falsche Entität.

Aha, danke!!! Wurde mir aber nur angeboten als Auswahl. Ich prüfe das, die richtige ist wohl
sensor.gartenhauslicht_ds18b20_temperature
das wir mir unter der Temp. Anzeige gegeben und wenn ich dein
{{ states(‘sensor.gartenhauslicht_ds18b20_temperature’) }}
eingebe bekomme ich auch die Temperatiur korrekt (-5.6) z.Zt!
Ich versuche das mal zu finden in der Automation…

Nachtrag: So, jetzt klappt das vom Prinzip her!DANKE!!!
das ist die Automation in Yaml die ich mit der "visuellen"Automation erstellt habe. Also der Absolutwertschaltvorgang klappt, das war genau das was ich angefragt habe. Nun muss ich das noch hinbekommen das er Nachts nicht schaltet. Das sollte jetzt so sein, das alle 6 Std geprüft wird ob die Temp unter 2 Grad ist und wennja, dann wird die Heizung für5h50min eingeschaltet.
Jetzt würde ich gerne das so ergänzen, das zwischen 22 und 7 Uhr nicht geschaltet wird. (kann ich natürlich unelegat lösen indem ich die Schalt Zeiten auf 12h setze und um 21h anfange…

`</>`
alias: Test Fensterhzg
description: ""
trigger:
  - platform: time_pattern
    hours: /6
condition:
  - condition: numeric_state
    entity_id: sensor.gartenhauslicht_ds18b20_temperature
    below: "2"
  - condition: device
    type: is_off
    device_id: 53448819a8cd942a6d2ca6be3cadaf0b
    entity_id: 1dba3158217b2e6d67e0d388d5057337
    domain: switch
    for:
      hours: 0
      minutes: 0
      seconds: 1
action:
  - type: turn_on
    device_id: 53448819a8cd942a6d2ca6be3cadaf0b
    entity_id: 1dba3158217b2e6d67e0d388d5057337
    domain: switch
  - delay:
      hours: 5
      minutes: 50
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: 53448819a8cd942a6d2ca6be3cadaf0b
    entity_id: 1dba3158217b2e6d67e0d388d5057337
    domain: switch
mode: single

:crayon:by HeikoBauer: Zusammenführung Doppelpost.

Du kannst noch in den Bedingungen (Uhr)Zeiten abfragen.

condition:
  - condition: time
    after: "07:00:00"
    before: "22:00:00"

Bedingungen sind zum Standard UND.

Das Ausschalten würde ich nicht über delay machen. Delay überlebt einen Neustart des HA nicht. Ich würde für den Anfang eine zweite Automation machen und so vorgehen

Wenn
Device is_on for 5 hours 30 minutes

Und Wenn
Temp is above 2

Dann
Schalte ab

Besten Dank, das mit dem Neustart wusste ich nicht. Ich dachte es sei clever das in einer Automation zu machen und nicht mit 2.
Die 2. versuche ich mal so zu machen wie von dir vorgeschlagen! Ich gehe das morgen an… Die Zeiten nehme ich dann als erste Bedingung. Ist bei UND vielleicht egal aber ich muss das noch durchdenken. Mit dem Zeitplan und dem Delay wird es aber auch nicht so ohne weiteres klappen…

Besten Dank nochmal für die Entwicklungshilfe!

Du kannst das auch über eine Automation machen, mit TriggerID. Und die Bedingungen z. B. mit in der Aktion abfragen. Ist aber für den Anfang komplizierter.

Danke, aber ich mache das mit 2 Automatisierungen, mit Trigger ID müsste ich mich noch beschäftigen.
Ich habe jetzt für die erste Automation die Abfrage ob unter 2Grad auf alle 2 Stunden gesetzt, die Bedingung “Schalter ist aus” und den Delay rausgenommen.
In der anderen schaue ich jede Minute nach voller Stunde nach, ob die Temp über 3 Grad ist UND der Schalter an, dann schaltet er ab (so denke ich das jedenfalls…?)
Anschalten

alias: Fensterhzg Schlaf an
description: ""
trigger:
  - platform: time_pattern
    hours: /2
condition:
  - condition: time
    after: "06:30:00"
    before: "23:00:00"
  - condition: numeric_state
    entity_id: sensor.gartenhauslicht_ds18b20_temperature
    below: "2"
action:
  - type: turn_on
    device_id: 53448819a8cd942a6d2ca6be3cadaf0b
    entity_id: 1dba3158217b2e6d67e0d388d5057337
    domain: switch
mode: single

Ausschalten

alias: Fensterhzg Schlaf aus
description: ""
trigger:
  - platform: time_pattern
    hours: /1
    minutes: "1"
condition:
  - condition: time
    after: "06:30:00"
    before: "23:00:00"
  - condition: numeric_state
    entity_id: sensor.gartenhauslicht_ds18b20_temperature
    above: 3
  - condition: device
    type: is_on
    device_id: 53448819a8cd942a6d2ca6be3cadaf0b
    entity_id: 1dba3158217b2e6d67e0d388d5057337
    domain: switch
    for:
      hours: 0
      minutes: 20
      seconds: 0
action:
  - type: turn_off
    device_id: 53448819a8cd942a6d2ca6be3cadaf0b
    entity_id: 1dba3158217b2e6d67e0d388d5057337
    domain: switch
mode: single

Sieht auf den ersten Blick gut aus. Teste es aber ausgiebig.

Mach ich. Das einschalten klappt schon mal :grin:. Irgendwann wird es dann auch wieder wärmer…
Danke dir aber auf alle Fälle noch mal für den entscheidenden Tipp den Trigger auf Zeit umzustellen und dafür die Temperatur als Bedingung zu setzen!