Onduleur, Raspberry, Domoticz

Voyons ici comment gérer un onduleur relié à notre Raspberry Domoticz.

Nous prendrons un cas simple ou le raspberry devra s’éteindre tout seul avant la fin des batteries de l’onduleur.

Il y aura deux épisodes à cette saga.

Prérequis

L’onduleur devra être équipé d’un port USB que vous relierez à un des ports USB du Raspberry avec le câble USB correspondant.

Alimentez votre raspi par un des connecteurs électriques dédiés de l’onduleur.

Faites attention il y a parfois des sorties électriques secourues par l’onduleur et d’autres non secourues. Branchez vous bien entendu sur une sortie protégée (c.f. logo ou « Battery » par exemple).

Ouvrez une session ssh sur le Raspberry pour continuer la configuration.

Installation

Tapez la ligne suivante afin d’installer les outils usb si il n’existent pas.

Puis le logiciel de gestion de l’onduleur

Configuration

Lors de l’installation, il s’affiche :

Comme indiqué il faut éditer /etc/nut/nut.conf par un

Et on place tout en bas le mode à  standalone

Configuration de l’onduleur

Tapez ensuite

un fichier apparait :

Nous allons changer la partie upsname en supprimant les # de début de ligne.

  • Remplacez [upsname] entre crochets par un nom de votre choix identifiant cet onduleur.
  • driver = devra être rempli avec le nom du driver spécifique à votre onduleur, allez sur cette page pour rechercher votre modèle http://networkupstools.org/stable-hcl.html au bout à droite figure le nom à utiliser dans cette ligne.

Si vous ne trouvez pas, pas de panique beaucoup d’onduleurs fonctionnent avec le driver blazer_usb

Sinon recherchez sur le net avec le nom de votre onduleur pour trouver la référence correcte du matériel.

  • port = mettez auto pour que le Raspberry se débrouille , sinon mettez le vrai tty « /dev/tty/ACMO »

Ce qui fait  :

Mon onduleur se nomme ond_rasp_dz

on démarre par

et paf une erreur

il s’agit d’un problèmes de droits sur les ports usb, accordons les droits en notant les nombres affichés dans l’erreur ci-dessus.

On crée un fichier de règles pour l’onduleur.

Vous pouvez mettre le nom que vous voulez, toutefois le nom de l’onduleur préfixé par 10 est clair et explicite.

et on met la ligne  :

 SYSFS{idVendor}=='0665', SYSFS{idProduct}=='5161', MODE='0666'

Rebootez le pi, rebootez sinon ça marche pas.

Une fois le pi relancé , retirez le câble usb, patientez 10 seconds, rebranchez.

Maintenant interrogeons l’onduleur par la commande upsc suivie du nom donné plus haut.

me renvoie (cela dépend de votre onduleur)

On voit entre autres la charge que votre matériel « tire »sur l’onduleur (ups.load 10), le status (OL) = on line , (OB)= sur batteries , le délai avant shutdown (ups.delay.shutdown)

Nous avons donc un onduleur qui fonctionne en liaison avec notre Raspberry, nous verrons comment programmer des instructions d’extinction dans un prochain article.

Quelques références

http://networkupstools.org/ le site de nut

https://doc.ubuntu-fr.org/nut  et http://ovanhoof.developpez.com/upsusb/ pour des explications assez génériques.

Quelques trucs en vrac

Problèmes de droits

En faisant un lsusb sans câble USB puis avec on voit apparaître la ligne concernant l’usb relié à l’onduleur.

dans mon cas

Je vois que l’on est sur le bus 001 , port 004

On va voir les droits par un

on voit bien que le port 004 est associé à nut, Sinon un

remet tout ça en place.

Connexion refused, data stale, init SSL

Ces messages sont souvent résolus par le fait de débrancher/rebrancher le câble usb APRES avoir changé udev/rules.d ET avoir rebooté.

Les commandes de l’onduleur

sudo upscmd -l nom_de_l_onduleur donne la liste des commandes comprises et exécutables par l’onduleur, pratique pour le piloter par scripts.

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/
Posted in domoticz, linux, raspberry.

9 Comments

  1. Bonjour

    combien consomme un onduleur à vide ? ce ne serait pas plus qu’un RPi en charge ?

    Perso j’ai une batterie de téléphone qui alimente le RPi et en charge permanente depuis plus d’un an, et ca tient bien les coupures (et en plus j’ai 9h d’autonomie). La batterie est chargée tout en alimentant le RPi : attention ce n’est pas le cas de toutes les batteries.

    Quand on a testé son autonomie, il y a des prg en python qui permettent d’éteindre le rpi proprement après 8h sur batterie par ex. Mais perso, je ne l’ai même pas fait car je ne conçois pas être coupé 8 h par EDF (en tout cas, ca ne n’est jamais arrivé). Si ca arrive 1 fois tous les 10 ans ca ira.

  2. Petite erreur dans l’article,dans configuration de l’onduleur, c’est ups.conf qu’il faut editer et non nut.conf.

    Sinon,quelqu’un sait comment on desactive le broadcast dans la console,j’ai des message toutes les 5 min …

  3. super tuto !

     

    j’ai justement un onduleur, un Rpi, et domoticz dessus ! mais j’ai aussi un NAS synology, et d’autre petite truc a coté.

    Pour l’instant l’onduleur (APC Back-UPS pro 1200) est branché sur l’usb du NAS, et ce dernier ordonne l’extinction du Pc si il est allumé (via winNUT).

    N’y aurait il pas un équivalent à winnut pour le Rpi? afin qu’il recoive et surtout interprete correctement l’ordre venant du NAS pou s’éteindre? ou alors vaut il mieux faire l’inverse? et utilisé le Rpi pour éteindre NAS/PC etc… mais la je sais pas comment faire non plus. (mais d’aprés la fin de l’article c’est pour bientôt sur easydomoticz ^^)

  4. Normalement , lorsqu’on installe but sur le rpi , cela installe nut-client qui doit être paramétrable via les fichiers de conf pour se connecter à un autre serveur.

  5. Bonjour,

    Quand je lance: sudo upsdrvctl start

    J’ai une erreur:

    Network UPS Tools – UPS driver controller 2.7.2
    Network UPS Tools – Generic HID driver 0.38 (2.7.2)
    USB communication driver 0.32

    Fatal error: ‘maxretry’ is not a valid variable name for this driver.

    Look in the man page or call this driver with -h for a list of
    valid variable names and flags.

    Merci d’avance

    PoirS

     

  6. bonjour

    Dans ton fichier de conf tu as du mettre « maxretry » dans le nom du driver à la place du vrai nom

  7. Bonjour,

    J’ai bien trouvé mon driver et j’ai modifié le fichier conf comme ça:

    #
    [Onduleur]
    driver = usbhid-ups
    port = auto
    # < any other directives here >
    #

    Merci

    PoirS

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *