DomoLab

Documentation de recherche en domotique

#22/11/2025

Proxmox - UPS - NUT

Introduction

...

Description technique

Le but est d’intégrer l’onduleur EATON 3S 700 à Proxmox afin d’assurer la protection des machines virtuelles en cas de coupure électrique, tout en rendant les informations de l’UPS accessibles à Home Assistant (HA).

L’onduleur est connecté en USB au serveur Proxmox. Pour une gestion optimale de l’extinction automatique en cas de perte de courant, l’intégration et la supervision sont faites au niveau de l’hyperviseur grâce au serveur NUT (Network UPS Tools) installé sur Proxmox. Cette solution évite de relier l’onduleur exclusivement à Home Assistant via USB passthrough, ce qui priverait Proxmox de la capacité à s’arrêter proprement lors d’une coupure.

Home Assistant interroge ensuite le serveur NUT de Proxmox pour remonter l’état et les données de l’UPS. L’intégration côté Home Assistant se fait via l’ajout natif de l’intégration NUT, qui va utiliser l’IP et les identifiants configurés sur Proxmox.

Particularités réseau

Le réseau étant segmenté en plusieurs VLANs et le routage assuré par OPNSense, il n’est pas souhaité d’ajouter des règles permettant au VLAN IoT (où se situe HA) de communiquer directement avec la zone WAN du firewall pour des raisons de sécurité et d’isolation. Pour contourner cette contrainte tout en assurant la communication entre Home Assistant et Proxmox, une nouvelle carte réseau a été ajoutée dans Proxmox et dans la VM HA pour créer un réseau d’interconnexion dédié.

Ce réseau isolé permet à HA de questionner en toute sécurité le serveur NUT de Proxmox, sans exposer d’interfaces sensibles entre VLANs ni compromettre la segmentation du réseau.

Cette architecture garantit une supervision fiable de l’UPS tout en respectant les contraintes de sécurité et d’isolation réseau propres à l’infrastructure.

Intégration UPS dans Proxmox

Installation de NUT

apt install nut

...

Affichons les périphériques usb:

lsusb

...

On peut voir ici sur la deuxième ligne l'onduleur (ID Vendeur et ID Produit), MGE étant le nom d'une ancienne marque. D'après devicehunt.com c'est cohérent.

On passe à la Configuration du serveur NUT: nano /etc/nut/ups.conf

...

On définit le mode serveur: /etc/nut/nut.conf:

...

On définit un utilisateur (homeassistant): nano /etc/nut/upsd.users:

...

Je démarre les services NUT:

...

J'ai un problème de permissions ici. Il faut créer une règle UDEV qui permettent à l'OS de définir les permissions pour un périphérique (identifié par l'ID Vendeur et l"ID produit).

UDEV?

Udev: est le nouveau système pour gérer le répertoire /dev, conçu pour repousser les limites mises en avant par les précédentes versions de /dev, et fournir un lien robuste. Dans le but de créer et nommer les périphériques dans /dev, les "nodes" qui correspondent aux périphériques système, udev fait le lien entre les informations données par sysfs et les règles données par l'utilisateur. Ce wiki a pour but d'expliquer comment écrire les règles udev.

Source: ubuntu-fr.org - udev

Je créer donc une règle: nano /etc/udev/rules.d/99-nut-ups.rules:

...

Il faut appliquer les changements UDEV udevadm control --reload-rules et udevadm trigger:

...

On peut vérifier les informations disponibles: /usr/bin/upsc monups:

...

L'UPS est maintenant intégré à Proxmox, on peut passer à l'intégration dans HomeAssistant. Un petit mot avant sur le réseau d'interconnexion.

Pour rappel, j'ai bien deux cartes réseau au niveau de la vm de HomeAssistant:

...

Réseau d'interconnexion

Ici j'ai besoin de deux adresses, j'ai dans un premier réaliser un réseau d'interconnexion en /30 et ajouté les cartes réseau nécessaires. J'ai constaté que le ping ne passait pas.

Avec une plage si restreinte (/30), le bridge manque de « marge », et certains systèmes ou logiciels réseau considèrent que les 2 IP ne sont pas vraiment sur le même segment local. Cela perturbe :

  • L’apprentissage et la gestion des adresses MAC (table MAC)
  • La diffusion des paquets ARP
  • La communication directe entre les machines

Certains systèmes peuvent refuser d’envoyer de l’ARP si la destination leur semble « hors segment », ou calculent que l’IP n’est pas « locale ». Les bridges virtuels, sans vrai port physique, sont plus sujets à ces limitations.

Je suis donc passé à un réseau d'interconnexion en /29 afin de résoudre le problème.

Intégration HomeAssistant

Rien de compliqué ici, l'intégration est native on va passer par Network UPS Tools (NUT):

...

On indique la configuration et les identifiants utilisateur:

...

On finalise l'intégration de l'UPS:

...

Exemple d'Implémentation au niveau du dashboard:

...

Conclusion

L'intégration de l'onduleur EATON 3S 700 avec Proxmox et Home Assistant via NUT offre une solution robuste pour la gestion de l'alimentation. Le serveur NUT installé sur Proxmox garantit un arrêt propre de l'hyperviseur en cas de coupure électrique, tandis que le réseau d'interconnexion dédié permet à Home Assistant de superviser l'UPS sans compromettre la segmentation réseau. Cette architecture respecte les bonnes pratiques de sécurité tout en assurant une protection efficace des VMs critiques.