Défaut communication onduleur EATON 650

Normalement il n’y a rien à changer sauf commenter la ligne DEVICE xxxx qui pose problème et empêche le daemon ne démarrer.

Si tu as changé des choses dans le fichier de conf, le problème vient peut-être de là, sinon ce sont des information que cet onduleur ne soit pas envoyer, je ne vois pas d’autre explication.

Merci Bison pour ton aide

Curieux tout de même ,je n’ai pas modifié le fichier de configuration je l’ai laissé tel quel !L’onduleur remplacé est exactement du même type que celui tombait en panne .c’est un simple échange standard qui a été fait?.Je vais tester cet onduleur avec l’application du constructeur pour voir quelles informations remontent réellement et regarder aussi du côté du fichier de configuration la ligne DEVICE comme tu le fais remarquer …mais malheureusement pas avant deux ou trois jours

Bonjour

Ayant acheté un onduleur APC, j’étudie en ce moment ce pluging et le programme apcupsd.
La documentation d’ apcupsd est très riche : APCUPSD User Manual.

J’ ai connecté l’onduleur en USB sur mon NUC Proxmox qui heberge Jeedom et Nexcloud.
Sur ma Free Delta j’ai 2 VM Debian, Adguard home et Heimdall.
Sur chacune des VM j’ai installé apcupsd sauf sur Nexcloud.
l’apcupsd du Proxmox est le serveur, les apcupsd des autres VM sont paramétrés en client (slave) et en serveur ce qui permet de les superviser sous Jeedom.

L’ordre d’arrêt des VM et du NUC Proxmox est déclenché dès q’une des 3 conditions est vraie:

  • Le pourcentage de capacité restante de la batterie en %
  • Le temps estimé de fonctionnement restant de l’onduleur en minutes
  • Un temps de fonctionnement maximum sur batterie paramétré en secondes

J’ai donc paramétrer ces 3 paramètres dans chaque /etc/apcups.conf des VM et Proxmox.
Il faut donc séquencer l’arrêt des machines, le NUC Proxmox en dernier.
J’utilise le dernier paramètre pour les tests, en fonctionnement le temps est à 0.
N’ayant pas la remontée de ces 3 paramètres dans Jeedom j’ai modifié le plugin :
Désactiver le plugin avant modification.
Sauvegarder tout le plugin.
Le répertoire du plugin est : /var/www/html/plugins/apcups/
Fichier modifié : /core/class/apcups.class.php

