[tuto] installation d'un onduleur UPS et monitoring

Salut

as tu mis un mot de passe dans le module complémentaire ?

Tu as bien mis dans la configuration du module complémentaire le driver qui correspond à ton onduleur ?

Je ne vois pas la référence de ton onduleur dans la liste des appareils supportés.
Il n’est peut être pas prit en charge par nut.

bonjour et merci
oui j’ai mis le mot de passe
mais il n’apparait pas sur le screenshot je pense
j’ai le même onduleur que @golthar donc les mêmes références je pense
même si je dois avouer que je ne sais pas comment il a trouvé cette réf avec le sien que je n’ai pas trouvé dans le listing

je me réponds à moi même
et voilà ça fonctionne sans savoir pourquoi…

Merci pour le tuto
j’ajouterais que si votre onduleur vous donne l’autonomie restante en secondes alors un petit template et on la passe en minutes

{% set secs = states('sensor.eaton_ups_autonomie_de_la_batterie_2') | int(0) %}
{{ (secs / 60) | round(0) }}

Hello.

Bon tuto. Cela fait 4 ou 5 ans que j’ai un onduleur pour ma HA green, switch, box internet, Nas et je n’ai jamais rencontré aucun problème SAUF que je n’ai jamais regarder ou installé une alerte sur l’état des batteries et qu’un jour il faudra les changer… Et :
une petite semaine de vacances et plus aucune connexion à HA. mince alors. panne matériel ? plus de connexion à ma box non plus. houla ça sent le problème de l’onduleur.

Et oui mes batteries étaient mortes et dans son test l’onduleur à basculé sur les batteries et comme il n’y avait plus rien il s’est tout simplement arrêté (même si j’avais du courant).

Donc une petite question : au lieu de noter sur un doc la date de remplacement de mes batteries et de me donner une hypotétique date future ou je dois les changer, quel indicateur avait vous en place pour savoir à partire de quand on doit penser à remplacer la batterie ? Quel est le capteur dans Nut le plus intéressant à utiliser ?

Merci pour votre aide.

Salut et merci pour le compliment :),

Très bonne remarque, et ton retour montre bien un piège classique : un onduleur peut sembler fonctionner parfaitement tant que le secteur est présent, puis tomber au premier autotest ou à la première bascule batterie si les batteries sont mortes.

Après vérification côté NUT, le capteur le plus important reste ups.status .

Les états intéressants à surveiller sont notamment :

  • OL : onduleur sur secteur
  • OB : onduleur sur batterie
  • LB : batterie faible
  • RB : batterie à remplacer, si l’onduleur le remonte
  • TEST : test en cours

Donc la première alerte à mettre en place, c’est clairement sur RB si ton modèle le fournit. C’est le signal le plus direct : “replace battery”.

Mais tous les onduleurs ne remontent pas forcément RB . Dans ce cas, je surveillerais surtout battery.runtime , c’est-à-dire l’autonomie estimée restante. À charge stable, si cette autonomie baisse fortement avec le temps, c’est un très bon signe que les batteries fatiguent.

Je ne me baserais pas uniquement sur battery.charge , car une batterie fatiguée peut très bien afficher 100 % de charge tout en n’ayant quasiment plus d’autonomie réelle.

Les capteurs utiles à surveiller seraient donc, par ordre de priorité :

  1. ups.status , surtout RB , LB , OB
  2. battery.runtime
  3. ups.test.result , si disponible
  4. battery.charge , utile mais pas suffisant seul
  5. éventuellement battery.date ou battery.date.maintenance , si ton onduleur les expose

Dans Home Assistant, je ferais donc au minimum :

  • une alerte si ups.status contient RB
  • une alerte si ups.status contient LB
  • une alerte si ups.status passe à OB
  • une alerte préventive si battery.runtime devient anormalement bas alors que la charge branchée sur l’onduleur n’a pas changé
  • éventuellement une alerte si le dernier autotest (ups.test.result ) indique un défaut

Donc pour répondre à ta question : le capteur “magique” dépend du modèle, mais si je devais en retenir deux, ce serait ups.status pour les alertes immédiates, et battery.runtime pour surveiller le vieillissement réel de la batterie.

Je vais probablement compléter le tuto avec cette partie, parce que ton retour montre bien qu’un onduleur non surveillé peut devenir lui-même le point de panne.

Pour compléter ma réponse précédente, voilà un exemple d’automatisation Home Assistant basée sur l’état RB remonté par NUT.

RB, c’est normalement Replace Battery, autrement dit : “mon gars, les batteries ont fait leur temps”.
Tous les onduleurs ne le remontent pas forcément, mais quand c’est dispo, c’est quand même le signal le plus direct.

À mettre dans :

/config/automations.yaml

Ou à créer depuis l’interface :

Paramètres → Automatisations et scènes → Créer une automatisation → Modifier en YAML

Exemple :

alias: "UPS - Alerte batterie à remplacer RB"
id: ups_alerte_batterie_replace_battery_rb
mode: single

trigger:
  - platform: template
    value_template: >
      {{ 'RB' in states('sensor.ups_status').split() }}
    for:
      minutes: 2

condition:
  - condition: template
    value_template: >
      {{ states('sensor.ups_status') not in ['unknown', 'unavailable', 'none'] }}

action:
  - service: persistent_notification.create
    data:
      title: "Onduleur : batterie à remplacer"
      message: >
        Le statut NUT de l'onduleur contient RB (Replace Battery).

        Statut actuel : {{ states('sensor.ups_status') }}

        Vérifier l'onduleur et prévoir le remplacement de la batterie.

  - service: notify.mobile_app_telephone_golthar
    data:
      title: "⚠️ Onduleur : batterie à remplacer"
      message: >
        NUT signale RB sur l'onduleur.
        Statut actuel : {{ states('sensor.ups_status') }}

Il faut bien sûr adapter :

sensor.ups_status

avec le vrai nom de ton capteur NUT.

Et remplacer aussi :

notify.mobile_app_telephone_golthar

par ton propre service de notification mobile, commence pas a me spammer :joy:.

Le point important, c’est cette ligne :

{{ 'RB' in states('sensor.ups_status').split() }}

Je ne teste pas simplement :

{{ states('sensor.ups_status') == 'RB' }}

parce que ups.status peut contenir plusieurs états en même temps. Par exemple :

OL RB

Là, l’onduleur est toujours sur secteur (OL), mais il te dit aussi que la batterie est bonne pour la maison de retraite (RB).
Donc avec .split(), on détecte bien RB, même s’il arrive accompagné.

Pour trouver le vrai nom du capteur chez toi :

Outils de développement → États

puis cherche ups, nut ou le nom de ton onduleur.

Et comme toujours avec les onduleurs : RB, c’est très bien quand c’est remonté, mais je surveillerais aussi battery.runtime. Une batterie peut parfois annoncer fièrement 100 % de charge alors qu’en vrai elle tient moins longtemps qu’un glaçon sur le Vieux-Port.

Golthar.

Merci @golthar pour ta réponse hyper détaillée. Je vais mettre tout ça en place ! Certain que je ne me ferais plus piégé…

En attendant j’ai rajouter une date théorique de remplacement de la batterie (ou de vérification) avec une notification.