diff --git a/home_assistant/automatation_heizungscorrection_wohnzimmer.yml b/home_assistant/automatation_heizungscorrection_wohnzimmer.yml new file mode 100644 index 0000000..6021508 --- /dev/null +++ b/home_assistant/automatation_heizungscorrection_wohnzimmer.yml @@ -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 diff --git a/home_assistant/automatation_heizungsstufe.yml b/home_assistant/automatation_heizungsstufe.yml new file mode 100644 index 0000000..075a38e --- /dev/null +++ b/home_assistant/automatation_heizungsstufe.yml @@ -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 diff --git a/home_assistant/automatation_heizungsstufe_schlafzimmer.yml b/home_assistant/automatation_heizungsstufe_schlafzimmer.yml new file mode 100644 index 0000000..dd7d740 --- /dev/null +++ b/home_assistant/automatation_heizungsstufe_schlafzimmer.yml @@ -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