Time_pattern mit input_number oder slider

Hallo Allerseits,

ich bin neu hier und durchstöbere seit Tagen ohne Erfolg englische und deutschsprachige Foren. Ich möchte einen Intervallschalter, der alle paar Minuten - die ich gerne per Slider oder Zahleneingabe einstellen möchte - einen Schalter für eine bestimmte Zeit (ein paar Sekunden) ein- und dann wieder ausschaltet. Die Laufzeit kann ich problemlos über einen Slider bzw. per Zahleneingabe bestimmen, das ist kein Problem und funktioniert. Aber time_pattern - also das Intervall in / lässt sich nicht mit einer Variable aus einem Helfer belegen. Natürlich könnte ich die Intervallzeit hardcoden, das funktioniert auch. Da ich hin und wieder aber manuell ins Intervall eingreifen muss, wäre es eine elegante Lösung über einen Slider die Intervallzeit zu steuern. Ich bekomme das einfach nicht zum Laufen. Etliche Tipps aus anderen Formen habe ich bereits erfolglos probiert. Ich hoffe auf euer Schwarmwissen. Herzlichen Dank!

Belasse den Auslöser mit “jede Minute”
Und prüfe als Bedingung, ob die letzte Ausführung länger als X Minuten her war.
Als X verwendest Du Deine Input Number.

Wie Du auf letzte Ausführung längerer als X prüfen kannst, findest Du hier.

Gruß
Osorkon

Danke für die schnelle Antwort. Im Prinzip ist es das was ich suche, leider bringe ich es mangels YAML Kenntnissen nicht so einfach zum Laufen. Dein Beispiel rechnet ja in Sekunden, das habe ich jetzt mal so umgestellt. Ich habe nur im Template-Editor gesehen, dass die Automation, die auf last_triggered geprüft wird, keine Eigenschaft namens last_triggered besitzt. Warum, kann ich nicht sagen.

“‘homeassistant.helpers.template.TemplateState object’ has no attribute ‘last_triggered’”

Ich probiere einmal weiter. Jedenfalls Danke für die Hilfe.

Ausgehend Du davon Du hast ein Input Number als Helfer. Dieser gibt die Intervall Dauer in Minuten an.

input_number.intervall

Die Bedingung sehe dann so aus:

{% set x = states('input_number.intervall') | int %}
{{ now() - (this.attributes.last_triggered | default((now() - timedelta(minutes = x )), true)) > timedelta(minutes=x-1) }}

Die Automatisierung dann so:
Auslöser jede Minute

triggers:
  - trigger: time_pattern
    minutes: /1
conditions:
  - condition: template
    value_template: |
      {% set x = states('input_number.intervall') | int %}
      {{ now() - (this.attributes.last_triggered | default((now() - timedelta(minutes = x )), true)) > timedelta(minutes=x-1) }}

Gruß
Osorkon

Irgendwie tut sich da nichts. Ich vermute, dass ich die Dinge an der falschen Stelle eintrage. Soweit reicht mein Wissen noch nicht. Ich poste mal die gesamte Automation, dann kannst du dir ein Bild davon machen.

- id: '1709100901464'
  alias: Selchventilator Intervallschalter
  description: ''
  triggers:
  - trigger: time_pattern
    minutes: /1
    enabled: true
  conditions:
  - condition: numeric_state
    entity_id: sensor.thermometer_kuhlung1_temperatur
    below: 29
    enabled: false
  - condition: template
    value_template: |
      {% set x = states('input_number.intervall') | int %}
      {{ now() - (this.attributes.last_triggered | default((now() - timedelta(minutes = x )), true)) > timedelta(minutes=x-1) }}
  actions:
  - type: turn_on
    device_id: c5b74a051b5721f4bb2ad173779192da
    entity_id: af1bae6bde1a71400477c83f80c3a7fb
    domain: switch
    enabled: true
  - delay:
      hours: 0
      minutes: 0
      seconds: '{{ states(''input_number.laufzeit_ventilator'') | int }}'
      milliseconds: 0
    enabled: true
  - type: turn_off
    device_id: c5b74a051b5721f4bb2ad173779192da
    entity_id: af1bae6bde1a71400477c83f80c3a7fb
    domain: switch
    enabled: true
  mode: single 

Ich glaube, dass ich es mit deinen Infos zum Laufen gebracht habe. Ich werde das jetzt mal testen. Herzlichen Dank!

Update: Nein, doch nicht. Irgendwie geht die Condition nie auf “True”. Ich spiele mich da mal weiter.