Superviser ses onduleurs Eaton avec Home Assistant et NUT

Domotique 3 min de lecture

J'utilise Network UPS Tools pour remonter les données de mes onduleurs Eaton dans Home Assistant, en USB et en SNMP, avec alerte SMS en cas de coupure.

Panneau danger de mort à cause de l'électricité
Image de 8ocho8

À la maison, nous avons 6 onduleurs pour pallier les différentes coupures électriques que nous pouvons subir. Pour le moment, seuls deux d'entre eux sont accessibles depuis mon Home Assistant.

⚠️ Cet article a été publié initialement en 2022 et certains éléments ont évolué depuis. La syntaxe des automatisations a changé (service est devenu action avec la version 2024.8 de Home Assistant), et le module complémentaire Network UPS Tools a été renommé en « app » et déplacé dans un nouveau dépôt. Le principe général reste valable, mais il vous faudra adapter les exemples à votre version.

Eaton Ellipse PRO 650

Eaton Ellipse PRO 650
Eaton Ellipse PRO 650 Image d'Eaton

L'Eaton Ellipse PRO 650 est connecté en USB à ma box domotique, à laquelle il assure une autonomie confortable.

Eaton 5P 1550

Eaton 5P 1550
Eaton 5P 1550 Image d'Eaton

L'Eaton 5P 1550 protège l'ensemble du matériel présent dans ma baie informatique. En cas de coupure, il fournit assez d'énergie pendant environ une heure. Pour avoir un contrôle à distance, j'ai ajouté une carte réseau Eaton Network-M2, qui me donne accès aux différentes métriques grâce au protocole SNMP v3.

Supervision depuis Home Assistant

Pour simplifier la récupération des données des deux onduleurs, j'utilise l'excellent module complémentaire Network UPS Tools, disponible sur le dépôt Home Assistant Community Add-ons.

Je vous conseille fortement d'activer le watchdog sur ce module et de jeter un œil à la documentation du logiciel NUT.

Configuration

devices:
  - driver: usbhid-ups
    name: eaton-ellipse-pro-650
    port: auto
    config:
      - vendorid = 0463
      - desc = "Bureau - Eaton Ellipse PRO 650"
  - driver: snmp-ups
    name: eaton-5P-1550
    port: 192.0.2.255
    config:
      - snmp_version = v3
      - secLevel = authNoPriv
      - secName = readuser
      - authPassword = MonSuperMotDePasse
      - desc = "Garage - Eaton 5P 1550"
mode: netserver
shutdown_host: false
users:
  - actions: []
    instcmds:
      - all
    password: MonMotDePasseSecret
    username: nut
i_like_to_be_pwned: true

La partie desc n'est pas obligatoire, mais si vous avez plusieurs onduleurs comme moi, elle vous simplifiera grandement la vie au moment de les retrouver dans Home Assistant. J'ai désactivé HaveIBeenPwned car mon serveur NUT n'est accessible que depuis Home Assistant.

Documentation du site Network UPS Tools :

Intégration à Home Assistant

Comme d'habitude, l'ajout à Home Assistant se fait simplement en passant par l'intégration prévue : Network UPS Tools (NUT).

Intégration NUT - Connexion au serveur NUT - Description des champs à remplir en dessous
Intégration NUT - Connexion au serveur NUT
  • Host : a0d7b954-nut
  • Port : 3493
  • Username : nut
  • Password : MonMotDePasseSecret
Intégration NUT - Choix de l'onduleur
Intégration NUT - Choix de l'onduleur

Il ne vous reste plus qu'à choisir l'onduleur, puis à répéter l'opération pour chacun des vôtres !

Changement de statut de l'onduleur

Maintenant que les données remontent dans Home Assistant, un point important reste à traiter : être informé des changements de statut. Voici l'automatisation que j'utilise pour recevoir le message à la fois sur Telegram et par SMS (n'oubliez pas de l'adapter aux notifications configurées sur votre propre Home Assistant) :

automation:
  - description: UPS state changed
    alias: ups_state_changed
    id: c96873c5-c8e3-4e25-bb90-0496f54e71bc
    mode: queued
    max: 40
    trigger:
      - platform: event
        event_type: nut.ups_event
    action:
      - continue_on_error: true
        service: notify.maison_telegram
        data:
          message: "⚡ {{ trigger.event.data.notify_type }} - {{ trigger.event.data.notify_msg }}"
      - service: esphome.sim800l_send_sms
        data:
          recipient: !secret phone_number_xxx
          message: "{{ trigger.event.data.notify_type }} - {{ trigger.event.data.notify_msg }}"

Tous les types de notification sont disponibles dans la documentation si vous souhaitez affiner les alertes.

SMS reçus suite à une coupure de courant
SMS reçus suite à une coupure de courant

Conclusion

Il est assez simple de récupérer les données d'un ou plusieurs onduleurs depuis Home Assistant et de se créer des alertes en cas de changement. Je vous invite également à lire l'article de Lionel sur son blog : il détaille l'intégration d'onduleurs de la marque APC ainsi que plusieurs méthodes pour dialoguer avec ces derniers - Home Assistant & UPS.