CasaOS / ZimaOS [TUTO] Surveiller votre onduleur UPS avec Nutify

morgyann

Grand Maître Jedi
Membre Confirmé
2 Février 2023
2 277
519
153
.bzh
L’interface de ZimaOS ne gère pas à ce jour le pilotage d’un UPS adjoint et protégeant votre serveur d’éventuelle coupure de courant.

Après plusieurs recherches, je n'avais trouvé pour seule application de surveillance d'onduleur : NUT que vous installez en mode en serveur de connexion à votre onduleur. Puis, à ce serveur NUT vous intégrez une interface graphique en mode client du type PeaNUT, Home Assistant, Grafana ou Promethus. NUT est aussi proposée sur UnRaid ...
L'installation de NUT est assez simple ainsi que son couplage avec une interface graphique pour qui a l'habitude de déployer des piles Docker et/ou souhaite l'intégrer à un tableau de bord du type Home Assistant ou Grafana. L'installation pour un débutant peut s'avérer un peu + compliquée (repérage en ligne de commande de l'USB, déployer dans un premier temps NUT et le contrôler à nouveau en ligne de commande, refaire un YAML pour son couplage avec un client ...).

J'ai donc continué mes recherches pour tester une app qui corresponde un peu plus à l'objectif de ZimaOS à savoir une installation simple avec un résultat efficient et, je suis tombé sur Nutify, une app assez récente créée par un passionné qui se présente très modestement comme un développeur amateur, il y a 8 mois sur Reddit ...

Vous trouverez son GitHub à https://github.com/DartSteven/Nutify?tab=readme-ov-file et si cette app vous plait n'hésitez pas à lui payer un café

Nutify vous permet de surveiller votre onduleur facilement.

Si vous êtes complètement débutant pour installer une app manuellement sur ZimaOS vous trouverez un tuto pour l'installation de Nutify pas à pas ICI

Au préalable, votre serveur doit être alimenté par un onduleur et connecté à celui-ci en USB (pour les + avancés, il y a aussi une conf en réseau et en simple client)

1. Installer Nutify sur ZimaOS​

1.1. Cliquez sur l’icône + en haut à droite de la page d’accueil au dessus des tuiles et sélectionnez Installer une application personnalisée.

1.1.png

1.2. La fenêtre des paramètres de votre application s’ouvre et cliquez sur l’icône flèche vers le carré en haut à droite, avec pour libellé Importer

1.3. Le pop-up vous propose d’importer votre configuration avec un fichier YAML ou de copier-coller celle-ci dans la fenêtre dédiée. Vous pouvez agrandir cette fenêtre en sélectionnant les deux traits en bas à droite.

1.4. Copier-coller dans la fenêtre le script de configuration
ci dessous.
Important : l’image du script est pour un système fonctionnant avec un CPU, le plus courant, en AMD64/x86_64
Pour un système fonctionnant en ARM64/aarch64, comme un Raspberry Pi, le Tag de l’image devra être modifié en: arm64-latest
L’environnement SECRET_KEY pourra être changé après l’importation
Le port 443 et son volume ont été retirés du script original afin de ne pas interférer avec l’installation d’un logiciel de Proxy Inversé.


Code:
name: nutify
services:
  nut:
    cap_add:
      - SYS_ADMIN
      - SYS_RAWIO
      - MKNOD
    cpu_shares:
    command: []
    container_name: nutify
    deploy:
      resources:
        limits:
          memory:
        reservations:
          devices: []
    device_cgroup_rules:
      - c 189:* rwm
    devices:
      - /dev/bus/usb:/dev/bus/usb
    environment:
      - SECRET_KEY=e43a4fbb813170e5436ef42ffc201bae55246d0756696bd10bfebb1c83f0e4f2
      - UDEV=1
    image: dartsteven/nutify:amd64-latest
    labels:
      icon: https://github.com/DartSteven/Nutify/raw/main/pic/Nutify-Logo.png
    ports:
      - target: 3493
        published: "3493"
        protocol: tcp
      - target: 5050
        published: "5050"
        protocol: tcp
    privileged: true
    restart: always
    volumes:
      - type: bind
        source: /tmp/nutify/logs
        target: /app/nutify/logs
      - type: bind
        source: /tmp/nutify/instance
        target: /app/nutify/instance
      - type: bind
        source: /tmp/nutify/etc/nut
        target: /etc/nut
      - type: bind
        source: /dev
        target: /dev
      - type: bind
        source: /run/udev
        target: /run/udev
    network_mode: bridge
