Home Assistant : Rafraîchissement nocturne

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



 Site Officiel :   github.com

Laisser un commentaire