Après le bloc de code suivant:

  public function postSave() {
    $apcupsCmd = $this->getCmd(null, 'status');
    if (!is_object($apcupsCmd)) {
      log::add('apcups', 'debug', 'Création status');
      $apcupsCmd = new apcupsCmd();
      $apcupsCmd->setName(__('Statut', __FILE__));
      $apcupsCmd->setEqLogic_id($this->id);
      $apcupsCmd->setLogicalId('status');
      $apcupsCmd->setType('info');
      $apcupsCmd->setSubType('string');
      $apcupsCmd->save();
    }

Ajout de :

    $apcupsCmd = $this->getCmd(null, 'mbattchg');
    if (!is_object($apcupsCmd)) {
      log::add('apcups', 'debug', 'Création mbattchg');
      $apcupsCmd = new apcupsCmd();
      $apcupsCmd->setName(__('Trigger charge batterie', __FILE__));
      $apcupsCmd->setEqLogic_id($this->id);
      $apcupsCmd->setLogicalId('mbattchg');
      $apcupsCmd->setType('info');
      $apcupsCmd->setSubType('numeric');
      $apcupsCmd->setUnite('%');
      $apcupsCmd->save();
    }

    $apcupsCmd = $this->getCmd(null, 'mintimel');
    if (!is_object($apcupsCmd)) {
      log::add('apcups', 'debug', 'Création mintimel');
      $apcupsCmd = new apcupsCmd();
      $apcupsCmd->setName(__('Trigger temps sur batterie', __FILE__));
      $apcupsCmd->setEqLogic_id($this->id);
      $apcupsCmd->setLogicalId('mintimel');
      $apcupsCmd->setType('info');
      $apcupsCmd->setSubType('numeric');
      $apcupsCmd->setUnite('mn');
      $apcupsCmd->save();
    }

    $apcupsCmd = $this->getCmd(null, 'maxtime');
    if (!is_object($apcupsCmd)) {
      log::add('apcups', 'debug', 'Création maxtime');
      $apcupsCmd = new apcupsCmd();
      $apcupsCmd->setName(__('Trigger temps fonctionnement batterie', __FILE__));
      $apcupsCmd->setEqLogic_id($this->id);
      $apcupsCmd->setLogicalId('maxtime');
      $apcupsCmd->setType('info');
      $apcupsCmd->setSubType('numeric');
      $apcupsCmd->setUnite('s');
      $apcupsCmd->save();
    }
   

fichier : /core/il8n/tr.json
Après la ligne : « Puissance fournie »: « Puissance fournie »,

Ajout de :

        "Trigger charge batterie": "Trigger charge batterie",
        "Trigger temps sur batterie": "Trigger temps sur batterie",
        "Trigger temps fonctionnement batterie": "Trigger temps fonctionnement batterie",

fichier : /core/il8n/fr_FR.json
Après la ligne : « Puissance fournie »: « Puissance fournie »,
Ajout de :

        "Trigger charge batterie": "Trigger charge batterie",
        "Trigger temps sur batterie": "Trigger temps sur batterie",
        "Trigger temps fonctionnement batterie": "Trigger temps fonctionnement batterie",

Activer le plugin.
Les 3 nouvelles commandes info seront disponibles dans les commandes de l’équipement.

Pour connaitre le nom des variables disponibles en CLI: sudo apcaccess status
Les 3 commandes rajoutées: MBATTCHG, MINTIMEL, MAXTIME

Attention, un minimum de savoir faire sous Linux est conseillé, ces modifications sont expérimentales.
Je conseille aussi de lire le manuel d’apcupsd, c’est toujours intéressant de connaitre ce qu’il y a sous le capot.
Je tiens à remercier Lunarok pour ce plugin.

2 « J'aime »

Bonjour

Pour compléter mon propos:

  • Ajout de l’affichage de 3 commandes supplémentaires
  • Affichage complet des commandes Status et dernier événement.
  • Date de la batterie ( pour la changer dans 3 à 5 ans)

Hello,
Faut que j’ajoute ça dans ma TODO List qui a tendance à grandir ces temps ci.
Je viens d’acquérir un onduleur EATON 3S 700, j’ai pris celui-ci parce qu’il y avait de bons commentaires.
Good job @echo

Bonjour

Le plus dur n’est pas d’acheter l’onduleur mais de bien gérer les arrêts et le redémarrage des machines physiques ou virtuelles. Pour surveiller les deamons upcupsd de chaque machine j’ai créé des onduleurs virtuel dans Jeedom, il y a peut être d’autres méthodes plus élégantes. :smiley:

Bonjour echo

Grand merci pour ton retour d’expérience et tes propositions .Effectivement l’idée de créer des nouvelles commandes sur le plugin APCUPS m’a traversé l’esprit pendant quelques secondes .
Mais en te lisant, et comme tu l’indiques, il faut quand même un certain degré d’expérience et de pratique au niveau du language SSH et du systeme d’exploitation linux …,connaissance, pratique et expérience que je n’ai ,malheureusement,pas à ce jour et qui ne s’acquièrent pas à mon avis en quelques jours ou semaines.
Cependant ,je suis sûr que tes informations seront grandement appéciées et testées au fil du temps par les membres du forum beaucoup plus expérimentés .

Encore grand merci pour ta participation

PS: En relisant les différents échanges que j’ai eu par le passé sur ce sujet ,je suis retombé sur les mêmes commentaires que m’a indiqués Bison ci dessus ;« Seules les informations de l’onduleur EATON 650 identifiées et traitées par le pluginAPCUPS remontent (Charge Batterie,Niveau batterie,Status,Puissance consommée,et durée secourue) »

Pour mon onduleur Eaton j’utilisait le plugin script directement : /bin/upsc Eaton-3S-550@localhost | grep "battery.charge:" | cut -d " " -f2

On doit pouvoir faire quelque chose de similaire avec apcacess status.

Il faut tester en ssh, mais une commande du type apcaccess status | grep "BCHARGE" | cut -d ":" -f2 | cut -d " " -f2 ne doit pas être trop loin pour récupérer l’information.

Bonjourseb821

Je reviens sur ta proposition.
Je viens de faire un test effectivement cela fonctionne bien dans le plugin script que je connaissais pas:

sudo apcaccess status | grep "LINEV" | cut -d ":" -f2 | cut -d " " -f2

image

Il faut que je trouve la bonne commande pour les variables alphanumériques avec des espaces. comme:
LASTXFER : Automatic or explicit self test

Cela m’ouvre des possibilités, merci pour l’info.

1 « J'aime »

Bonjour ,

Merci à vous seb821 et echo …effectivement avec le plugin script et votre exemple de ligne de commande cela fonctionne pour rapatrier des informations manquantes de l’apcaccess status …malheureusement je ne sais pas quel language j’ai utilisé (PHP,SSH ?)

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.