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.
-
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. -
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. -
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!
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