Contents
Intro
Un automatisme assez simple de gestion des volets en fonction de la position (azimuth) du soleil.
Mise à jour:
du 17/06/2022
- suppression du contrôle toutes les 15 mn
- déclenchement des fermetures par des « template »
du 17/05/2022
- Changement du code l’automatisme: Ouverture des volets le midi et le soir sur changement d’état, ce qui permet de les refermer si besoin
- Ajout du code de la carte tableau de bord « Non Dwain »
Analyse fonctionnelle
Description de l’automation:
- choix 1: Si l’azimuth devient supérieur à 103° et inférieur à 137° et si la valeur de radiation est supérieure à un seuil alors je ferme les volets de la salle de bain et de la chambre nord.
- choix 2: Si l’azimuth devient supérieur à 137° et inférieur à 159° alors j’ouvre les volets de la salle de bain et de la chambre nord si celle-ci est déclarée inoccupée.
- choix 3: Si l’azimuth devient supérieur à 160° et inférieur à 266° et si la valeur de radiation est supérieure à un seuil alors je ferme les volets de la chambre parents et de la chambre amis sud.
- L’ouverture des volets le soir reste manuelle, plus pratique dans mon cas car très dépendant de l’ensoleillement, la température, etc..
- Le seuil de luminosité est modifiable dans un input number.
Azimuth du soleil
Vous trouverez sur ce site un outil vous permettant une approche de la position du soleil en fonction de la situation géographique de votre maison.
Déclaration des entités
Calcul de l’azimuth du soleil et de son élévation par la même occasion.
- platform: template
sensors:
# Azimuth et elevation soleil
sun_elevation:
friendly_name: 'elevation soleil'
unit_of_measurement: "°"
value_template: "{{'%+.1f'|format(state_attr('sun.sun', 'elevation'))}}"
sun_azimuth:
friendly_name: 'azimut soleil'
unit_of_measurement: "°"
value_template: "{{'%+.1f'|format(state_attr('sun.sun', 'azimuth'))}}"
Calcul simplifié de trois booleans grâce à la nouvelle fonctionnalité « entrées threshold » disponible depuis HA V 2022-04.
binary_sensor.position_soleil_matin = on si 103 < azimuth < 137
binary_sensor.position_soleil_midi = on si 138 < azimuth < 159
binary_sensor.position_soleil_am = on si 160 < azimuth < 266
Déclaration de l’input_number définissant le seuil du niveau d’ensoleillement validant la fermeture des volets
input_number:
# gestion volet: Niveau Ensoleilement ouv auto volet
radiation_seuil_ferm_volet:
name: Radiat seuil ferm volets
mode: box
min: 0
max: 1200
unit_of_measurement: "w/m2"
icon: mdi:weather-sunny
Le niveau ensoleillement est mesuré par ma station météorologique Davis Instrument Vantage pro2, je calcule la valeur moyenne d’ensoleillement sur une heure afin de m’assurer d’un ensoleillement régulier
sensor:
# Ensoleillement
- platform: statistics
entity_id: sensor.vp2_radiation
unique_id: vp2_radiation_moyenne
max_age:
minutes: 60 # sur 1h
name: vp2_radiation_moyenne
state_characteristic: median
Automatisme associé
Le déclenchement de fermeture est une combinaison de la position du soleil et de la moyenne ensoleillement supérieure au seuil prédéfini dans l’input_number.
alias: 4_1_3 Volet-Suivi Azimuth Soleil
description: Ouvre et ferme les volets en fonction de la course (azimuth) du soleil
trigger:
- platform: template
value_template: >-
{% set a=states('binary_sensor.position_soleil_matin') %}
{% set b=states('sensor.vp2_radiation_moyenne') | float(default=0) %}
{% set c=states('input_number.radiation_seuil_ferm_volet') |
float(default=0) %}
{{ a == "on" and b>=c}}
id: ferm_matin
- platform: state
entity_id:
- binary_sensor.position_soleil_midi
id: ouv_midi
to: 'on'
- platform: template
value_template: >-
{% set a=states('binary_sensor.position_soleil_am') %}
{% set b=states('sensor.vp2_radiation_moyenne') | float(default=0) %}
{% set c=states('input_number.radiation_seuil_ferm_volet') |
float(default=0) %}
{{ a == "on" and b>=c}}
id: ferm_am
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: ferm_matin
sequence:
- service: cover.set_cover_position
data:
position: 10
target:
entity_id:
- cover.volet_sdb_p
- cover.volet_amis_nord_p
- conditions:
- condition: trigger
id: ouv_midi
sequence:
- service: cover.open_cover
data: {}
target:
entity_id: cover.volet_sdb_p
- condition: state
entity_id: input_boolean.presence_amis_ch_nord
state: 'off'
- service: cover.open_cover
target:
entity_id:
- cover.volet_amis_nord_p
data: {}
- conditions:
- condition: trigger
id: ferm_am
sequence:
- service: cover.set_cover_position
data:
position: 10
target:
entity_id:
- cover.volet_amis_sud_p
- cover.volet_ch_parent_p
default: []
mode: single
Conclusion
Un automatisme simplifié par les nouvelles fonctionnalités de HA V2022-04, merci aux développeurs qui font un travail remarquable.
Mais pourquoi faire simple quand on peut faire compliquer, on pourrait aussi tenir compte de la température de la pièce, de la température extérieure, etc.. A voir à l’usage cet été.
Salut, encore un super tuto que j’ai adapté à ma config. Or je rencontre un problème, la fermeture et l’ouverture des volets fonctionnent correctement en fonction des deux valeurs, position du soleil et ensoleillement, mais lorsque ils sont définitivement fermés pour la nuit l’automatisation les réouvrent car l’état de binary_sensor.position_soleil_am est sur off. Comment puis je remédier à ce problème? Deuxième question, je souhaiterai reprendre la mise en forme de tes boutons pour commander les volets dans lovelace sans passer par l’intégration dwain dashboard, est ce possible car malgré pas mal d’essai je n’ai pas réussi.
En te remerciant encore pour ce super tuto.
Merci Bob
Dans cette configuration, l’automatisme est conditionné par la mesure luminosité qui doit etre supérieure au seuil prédéfini.
Si tu ne mesure pas la luminosité tu peux en lieu et place tester si le soleil est levé ou pas (conditions: etat sun)
J’ai ajouté le code de la carte pour un tableau de bord « non Dwains »
@+
Merci pour ta réponse, pourtant je mesure bien la luminosité. Je suis repassé sur deux automatisation, une pour la fermeture et l’autre pour l’ouverture, que j’ai couplé avec la luminosité et la position du soleil.
Merci pour la carte je vais y jeter un oeil 😉
Merci Bob
Dans cette configuration, l’automatisme est conditionné par la mesure luminosité qui doit etre supérieure au seuil prédéfini.
Si tu ne mesure pas la luminosité tu peux en lieu et place tester si le soleil est levé ou pas (conditions: etat sun)
J’ai ajouté le code de la carte pour un tableau de bord « non Dwains »
@+
Merci pour ta réponse, pourtant je mesure bien la luminosité. Je suis repassé sur deux automatisation, une pour la fermeture et l’autre pour l’ouverture, que j’ai couplé avec la luminosité et la position du soleil.
Merci pour la carte je vais y jeter un oeil 😉