Bonjour , me revoila avec une optimisation via HA
Le but est de chauffer pendant la nuit en fonction du soleil prevu pour la journée et donc d'anticiper et ne pas avoir d'eau froide !
Dans le programme du routeur, c'est en fonction de la journée passée, donc cela ne me correspondait pas
il faut recuperer le forecast de la journée
https://forum.hacf.fr/t/2023-9-forecast-...s/27766/34
Ensuite en resumé :
à 3h du matin , je verifie combien d'heure de soleil la journée entre 10h et 20h
Et suivant le nombre d'heure , je ne chauffe pas ou 1 ou 2h
Et petite notification à 7 h suivant ce qui a ete fait et la temperature du CE
Temps de chauffe, heure d'ensolleilement et la plage horaire sont par rapport a mon installation, heure de production, vitesse de chauffe , ....
Il peut y avoir des erreurs dans les previsions, donc vous pouvez chauffer la nuit car il annonce 2h de soleil et en realité, il en a eu 5 mais ça, c'est le risque avec la météo .... (On peut modifier pour ajouté quand c'est partiellement ensolleillé par exemple)
Notification :
Le but est de chauffer pendant la nuit en fonction du soleil prevu pour la journée et donc d'anticiper et ne pas avoir d'eau froide !
Dans le programme du routeur, c'est en fonction de la journée passée, donc cela ne me correspondait pas
il faut recuperer le forecast de la journée
https://forum.hacf.fr/t/2023-9-forecast-...s/27766/34
Ensuite en resumé :
à 3h du matin , je verifie combien d'heure de soleil la journée entre 10h et 20h
Et suivant le nombre d'heure , je ne chauffe pas ou 1 ou 2h
Et petite notification à 7 h suivant ce qui a ete fait et la temperature du CE


Notification :
Code :
alias: Gestion routeur ensoleillement
description: ""
triggers:
- at: "03:00:00"
trigger: time
actions:
- variables:
sunny_conditions: >-
{% set forecast =
state_attr('sensor.weather_forecast_heure_landrethun_les_ardres',
'forecast') %} {% set sunny_count = namespace(count=0) %} {% for hour in
range(7, 16 + 1) %}
{% set condition = forecast[hour].condition | lower %}
{% if 'sunny' in condition %}
{% set sunny_count.count = sunny_count.count + 1 %}
{% endif %}
{% endfor %} {{ sunny_count.count }}
- choose:
- conditions:
- condition: template
value_template: "{{ sunny_conditions | int == 0 }}"
sequence:
- data:
qos: "0"
topic: Triac
payload: "{\"tOnOff\":180}"
action: mqtt.publish
- conditions:
- condition: template
value_template: "{{ sunny_conditions | int >= 1 and sunny_conditions | int <= 2 }}"
sequence:
- data:
qos: "0"
topic: Triac
payload: "{\"tOnOff\":120}"
action: mqtt.publish
- wait_template: "{{ is_state('sensor.time', '07:00') }}"
continue_on_timeout: false
- choose:
- conditions:
- condition: template
value_template: "{{ sunny_conditions | int < 2 }}"
sequence:
- data:
message: >-
☁️ Pas de soleil prévu : {{ sunny_conditions }}h entre 10h et
20h. Le chauffe-eau a fonctionné pendant 2h. Température
actuelle du ballon : {{
states('sensor.temperature_owon_ballon_temperature') }}°C
action: notify.whatsapp_franck
- data:
message: >-
☁️ Pas de soleil prévu : {{ sunny_conditions }}h entre 10h et
20h. Le chauffe-eau a fonctionné pendant 2h. Température
actuelle du ballon : {{
states('sensor.temperature_owon_ballon_temperature') }}°C
action: notify.whatsapp_sandy
- conditions:
- condition: template
value_template: "{{ sunny_conditions | int >= 2 and sunny_conditions | int <= 4 }}"
sequence:
- data:
message: >-
?️ Peu de soleil prévu : {{ sunny_conditions }}h entre 10h et
20h. Le chauffe-eau a fonctionné pendant 2h. Température
actuelle du ballon : {{
states('sensor.temperature_owon_ballon_temperature') }}°C
action: notify.whatsapp_franck
- data:
message: >-
?️ Peu de soleil prévu : {{ sunny_conditions }}h entre 10h et
20h. Le chauffe-eau a fonctionné pendant 2h. Température
actuelle du ballon : {{
states('sensor.temperature_owon_ballon_temperature') }}°C
action: notify.whatsapp_sandy
- conditions:
- condition: template
value_template: "{{ sunny_conditions | int > 4 }}"
sequence:
- data:
message: >-
☀️ Soleil aujourd'hui : {{ sunny_conditions }}h entre 8h et 20h.
Température actuelle du ballon : {{
states('sensor.temperature_owon_ballon_temperature') }}°C
action: notify.whatsapp_franck
- data:
message: >-
☀️ Soleil aujourd'hui : {{ sunny_conditions }}h entre 8h et 20h.
Température actuelle du ballon : {{
states('sensor.temperature_owon_ballon_temperature') }}°C
action: notify.whatsapp_sandy