Datumsberechnung, Zeitberechnung, numerische Berechnung in Automation

Liebe Community,

beim Suchen wurde ich leider nicht fündig. Folgende Aufgabenstellung:
Ich möchte in einer Automation Boolsche Variablen aufgrund von im Dashboard eingestellter Werte bestimmen lassen, damit ich diese in weiteren Automationen einfach als Bedingung verwende.

  1. Challange, Datum:
    Ich setze im Dashboard Startdatum, Enddatum. Die Automation sollte aufgrund des Tagesdatums eine Boolsche Variable setzen, wenn ich im mich im gesetzten Datumsfenster befinde, wenn nicht, dann soll sie 0 sein.

  2. Challange, Zeit:
    Ich setze im Dashboard Sonnenaufgang+Offset (den setze ich), Sonnenuntergang+Offset. Die Automation sollte aufgrund der Tageszeit eine Boolsche Variable setzen, wenn ich im mich im gesetzten Zeitfenster befinde, wenn nicht, dann soll sie 0 sein.

  3. Challange, numerischer Wert, Batteriespannung:
    Ich setze im Dashboard unteren Schwellwert, oberen Schwellwert. Die Automation sollte aufgrund des momentanen Messwertes eine Boolsche Variable setzen, wenn sich der Momentanwert im gesetzten Zeitfenster befindet, wenn nicht, dann soll sie 0 sein.

Die Automation läuft grundsätzlich zeitgesteuert, wird aber auch von jeder Eingabe im Dashboard zusätzlich getriggert. Trigger läuft, aber die Boolschen Variablen ändern sich leider nicht.
Ich fürchte mein YAML ist zu dünn, um das richtig zu scripten. Deshalb bitte ich um Eure Hilfe. Anbei der Code der Automation. Danke Euch! :wink:

trigger:
  - platform: time_pattern
    minutes: 1
  - platform: state
    entity_id:
      - input_datetime.start_date
      - input_datetime.end_date
      - input_number.start_interval_offset
      - input_number.stop_interval_offset
      - input_number.battery_upper_level
      - input_number.battery_lower_level
action:
  - service: input_boolean.turn_on
    data_template:
      entity_id: input_boolean.datum_ok
      value: >-
        {{ now().date() >= state_attr('input_datetime.start_date', 'timestamp')
        | timestamp_custom('%Y-%m-%d') and now().date() <=
        state_attr('input_datetime.end_date', 'timestamp') |
        timestamp_custom('%Y-%m-%d') }}
  - service: input_boolean.turn_on
    data_template:
      entity_id: input_boolean.tageszeit_ok
      value: >-
        {{ now().time() >= state_attr('sun.sun', 'next_rising') +
        timedelta(minutes=states('input_number.start_interval_offset')|int) and
        now().time() <= state_attr('sun.sun', 'next_setting') +
        timedelta(minutes=states('input_number.stop_interval_offset')|int) }}
  - service: input_boolean.turn_on
    data_template:
      entity_id: input_boolean.batteriespannung_ok
      value: >-
        {{ state('sensor.batterie_bachlauf_umrechnung')|float >=
        states('input_number.battery_lower_level')|float and
        state('sensor.batterie_bachlauf_umrechnung')|float <=
        states('input_number.battery_upper_level')|float }}
  - service: input_boolean.turn_off
    data_template:
      entity_id: input_boolean.datum_ok
      value: >-
        {{ now().date() < state_attr('input_datetime.start_date', 'timestamp') |
        timestamp_custom('%Y-%m-%d') or now().date() >
        state_attr('input_datetime.end_date', 'timestamp') |
        timestamp_custom('%Y-%m-%d') }}
  - service: input_boolean.turn_off
    data_template:
      entity_id: input_boolean.tageszeit_ok
      value: >-
        {{ now().time() < state_attr('sun.sun', 'next_rising') +
        timedelta(minutes=states('input_number.start_interval_offset')|int) or
        now().time() > state_attr('sun.sun', 'next_setting') +
        timedelta(minutes=states('input_number.stop_interval_offset')|int) }}
  - service: input_boolean.turn_off
    data_template:
      entity_id: input_boolean.batteriespannung_ok
      value: >-
        {{ state('sensor.batterie_bachlauf_umrechnung')|float <
        states('input_number.battery_lower_level')|float or
        state('sensor.batterie_bachlauf_umrechnung')|float >
        states('input_number.battery_upper_level')|float }}
mode: single

Moin,
also 1. und 2. sollte als tempelte binary_sensor machbar sein.
3. sollte auch funktionieren.

mit einer Automation machst du dir das Leben nur unnötig schwer.

LG
Tobi

…ich wollte das ursprünglich nicht in einer Automation abfackeln, aber ich habe zuerst versucht, Templates für Helfer zu finden bzw. Doku dazu, aber das war nicht sehr erfolgreich…ich sehe mir das einmal an. Danke!
Verstehe aber immer noch nicht, warum meine Automation nicht das macht, was sie eigentlich sollte :wink: