En ces temps de canicule il est intéressant de connaitre le moment où la température extérieure passe en dessous de la température intérieure pour profiter du rafraîchissement nocturne (night cooling).
c’est ce que je me suis attaché à faire cette fois ci pour Home Assistant
Principe : ce script vérifie toutes les 5 minutes si la température extérieure +2°C (ou dans mon cas la moyenne des températures extérieures) passe en dessous de la température moyenne des pièces référencées (temperature_moyenne_etage)
une seule notification par jour, (via le input_datetime: night_cooling_last_notification_sent) réinitialisée automatiquement tous les jours à minuit.
une condition permet le déclenchement à partir de la fin d’après midi now().hour > 18
(18 heures), après la période la plus chaude de la journée.
sensor: - platform: min_max # https://www.home-assistant.io/integrations/min_max/ name: "Température moyenne étage" type: mean entity_ids: - sensor.temperature_chambre_1 - sensor.temperature_chambre_2 - sensor.temperature_chambre_parents - sensor.temperature_douche - platform: min_max # https://www.home-assistant.io/integrations/min_max/ name: "Température moyenne extérieure" type: mean entity_ids: - sensor.temperature_anemometre - sensor.temperature_exterieure_allee - sensor.temperature_exterieure_terrasse input_datetime: # https://www.home-assistant.io/integrations/input_datetime/ night_cooling_last_notification_sent: has_date: true automation: - alias: "rafraichissement nocturne" trigger: - platform: time_pattern minutes: '/5' seconds: 0 condition: condition: and # toutes les conditions doivent être vraies "TRUE" avant que l'action ne soit exécutée. conditions: - condition: template value_template: "{{ states.sensor.temperature_moyenne_etage.state | float > (states.sensor.temperature_moyenne_exterieure.state | float + 2) }}" # +2 pour avoir un delta T suffisant pour operer un rafraichissement performant - condition: template value_template: '{{ now().hour > 18 }}' # seulement après 18h00 - condition: template # une seule notification par jour value_template: > {{ not is_state_attr('input_datetime.night_cooling_last_notification_sent', 'day', now().day) }} action: - service: notify.HA data_template: message: 'la Température intérieure est superieure à la température extérieure ({{ states.sensor.temperature_moyenne_etage.state }} > {{ states.sensor.temperature_moyenne_exterieure.state }}). Ouverture des fenêtres recommandée' - service: tts.google_say entity_id: "media_player.bureau, media_player.salon" data_template: message: 'la Température intérieure est superieure à la température extérieure ({{ states.sensor.temperature_moyenne_etage.state }} > {{ states.sensor.temperature_moyenne_exterieure.state }}). Ouverture des fenêtres recommandée' - service: input_datetime.set_datetime # https://www.home-assistant.io/integrations/input_datetime/ entity_id: input_datetime.night_cooling_last_notification_sent data_template: date: "{{ now().strftime('%Y-%m-%d') }}"
En espérant que cela puisse vous être utile
La dernière version disponible sur [homepage=https://github.com/papo-o/home-assistant-config/blob/master/integrations/alerte_rafraichissement_nocturne.yaml]github.com[/homepage]