Add home assistant
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
alias: "Heizung: Wohnzimmer Correction Anpassung"
|
||||||
|
description: ""
|
||||||
|
triggers:
|
||||||
|
- trigger: time
|
||||||
|
at: "20:01:00"
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- variables:
|
||||||
|
temp_soll: |
|
||||||
|
{{ states('input_number.wohnzimmer_heizung_soll') | float(21.0)}}
|
||||||
|
temp_ist: |
|
||||||
|
{{ states('sensor.median_wohnzimmer_heizungskurve_letzte_6h') | float(21.0)}}
|
||||||
|
current_correction: |
|
||||||
|
{{ states('input_number.temp_correction_value_wohnzimmer') | float(0.0)}}
|
||||||
|
temp_diff: |
|
||||||
|
{{ temp_soll - temp_ist }}
|
||||||
|
correction_steps: |
|
||||||
|
{{states('input_number.temp_correction_steps') | float(0.2)}}
|
||||||
|
tolerance: |
|
||||||
|
{{0.2}}
|
||||||
|
correction: >
|
||||||
|
{% if temp_diff > tolerance %}
|
||||||
|
{{current_correction + correction_steps }}
|
||||||
|
{% elif temp_diff > (tolerance * -1) %}
|
||||||
|
{{current_correction - correction_steps}}
|
||||||
|
{% else %}
|
||||||
|
{{current_correction}}
|
||||||
|
{% endif %}
|
||||||
|
- action: input_number.set_value
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
value: "{{correction}}"
|
||||||
|
target:
|
||||||
|
entity_id: input_number.temp_correction_value_wohnzimmer
|
||||||
|
mode: single
|
||||||
57
home_assistant/automatation_heizungsstufe.yml
Normal file
57
home_assistant/automatation_heizungsstufe.yml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
alias: Heizungsstufe (Wohnzimmer)
|
||||||
|
description: ""
|
||||||
|
triggers:
|
||||||
|
- trigger: time
|
||||||
|
at: "22:05:00"
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- variables:
|
||||||
|
sunny_weight: |
|
||||||
|
{% if states('sensor.forecast_sunny') | float(0.0) > 0 %}
|
||||||
|
{{-0.2}}
|
||||||
|
{% else %}
|
||||||
|
{{0.0}}
|
||||||
|
{% endif %}
|
||||||
|
wind_weight: |
|
||||||
|
{{states('sensor.forecast_wind') | float(0.0)}}
|
||||||
|
forecast_temp_min: |
|
||||||
|
{{states('sensor.forecast_min') | float(21.0)}}
|
||||||
|
temp_soll: |
|
||||||
|
{{states('input_number.wohnzimmer_heizung_soll') | float(17)}}
|
||||||
|
temp_ist: |
|
||||||
|
{{states('sensor.median_wohnzimmer_heizungskurve_letzte_6h')}}
|
||||||
|
temp_diff: |
|
||||||
|
{{temp_soll - temp_ist}}
|
||||||
|
# Faktor: Wie stark soll die Raumtemp die Ladung beeinflussen?
|
||||||
|
# Beispiel: Pro 1 Grad Abweichung, Ladestufe um 0.5 ändern.
|
||||||
|
feedback_factor: |
|
||||||
|
{{ 0.2 }}
|
||||||
|
correction: |
|
||||||
|
{{states('input_number.temp_correction_value_wohnzimmer')}}
|
||||||
|
ladestufe_calc: >
|
||||||
|
{% set base_load = ((15 - forecast_temp_min) / 10) %}
|
||||||
|
{% set weather_impact = sunny_weight + wind_weight %}
|
||||||
|
{% set room_feedback = temp_diff * feedback_factor %}
|
||||||
|
|
||||||
|
{{ base_load + weather_impact + room_feedback + correction}}
|
||||||
|
ladestufe: |
|
||||||
|
{% if ladestufe_calc < 0.0 %}
|
||||||
|
{{0.0}}
|
||||||
|
{% else %}
|
||||||
|
{{ladestufe_calc}}
|
||||||
|
{% endif %}
|
||||||
|
- action: notify.mobile_app_mi_9t
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: >
|
||||||
|
Sunny: {{sunny_weight}} Wind: {{wind_weight}} Temp:
|
||||||
|
{{forecast_temp_min}} Lvl: {{ladestufe}}
|
||||||
|
title: Wohnzimmer (Ladestufe auf {{ ladestufe }})
|
||||||
|
- action: notify.mobile_app_pixel_9
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: >
|
||||||
|
Sunny: {{sunny_weight}} Wind: {{wind_weight}} Temp:
|
||||||
|
{{forecast_temp_min}} Lvl: {{ladestufe}}
|
||||||
|
title: Wohnzimmer (Ladestufe auf {{ ladestufe }})
|
||||||
|
mode: single
|
||||||
54
home_assistant/automatation_heizungsstufe_schlafzimmer.yml
Normal file
54
home_assistant/automatation_heizungsstufe_schlafzimmer.yml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
alias: Heizungsstufe (Schlafzimmer)
|
||||||
|
description: ""
|
||||||
|
triggers:
|
||||||
|
- trigger: time
|
||||||
|
at: "22:05:00"
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- variables:
|
||||||
|
sunny_weight: |
|
||||||
|
{% if states('sensor.forecast_sunny') | float(0.0) > 0 %}
|
||||||
|
{{-0.2}}
|
||||||
|
{% else %}
|
||||||
|
{{0.0}}
|
||||||
|
{% endif %}
|
||||||
|
wind_weight: |
|
||||||
|
{{states('sensor.forecast_wind') | float(0.0)}}
|
||||||
|
forecast_temp_min: |
|
||||||
|
{{states('sensor.forecast_min') | float(21.0)}}
|
||||||
|
temp_soll: |
|
||||||
|
{{states('input_number.schlafzimmer_heizung_soll') | float(17)}}
|
||||||
|
temp_ist: |
|
||||||
|
{{states('sensor.median_schlafzimmer_heizungskurve_letzte_6h')}}
|
||||||
|
temp_diff: |
|
||||||
|
{{temp_soll - temp_ist}}
|
||||||
|
feedback_factor: |
|
||||||
|
{{ 0.2 }}
|
||||||
|
correction: |
|
||||||
|
{{states('input_number.temp_correction_value_schlafzimmer')}}
|
||||||
|
ladestufe_calc: >
|
||||||
|
{% set base_load = ((15 - forecast_temp_min) / 10) %}
|
||||||
|
{% set weather_impact = sunny_weight + wind_weight %}
|
||||||
|
|
||||||
|
{{ base_load + weather_impact + correction}}
|
||||||
|
ladestufe: |
|
||||||
|
{% if ladestufe_calc < 0.0 %}
|
||||||
|
{{0.0}}
|
||||||
|
{% else %}
|
||||||
|
{{ladestufe_calc}}
|
||||||
|
{% endif %}
|
||||||
|
- action: notify.mobile_app_mi_9t
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: >
|
||||||
|
Sunny: {{sunny_weight}} Wind: {{wind_weight}} Temp:
|
||||||
|
{{forecast_temp_min}} Lvl: {{ladestufe}}
|
||||||
|
title: Schlafzimmer (Ladestufe auf {{ ladestufe }})
|
||||||
|
- action: notify.mobile_app_pixel_9
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: >
|
||||||
|
Sunny: {{sunny_weight}} Wind: {{wind_weight}} Temp:
|
||||||
|
{{forecast_temp_min}} Lvl: {{ladestufe}}
|
||||||
|
title: Schlafzimmer (Ladestufe auf {{ ladestufe }})
|
||||||
|
mode: single
|
||||||
Reference in New Issue
Block a user