x-casaos:
  author: self
  category: self
  hostname:
  icon: https://github.com/DartSteven/Nutify/raw/main/pic/Nutify-Logo.png
  index: /
  is_uncontrolled: false
  port_map: "5050"
  scheme: http
  store_app_id: nutify
  title:
    custom: NUTIFY
    en_us: nut


Cliquez sur Appliquer, puis sur OK sur le Pop-up qui s’affiche

1.5. Sur le Panneau Paramètres, maintenant pré-rempli, modifiez,
  • L’espace Web UI en inscrivant en dur l’IP locale du serveur qui s’affiche en filigrane
1.5.png

  • Générez votre clé secrète sur ce site et remplacez celle inscrite dans l’espace Variables d’environnement -> SECRET_KEY -> Valeur
1.5.2.png


1.6. Cliquez sur Installer et patientez le temps de l’installation



2. Première configuration assistée​

2.1. La première page vous propose de personnaliser le nom de votre onduleur UPS, si vous le souhaitez. Puis, Next

2.1.png

2.2. Sur la seconde page indiquez votre fuseau horaire à choisir dans la liste déroulante. Puis, Next

2.3. Indiquez un mot de passe pour le compte adminNe pas changer le libellé admin, vous pourrez créer d’autre comptes par la suite. Puis, Next

2.4. Choisissez le mode de connexion à votre onduleur le premier, dans une configuration classique par un branchement direct à votre serveur. Si vous avez plusieurs machines connectées à ce même UPS, deux autres modes sont proposés via le réseau ou en simple client d’un serveur NUT. Puis, Next

2.4.png

2.5. Choisissez la détection automatique de votre Onduleur UPS, dans le cas où il ne serait pas reconnu il vous faudra l’identifier manuellement. Puis, Next

2.5.png

2.6. Dans la mesure où le modèle de votre onduleur fait partie de la grande liste répertoriée par l’application, le scan procédera à identification de l’UPS. Puis, Next

2.7. Activer Test Configuration

2.8. Ajoutez les variables complémentaires si demandé. Puis, Close

2.9. Sauvegardez la configuration

2.9.png

2.10. Redémarrez


3. Connection à Nutify


Pour la première connexion, authentifiez-vous en admin et ->Login

3.1.png

Administrez votre onduleur avec Nutify

Installer Nutify - Interface Nutify.png



J'ai, à ce jour, juste fait le tour d'horizon des possibilités de configuration de l'interface (extrait GitHub) :


