Home Assistant : Alertes

Les cordonniers sont bien souvent les plus mal chaussés. Une adage qui se vérifie une fois de plus. J'ai laissé la porte d'un congélateur ouverte et malgré le fait qu'il y ait une sonde connectée à l'intérieur je ne m'en suis aperçu que deux heures plus tard et j'ai du jeter pas mal de choses... Pourquoi ? Simplement parce que je je n'ai jamais pris le temps de configurer les alertes ! Alors on va le faire, rien de sorcier mais il faut le faire !

On par du principe que l'on a des sondes en place. Il faut éviter les Aqara ou Xiaomi sur piles. Si cela convient pour un réfrigérateur, à -18 °C les piles ne tiennent pas très longtemps. J'ai donc opté pour une extension Shelly avec des sondes DS18B20. Après cette source peut être différente mais il faut que la sonde soit déportée. On peut aisément utiliser un câble plat de type téléphone pour passer la porte. On pourait également installer un détecteur d'ouverture, mais ça n'aura aucun intérêt en cas de panne de l'appareil...

On commence par faire des binary_sensor pour gérer les seuil et on recharge les templates sans avoir à redémarrer. On pourrait régler le seuil dynamiquement avec un input_number si on voulait faire genre.... On configure un seuil un peu plus haut afin de ne pas déclencher des faux positifs à chaque ouverture.

- platform: template
  sensors:
    alert_freezer_haier_2:
      value_template: "{{ states('sensor.shelly1_55eaea_temperature_3') | float > -12 }}"
      friendly_name: "Alerte Congelateur Haier 2"

    alert_freezer_haier_1:
      value_template: "{{ states('sensor.shelly1_55eaea_temperature_1') | float > -12 }}"
      friendly_name: "Alerte Congelateur Haier 1"

    alert_fridge_garage:
      value_template: "{{ states('sensor.shelly1_55eaea_temperature_2') | float > 8 }}"
      friendly_name: "Alerte Réfrigérateur Garage"

    alert_fridge_kitchen:
      value_template: "{{ states('sensor.mi_refrigerateur_temp') | float > 9 }}"
      friendly_name: "Alerte Réfrigérateur Cuisine"

On pourrait aussi créer nos binary_sensor avec la plateforme Threshold. C'est plus smart, mais pour tester il me fallait redémarrer On pourrait également s'intéresser à la plateforme Derivative...

- platform: threshold # will switch state not at 0°C/min but 0.1°C/min or -0.1°C/min depending on the current state of the sensor, respectively
  entity_id: sensor.shelly1_55eaea_temperature_3
  upper: -10
  hysteresis: 0.1 # sensor
  name: Temperature rising   

Ensuite il faut gérer les alertes et ça on va le faire avec la plateforme Alert que j'utilise déjà pour les coupures électriques :

fridge_garage:
  name: 'Alerte Réfrigérateur Garage'
  entity_id: binary_sensor.alert_fridge_garage
  state: 'on'
  repeat:
    - 5
    - 10
    - 30
    - 45
    - 60
    - 90
    - 120
    - 240
    - 300
  can_acknowledge: true  # Optional, default is true
  skip_first: true  # Optional, false is the default
  message: "{{ states.sensor.date_time.state}} > Réfrigérateur Garage | Température excessive : {{ states.sensor.shelly1_55eaea_temperature_2.state }}°" 
  done_message: "{{ states.sensor.date_time.state}} > Réfrigérateur Garage | Température normale : {{ states.sensor.shelly1_55eaea_temperature_2.state }}°" 
  notifiers:
    - slack_hass_canaletto
    - Free_Mobile

A partir de là on reçoit une alerte (ici deux) dès lors que la température grimpe. J'ai toutefois éliminé la première alerte afin d'éviter les faux positifs. Et rien n'empêcherait en complément de diffuser une annonce vocale en TTS ou de faire clignoter en rouge quelques ampoules...