Bonsoir, je cherche à construire une automatisation pour déterminer les minutes de soleil en plus (ou en moins) par rapport à la veille. Quelqu’un aurait-il ça sous le coude ?
J’ai essayé avec chatgpt mais impossible d’écrire l’automatisation sans qu’il y ait une erreur, la dernière ligne ne veut rien savoir. Celle-ci:
value: ‹ {{ states(‹ sensor.sun_duration ›) }} ›
Voilà ce qui m’est proposé
Pour créer une automatisation dans Home Assistant qui calcule le nombre de minutes de soleil supplémentaires ou en moins pour Vagney (88), vous pouvez utiliser les capteurs d'ensoleillement intégrés. Home Assistant dispose généralement d'un capteur `sun.sun` qui fournit des informations sur l'heure de lever et de coucher du soleil.
Voici un exemple de configuration d'automatisation pour calculer la différence en minutes de soleil par rapport au jour précédent :
### Étape 1 : Créer un sensor pour la durée d'ensoleillement
D'abord, vous devez créer un sensor pour calculer la durée d'ensoleillement. Ajoutez ceci à votre fichier `configuration.yaml` :
```yaml
sensor:
- platform: template
sensors:
sun_duration:
friendly_name: "Durée d'ensoleillement"
value_template: >
{% set sunrise = state_attr('sun.sun', 'next_rising') %}
{% set sunset = state_attr('sun.sun', 'next_setting') %}
{% if sunrise and sunset %}
{% set duration = (as_timestamp(sunset) - as_timestamp(sunrise)) / 60 %}
{{ duration | round(0) }}
{% else %}
0
{% endif %}
Étape 2 : Créer l’automatisation
Ensuite, ajoutez l’automatisation pour calculer la différence avec le jour précédent :
automation:
- alias: 'Comparer la durée d\'ensoleillement'
trigger:
- platform: time
at: '00:00:00' # Déclenche chaque jour à minuit
action:
- service: input_number.set_value
target:
entity_id: input_number.sun_duration_difference
data:
value: >
{% set today_duration = states('sensor.sun_duration') | int %}
{% set yesterday_duration = states('input_number.yesterday_sun_duration') | int %}
{{ today_duration - yesterday_duration }}
- service: input_number.set_value
target:
entity_id: input_number.yesterday_sun_duration
data:
value: '{{ states('sensor.sun_duration') }}'
Étape 3 : Créer les entités nécessaires
Vous devez également définir un input_number
pour stocker la durée d’ensoleillement d’hier :
input_number:
yesterday_sun_duration:
name: Durée d'ensoleillement d'hier
initial: 0
min: 0
max: 1440 # Minutes en une journée
step: 1
sun_duration_difference:
name: Différence de durée d'ensoleillement
initial: 0
min: -1440 # Minutes en une journée
max: 1440
step: 1
Résumé
- Le
sensor.sun_duration
calcule la durée d’ensoleillement pour le jour courant. - L’automatisation se déclenche chaque jour à minuit, compare la durée d’ensoleillement d’aujourd’hui avec celle d’hier, et stocke la différence.
- Les
input_number
permettent de conserver la durée d’hier et de stocker la différence.
Note
- Assurez-vous d’avoir redémarré Home Assistant après avoir ajouté ces configurations pour qu’elles prennent effet.
- Vous pouvez consulter les valeurs des
input_number.sun_duration_difference
etinput_number.yesterday_sun_duration
dans l’interface de Home Assistant pour voir les résultats.
N’hésitez pas à adapter ces configurations selon vos besoins spécifiques !