Input Helfer Timer

SkyWalker2_D

Active member
Moin!

Vermutlich ganz einfach, aber ich finde über die Suche keine Starthilfe.

Ich würde gerne einen Heizlüfter, der über einen Smartplug angeschlossen ist, mit einem vorhandenen Aqara Button starten.

In der Automatisierung habe ich jetzt einfach 2 Std. als Dauer nach Start eingegeben.

YAML:
alias: Waschküche - Heizlüfter Timer 2 Std
description: ""
trigger:
  - device_id: f3518506973d8a4694c122bb17700b7f
    domain: zha
    platform: device
    type: remote_button_short_press
    subtype: remote_button_short_press
condition: []
action:
  - type: turn_on
    device_id: 91ce2263fbc87e8d02d3e91b9a814785
    entity_id: 92805e7151264d7205fd994727a81428
    domain: switch
  - delay:
      hours: 2
      minutes: 0
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: 91ce2263fbc87e8d02d3e91b9a814785
    entity_id: 92805e7151264d7205fd994727a81428
    domain: switch
mode: single

Aber gibt es die Möglichkeit diese zeit variabel einzugeben. Einen Helfer habe ich schon erstellt.

Ich komme aber nicht auf die Lösung, wie ich diesen Helfer mit in die Automatisierung aufnehmen kann?

Danke vorab

Sky
 
Hallo Sky,

das sollte ganz einfach sein.

- delay:
hours: {{ ((float(states('Helfer')))) | round(0) }}

statt
- delay:
hours: 2

Gruß
Speedy
 
Abspeichern kann ich leider nicht. Ich habe es so geändert:
YAML:
  - delay:
      hours: {{ ((float(states('input_helfer.timer_heizlufter')))) | round(0) }}

Als Fehlermeldung kommt:
Message malformed: expected float for dictionary value @ data['action'][1]['delay']['hours']
 
Code:
  - delay:
      hours: "{{ states('input_helfer.timer_heizlufter') | float | round(0) }}"
Versuch es mal so. Habs nicht getestet, aber bei einem ähnlichen Skript bei mir klappt das so.

Ob das "float" nun vorne oder hinten steht, sollte aber eigentlich egal sein.
 
Danke! Ich konnte die Automatisierung schon mal speichern.
Jetzt teste ich es mal.

Kann es sein, dass man angelegte Helfer nicht mehr ändern kann? Ich hatte einen Helfer mit Schieberegler und in 15 Min Stufen erstellt. Zum testen wollte ich den mal auf 1 Min runtersetzen. Aber der Klick auf das Zahnrad bringt nix
 
Leider schaltet die Automation nach Ablauf der Zeit nicht aus. Ich habe bestimmt einen Denkfehler!

YAML:
alias: Waschküche - Heizlüfter Timer
description: ""
trigger:
  - device_id: f3518506973d8a4694c122bb17700b7f
    domain: zha
    platform: device
    type: remote_button_short_press
    subtype: remote_button_short_press
condition: []
action:
  - type: turn_on
    device_id: 91ce2263fbc87e8d02d3e91b9a814785
    entity_id: 92805e7151264d7205fd994727a81428
    domain: switch
  - delay:
      hours: "{{ states('input_helfer.timer_heizlufter') | float | round(0) }}"
  - type: turn_off
    device_id: 91ce2263fbc87e8d02d3e91b9a814785
    entity_id: 92805e7151264d7205fd994727a81428
    domain: switch
mode: single
 
Doch, ich kann meine Helfer jederzeit ändern. Ich hatte den fall aber auch schon, das ich die weder ändern, noch löschen konnte. Ich habe auch aktuell einen Helfer, der noch nicht mal das Zahnradsymbol hat, ich aber wenigstens die Entitäten ändern kann.

Was die Automatisierung gemacht hat, kannst Du sehen, wenn Du die 3 Punkte NEBEN der Automatisierung anklickst, dann TRACES auswählen und oben mal "Trace-Zeitleiste. Da siehst Du den ablauf, ob und was die Automatisierung gemacht hat.
 
Im TRACES steht tatsächlich was beim Step wo der Helfer arbeiten soll

Ausgeführt: 9. Januar 2024 um 15:13:42
Fehler: ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ states('input_helfer.timer_heizlufter') | float | round(0) }}' but no default was specified

Ist der Helfer evtl. falsch angelegt?

Edit: Ich habe die yaml in der Automatisierung nochmal angepasst. 'minutes' anstatt 'hours'
Der Helfer war in 15er Schritten angelegt, aber das brachte leider auch nichts!
1704813200435.png
 
Zuletzt bearbeitet:
Du kannst keinen Helfer, der in 15 Minuten schritten eingestellt ist, bei Stunden verwenden.
Wenn, dann müßtest Du zwei Helfer machen. Stunden und Minuten.
Die Fehlermeldung sagt aber eher, das ein Wert übergeben wurde, der nicht passt und es wurde kein default Wert angegeben, weil was nicht passt. Hier in dem Fall liefert dein Helfer vermutlich irgendwas, was bei float nicht funktioniert.
Ich weis jetzt nicht, warum "hours:" den Wert nicht akzeptiert, aber versuch es einfach mal mit.
Code:
{{ states('input_number.timer') | float | round(0) }}
Ich glaube, die "" waren zu viel.
 
- delay: hours: "{{ states('input_helfer.timer_heizlufter') | float | round(0) }}"

input_helfer.timer_heizlufter -> Ich bezweifle, dass es diese Entität gibt!
Wenn, dann muss es input_number.timer_heizlufter, hiessen.

Ich würde den Wert auch nicht als Gletkommazahl (float) formatieren, Sonden als Ganze Zahl (int) und dem Template auch einen Default Wert mitgeben.
Also:
YAML:
  - delay:
      hours: "{{ states('input_number.timer_heizlufter') | int(0) }}"

Allerdings würde ich für solche Aufgaben keine Verzögerung verwenden.
Verzögerung kann man ohne Probleme verwenden wenn sie Sekunden oder mal wenige Minuten betragen.
Hintergrund: Eine Verzögerung überlebt keinen Home Assistant Neustart. Heisst, sollte Home Assistant während die Verzögerung läuft aus welchen Grund auch immer neu gestartet werden, Wird Deine Heizung nie ausgeschaltet.

Ich würde hier einen Timer verwenden. Nicht nur, dass dieser auch einen Neustart überlebt. Über den Timer siehst Du auch wann die Heizung abgeschaltet wird. Kannst den Timer jeder Zeit Verlängern oder vorzeitig stoppen.
 
Vielen Dank!

Damit hat es geklappt
YAML:
  - delay:
      hours: "{{ states('input_number.timer_heizlufter') | int(0) }}"

So oft nutze ich die Automatisierung nicht. Ich hoffe daher, ein Neustart von HA kommt der dann nicht in die Quere :)
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.377
Beiträge
61.478
Mitglieder
6.543
Neuestes Mitglied
Willem
Zurück
Oben