Ich habe zeitweise das Problem, dass in der Zeit des Restarts von HA eine Automatisation hätte ausgelöst werden sollen. Beispiel: Die Temperatur ist erreicht, die Klima kann ausgeschaltet werden. Also vor dem Restart war noch zu kalt, während den 2-3’ des Restart wäre die Automatisation getriggert worden durch ‘Temperatur > Sollwert’, aber nach dem abgeschlossenen Restart ist die Temperatur ja über oder gleich dem Sollwert und somit wird die Automation nicht mehr getriggert und die Klima läuft unnötig (und oft lange ….) weiter bis ich das merke.
Gibt es dazu eine Lösung, bzw hat da schon jemand was ähnliches erlebt und wie gelöst?
Einfach nach dem Restart die Automation ausführen zulassen funktioniert ja insoweit nicht, dass diese einfach ausgeführt wird, ohne das prüfen der Trigger - ich somit prüfen müsste ob ich nun diejenige für ‘Einschalten’ oder ‘Ausschalten’ erneut triggern müsste.
Schon mal Danke und hoffe die Erklärung war soweit verständlich.
Wie sieht deine Automation aus? Bitte als Vorformatierter Code posten.
Du könntest einen Trigger hinzufügen “restart ha” und dann mit Bedingungen prüfen, was gemacht werden soll.
Beispiel Entfeuchter EIN:
- id: '1758121401529'
alias: Keller Entfeuchter - EIN bei feucht
description: ''
triggers:
- trigger: template
value_template: "{{ states('sensor.klima_keller_klimawert')|float(0) > states('input_number.klima_raumklima_zielwert')|float(0) and
states('binary_sensor.kellerture') == 'off' and
states('sensor.sunny_island_4_4m_11_status')|int(0)
== 307 and
states('sensor.sunny_island_4_4m_11_battery_soc_total')|int(0) >
states('input_number.entfeuchter_soc')|int(0) and states('sensor.sunny_island_4_4m_11_battery_power_discharge_total')|int(0)
< (states('input_number.klima_max_entladeleistung_fur_klima')|int(0)+states('input_number.klima_keller_entfeuchter_offset_max_entladeleistung')|int(0))
and
states('input_number.entfeuchter_soc')|int(0) < states('sensor.sunny_island_4_4m_11_battery_soc_total')|int(0)
and
states('sensor.keller_raumthermostat_humidity')|int(0) > states('input_number.klima_entfeuchter_zielwert')|int(0)
and
states('input_boolean.stromausfall') == 'off'}}"
for:
hours: 0
minutes: 3
seconds: 0
conditions:
- condition: state
entity_id: switch.shellyugentfeucher0630
state:
- 'off'
actions:
- type: turn_on
device_id: b0934f6148e730fe427de7468bef6867
entity_id: 0330f875647d72e158a3b510989c5d5f
domain: switch
mode: single
Beispiel Entfeuchter AUS
- id: '1758121464687'
alias: Keller Entfeuchter - AUS bei trocken, Stromausfall, geringer SoC
description: ''
triggers:
- trigger: template
value_template: "{{ states('sensor.klima_keller_klimawert')|float(0) < states('input_number.klima_raumklima_zielwert')|float(0)
or
states('sensor.sunny_island_4_4m_11_battery_power_discharge_total')|int(0)
> (states('input_number.klima_max_entladeleistung_fur_klima')|int(0)+states('input_number.klima_keller_entfeuchter_offset_max_entladeleistung')|int(0))
or
states('input_number.entfeuchter_soc')|int(0) > states('sensor.sunny_island_4_4m_11_battery_soc_total')|int(0)
or
states('sensor.keller_raumthermostat_humidity')|int(0) < states('input_number.klima_entfeuchter_zielwert')|int(0)
or
states('input_boolean.stromausfall') == 'on'}}"
for:
hours: 0
minutes: 3
seconds: 0
- trigger: state
entity_id:
- binary_sensor.kellerture
to:
- 'on'
for:
hours: 0
minutes: 3
seconds: 0
conditions:
- condition: state
entity_id: switch.shellyugentfeucher0630
state:
- 'on'
actions:
- type: turn_off
device_id: b0934f6148e730fe427de7468bef6867
entity_id: 0330f875647d72e158a3b510989c5d5f
domain: switch
mode: single
Ich würde beide Automationen zusammenfassen und die Bedingungen für HA restart in den Action abfragen
alias: Keller Entfeuchter - Steuerung
description: ""
mode: restart
triggers:
- trigger: template
id: ein
value_template: >
{{
states('sensor.klima_keller_klimawert') | float(0)
> states('input_number.klima_raumklima_zielwert') | float(0)
and is_state('binary_sensor.kellerture', 'off')
and states('sensor.sunny_island_4_4m_11_status') | int(0) == 307
and states('sensor.sunny_island_4_4m_11_battery_soc_total') | float(0)
> states('input_number.entfeuchter_soc') | float(0)
and states('sensor.sunny_island_4_4m_11_battery_power_discharge_total') | float(0)
<
(
states('input_number.klima_max_entladeleistung_fur_klima') | float(0)
+
states('input_number.klima_keller_entfeuchter_offset_max_entladeleistung') | float(0)
)
and states('sensor.keller_raumthermostat_humidity') | float(0)
> states('input_number.klima_entfeuchter_zielwert') | float(0)
and is_state('input_boolean.stromausfall', 'off')
}}
for:
minutes: 3
- trigger: template
id: aus
value_template: >
{{
states('sensor.klima_keller_klimawert') | float(0)
< states('input_number.klima_raumklima_zielwert') | float(0)
or states('sensor.sunny_island_4_4m_11_battery_power_discharge_total') | float(0)
>
(
states('input_number.klima_max_entladeleistung_fur_klima') | float(0)
+
states('input_number.klima_keller_entfeuchter_offset_max_entladeleistung') | float(0)
)
or states('sensor.sunny_island_4_4m_11_battery_soc_total') | float(0)
< states('input_number.entfeuchter_soc') | float(0)
or states('sensor.keller_raumthermostat_humidity') | float(0)
< states('input_number.klima_entfeuchter_zielwert') | float(0)
or is_state('input_boolean.stromausfall', 'on')
or is_state('binary_sensor.kellerture', 'on')
}}
for:
minutes: 3
- trigger: homeassistant
event: start
id: ha_start
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: ein
- condition: state
entity_id: switch.shellyugentfeucher0630
state: "off"
sequence:
- action: switch.turn_on
target:
entity_id: switch.shellyugentfeucher0630
- conditions:
- condition: trigger
id: aus
- condition: state
entity_id: switch.shellyugentfeucher0630
state: "on"
sequence:
- action: switch.turn_off
target:
entity_id: switch.shellyugentfeucher0630
- conditions:
- condition: trigger
id: ha_start
sequence:
- delay:
seconds: 30
- choose:
- conditions:
- condition: template
value_template: >
{{
states('sensor.klima_keller_klimawert') | float(0)
< states('input_number.klima_raumklima_zielwert') | float(0)
or states('sensor.sunny_island_4_4m_11_battery_soc_total') | float(0)
< states('input_number.entfeuchter_soc') | float(0)
or states('sensor.keller_raumthermostat_humidity') | float(0)
< states('input_number.klima_entfeuchter_zielwert') | float(0)
or is_state('input_boolean.stromausfall', 'on')
or is_state('binary_sensor.kellerture', 'on')
}}
sequence:
- action: switch.turn_off
target:
entity_id: switch.shellyugentfeucher0630
Bin nicht sicher ob ich alles drin habe. Teste mal
Danke @sirector
Das mit den id’s kannte ich noch nicht, hilft sicher die Anzahlt der Automatisationen zu reduzieren bzw übersichtlicher zu halten.
Ich denke das kann funktionieren, man muss im ha_start Teil noch mit einem IF arbeiten um AUS und EIN abdecken zu können.
Ja richtig, aber das Prinzip sollte klar sein. Im ha_restart Teil, kannst du den Choose erweitern, wieder mit Condition und Sequenz
Bin mir gerade noch eine andere Lösung am überlegen, da an dieser der Codeteil vom Template ja doppelt eingetragen werden muss, was mir nicht sooooo gefällt.
Da Klima und Entfeuchter ja nicht so zeitkritsch sind, könnte man zB alle 5 oder 10’ eine Automatisation starten die zB die EIN Konditionen prüft und wenn diese nicht (mehr) zutreffen dann AUS. Somit wäre das Ganze auch unabhängig von einem Restart von HA
Ein Template-Helfer binary_sensor (Schalter) anlegen und dort den Code rein. Dann kannst Du diesen in der Automation abfragen.
Oder in der Automation Variablen definieren und diese dann nur noch abfragen.