Principales caractéristiques

  • Surveillance UPS en temps réel : Collecte et affiche en continu les données de vos appareils UPS
  • Système d'authentification des utilisateurs : Connexion multi-utilisateur avec contrôle granulaire des autorisations pour les pages individuelles et les zones de configuration
  • Rapports détaillés : Génère des rapports complets sur les performances d'UPS avec une intégration pandas améliorée
  • Graphiques interactifs : Visualise les données UPS à l'aide de graphiques interactifs
  • Assistant de configuration : Assistant de configuration amélioré avec interface utilisateur et navigation améliorées
  • Tableaux de bord personnalisables : Fournit un tableau de bord Web pour afficher les données en temps réel
  • Persistance des données : Stocke les données UPS historiques dans une base de données SQLite avec un schéma amélioré
  • Déploiement dockerisé : Facilement déployable à l'aide de Docker et Docker Compose
  • Modes de déploiement flexibles : Exécuter en tant que serveur NUT complet ou en tant que client léger se connectant à un serveur NUT distant
  • Détection de mode robuste : Détection de mode CLIENT/SERVEUR multicouche avec mécanismes de secours automatiques
  • Système de notification amélioré : Notifications basées sur une base de données avec plusieurs canaux (e-mail, Ntfy, Webhooks)
  • Intégration Discord : Envoyez des notifications directement aux canaux Discord
  • Surveillance du système : Widgets d'utilisation de la RAM et du processeur en temps réel dans l'en-tête du tableau de bord
  • Assistance par e-mail multi-comptes : Configurez plusieurs comptes de messagerie pour les notifications avec une configuration de fournisseur simplifiée
  • Surveillance énergétique : Analyse détaillée de la consommation d'énergie
  • Gestion de la batterie : Surveillance de l'état et des performances de la batterie
  • Gestion d'événements : Enregistrement et notification des événements UPS
  • Commandes UPS : Interface pour envoyer des commandes à l'UPS avec contrôle des autorisations
  • Thème sombre/clair : Interface personnalisable avec des thèmes sombres et clairs
  • Rapports automatisés : Rapports programmés avec état UPS détaillé et précision améliorée
  • Notifications push : Intégration avec Ntfy pour des alertes mobiles instantanées
  • Intégration de Webhook : Rappels HTTP flexibles pour l'intégration de systèmes tiers
  • Configuration avancée : Contrôle précis des paramètres NUT et des sondages avec accès basé sur l'utilisateur
  • Récupération de connexion : Reconnexion automatique et récupération après les pannes de communication UPS
  • Gestion optimisée des événements : Intégration native de Python avec upsmon.conf pour une stabilité et une réactivité améliorées
  • Données en temps réel basées sur WebSocket : Système de mise en cache efficace réduisant considérablement l'utilisation du processeur et de la RAM
  • Architecture modulaire : Conception extensible avec séparation nette des préoccupations
  • Image de marque professionnelle : Logo officiel et favicon pour une identité cohérente sur toutes les plateformes
  • Prise en charge UPS étendue : Pilotes ajoutés pour une gamme plus large de modèles UPS
  • Sécurité renforcée : Système d'authentification et d'autorisation des utilisateurs protégeant les zones de configuration



En revanche, je n'ai pas encore trouvé le temps de configurer l'interface et d'effectuer les différents tests d'opérabilité, fiabilité et de viabilité de Nutify. Si certains d'entres vous l'installent et la testent. Merci de faire un retour sur ce poste (ou de poster un tuto concernant sa configuration).
 
Dernière édition:
  • J'aime
Réactions: Ludo33
Hello,
J’ai installer grâce a ton tuto, j’ai dû supprimé une ligne car le port 443 est utilisé pour https.
Par contre j’ai réussi a l’ouvrir avec l’icône de l’appli donc j’ai mis l’ip de mon nas suivi de :5050.
Très bien cette application car beaucoup d’information. Après je sais pas si ça arrête le nas automatiquement ou si une configuration est à faire. Je suis en train de chercher cela.
 
  • J'aime
Réactions: morgyann
j’ai dû supprimé une ligne car le port 443 est utilisé pour https.
Il faut supprimer aussi le volume associé.
Je viens de mettre à jour le script et précisé ce retrait afin de ne pas interférer avec l'installation d'un Proxy Inversé.
Au départ je l'avais retiré, puis après avoir parcouru le panneau de conf, j'ai constaté qu'il y avait un espace pour mettre la pile en SSL en important son certificat.
Suite à ton poste, je reviens à ma première conf (sans port 443), afin que si l'installation d'un Proxy Inversé (au préalable ou ultérieurement) - qu'il n'y ait pas de blocage d'installation.