gawindx / WinNUT-Client

This is a NUT windows client for monitoring your ups hooked up to your favorite linux server.
GNU General Public License v3.0
398 stars 70 forks source link

When connection is lost, it does not try to reconnect #16

Closed softlion closed 3 years ago

softlion commented 4 years ago

When connection is lost, it does not try to reconnect

softlion commented 4 years ago

La valeur est en millisecondes, et à 5000 par défaut.

Aha c'est pas indiqué que c'est des millisecondeS. Il y avait 10 dans la boite. Ca a réglé le souci de fenetre lente

FileCity commented 4 years ago

10ms devait même flooder le serveur NUT et expliquer la lenteur ( single thread app ), fort possible... Je me remet au bon soins de gawindx pour remettre ces unités en secondes ( 5 par défaut à l'installation ) serait un excellent début.

softlion commented 4 years ago

Normal que ca me mette batterie basse ? Ah et c'est pénible, ca perds ses valeurs. J'avais bien mis 240V et non 100V ...

image

softlion commented 4 years ago

J'ai mis 240V partout. mais toujours batterie basse. Et propriétés (noms etc) vides.

image

softlion commented 4 years ago
07/09/2020 15:15:58 17268  UPS_Network : Enter Retrieve_UPS_Data
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving battery.charge
07/09/2020 15:15:58 17268  UPS_Network : Process Result With battery.charge : VAR eaton800 battery.charge "255"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving battery.voltage
07/09/2020 15:15:58 17268  UPS_Network : Process Result With battery.voltage : VAR eaton800 battery.voltage "12"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving battery.runtime
07/09/2020 15:15:58 17268  UPS_Network : Process Result With battery.runtime : VAR eaton800 battery.runtime "86400"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving battery.capacity
07/09/2020 15:15:58 17268  UPS_Network : Process Result With battery.capacity : VAR eaton800 battery.capacity "7"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving input.frequency
07/09/2020 15:15:58 17268  UPS_Network : Process Result With input.frequency : VAR eaton800 input.frequency "50"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving input.voltage
07/09/2020 15:15:58 17268  UPS_Network : Process Result With input.voltage : VAR eaton800 input.voltage "220"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving output.voltage
07/09/2020 15:15:58 17268  UPS_Network : Process Result With output.voltage : VAR eaton800 output.voltage "220"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving ups.load
07/09/2020 15:15:58 17268  UPS_Network : Process Result With ups.load : VAR eaton800 ups.load "100"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving ups.status
07/09/2020 15:15:58 17268  UPS_Network : Process Result With ups.status : VAR eaton800 ups.status "OL"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving ups.realpower.nominal
07/09/2020 15:15:58 17268  UPS_Network : Process Result With ups.realpower.nominal : VAR eaton800 ups.realpower.nominal "0"
07/09/2020 15:15:58 17268  UPS_Network : Enter GetUPSVar
07/09/2020 15:15:58 17268  UPS_Network : Apply Fallback Value when retrieving ups.current.nominal
07/09/2020 15:15:58 17268  UPS_Network : Process Result With ups.current.nominal : VAR eaton800 ups.current.nominal "1"
softlion commented 4 years ago

Aha je peux pas mettre 255 dans battery charge lol.

image

FileCity commented 4 years ago

C'est un UPS Eaton. Il y a de l'info sur le forum de NUT. En général j'utilise des UPS de APC, j'ai peu de problèmes avec ceux-ci. Certains UPS ont de drôles de comportement parfois et il faut 'tweaker' les settings sur les config du serveur directement en premier. Quand le comportement sera stable et prévisible, ensuite regarde du côté de WinNUT.

FileCity commented 4 years ago

Aussi, mettre la gauge de 'Tension de Batterie' entre 9 et 15 me semble aussi plus sensé. Les UPS chargent souvent les piles près de 13.5v ( 2.25v par cellule / 13.5v par pile ). 12v étant la tension nominale après une certaine décharge. À 10.5v la pile est considérée déchargée.

softlion commented 4 years ago

Le coup de la charge de batterie c'est pas un pb du serveur nut, c'est un probleme de winnut. Le eaton renvoie la valeur entre 0 et 255. Mais winnut bloque entre 0 et 100. Du coup il voit 20% de charge alors qu'il y en a 100% !!

image

FileCity commented 4 years ago

En fait il faudrait voir et comparer avec d'autres UPS. Mon APC va de 0 a 100. WinNUT est 'probablement codé' pour des valeurs de 0 a 100, je n'ai pas vérifié le code. Si ton UPS donne des valeurs de 0 a 255, il aurait besoin d'une échelle spécifique. WinNUT pourrait en tenir compte, voir avec gawindx pour une prochaine version. Si un user entre de 0 à 100 et inférieur ou égal a 100 = on fonctionne avec ça. Si un user entre de 0 à 255 et inférieur ou égal a 255 = on prends la valeur, on divise par 2.55, on oublie le reste de la division et on garde la base et on fonctionne avec. On oeut donc la ramener de 0 à 100 en interne sans trop change le code. Il faut simplement comparer si le chiffre entré et plus haut que 100 et avertir l'utilisateur pour éviter les erreurs d'entrées. Ceci réglerait le problème du côté de WinNUT pour des UPS avec valeurs de 0 à 255.

FileCity commented 4 years ago

@gawindx, Je crois qu'il faudrait créer une liste de features demandés et te laisser trier les priorités. La priorité sera gérée par toi, le code t'appartient. Je suis nouveau dans GitHub alors je ne sais pas. Je travaille sur d'autres systèmes... De cette façon les gens pourraient voir la liste et attendre les prochaines versions... Ceci évitera des discussions comme la présente, qui s'écarte du sujet... Devrions nous (ou tu) créer des 'issues' pour chaque demande ou problème qui passe ? Je veux bien donner mon aide mais je ne suis qu'un client de ce projet et je ne veux pas prendre la place d'autres personnes, je crois que tu comprends l'idée... J'aimerais ton avis sur le sujet...

gawindx commented 4 years ago

Entièrement d'accord pour la liste de features car effectivement ce fil s'écarte du sujet et mélange plusieurs problématiques. Je vais réfléchir à la meilleures façons de mettre ça en place.

Concernant le problème de la charge :

Ce choix est que, lorsque la valeur de charge est de 255 et en fonction des autres valeurs obtenues (tension de batterie entre autres, je n'ai plus la formule en tête) on essaie d'estimer la charge batterie actuelle. Le problème étant que dans le cas d'un pilote mal fichus ou d'une config nut mal faite, je ne peux pas inventer des valeurs qui sont "exotiques"

@softlion, si tu regarde ce que tu as posté il y'a un mois (https://github.com/gawindx/WinNUT-Client/issues/16#issuecomment-671413714), tu verras qu'à ce moment tu avais des valeurs cohérentes et que les informations que WinNUT pouvait récupérer auprès du serveur sont correctes (battery.charge = 100).

Et si on considère que :

@softlion et @FileCity : PS et pour info, tout comme j'estime la valeur de la charge batterie dans certains, la valeur de runtime est elle aussi calculée lorsque la valeur qu'obtiens WinNUT est incohérente (86400 par exemple, à moins d'avoir un onduleur de la taille d'un local technique mais ça doit rester assez rare, et on utilisera pas WinNUT dans ce cas). Et dans le cas ou on estime la valeur de runtime restant, la valeur de la charge batterie est prises en compte si j'ai bonne mémoire. Donc, dans le cas de certains onduleur mal géré ou configuré, les informations affichées peuvent être des estimations qui s’appuient sur les lois de la physique et de l'Electricité (si je me suis pas planté lors de mon raisonnement sur ce point) mais qui dans certains cas peuvent aboutir à un grand n'importe quoi dans le sens ou on estime une valeur en se basant sur des estimations, cela peux donc amener à une marge d'erreur assez importante.

ça fait partie des points qui justifie le fait que je doive mettre en place un wiki pour informer de ces particularités en plus d'expliquer clairement le fonctionnement du soft.

softlion commented 4 years ago

Tu as raison. Le driver nut du serveur nut est simplement déconnecté. winnut ne le détecte donc pas ?

Il semble y avoir un bug dans ce serveur nut qui n'arrive plus à se connecter à l'eaton. Par contre windows y arrive très bien avec l'app windows fournie par Eaton.

J'ai mis à jour le firmware de l'eaton et rebooté le pi. Ca refonctionne. On va voir pour combien de temps.

softlion commented 4 years ago

image

gawindx commented 4 years ago

Non, il semble que WinNUT ne le détecte pas, mais c’est un cas de figure que je n’ai pas encore étudié donc Nut l’indique probablement mais je ne l’interprète pas correctement.

Pour ton problème de déconnexion je ne pense pas que ça vienne de Nut mais plutôt un problème du pi.

j’ai personnellement eu le cas d’une version (Fedora il me semble mais c’était peut être une ubuntu server) qui plantait le port usb à intervalle régulière. J’avais du mettre en place un script pour « casser » et remettre en route le bus usb en cause. Ce problème a disparu sur une upgrade suivante et je ne pense pas que j’ai encore le script dans un coin, je regarderais quand même si jamais je le retrouve et que ça peut t’aider.

FileCity commented 4 years ago

Je ne sais pas si d’augmenter le délais de rafraîchissement pourrait être bénéfique ? pollinterval = 5 dans UPS.CONF, le défaut est de 2. 5 secondes au lieu de 2 pourrait éviter de demander les données trop souvent au UPS et éviter de le 'flooder'. Je crois que d’essayer ceci sur le UPS EATON serait un début. Aussi peut-être valider si NUT tourne avec un user autre que root, si le user à les bons accès pour les ports USB. Je ne sais pas si mon commentaire est pertinent mais bon... à suivre...

gawindx commented 3 years ago

Petit retour sur cette issue :

Je pense que c'était les derniers problèmes encore non résolus sur ce post, je vais donc le fermer si tu n'y vois pas d'inconvénients.

softlion commented 3 years ago

Fais ce que tu veux j’ai abandonné le raspberry pi n’est pas stable c’est de la grosse merde en fait. Plus jamais pour ma part de raspberry.

B.

Le sam. 6 févr. 2021 à 18:17, Decaux Nicolas notifications@github.com a écrit :

Petit retour sur cette issue :

  • Pour ce qui est de la connection au serveur NUT alors que l'onduleur n'est pas connecté, cela ne devrait plus se produire vaec la derniére version
  • De même pour le problème de chargement des valeurs mal initialisées

Je pense que c'était les derniers problèmes encore non résolus sur ce post, je vais donc le fermer si tu n'y vois pas d'inconvénients.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gawindx/WinNUT-Client/issues/16#issuecomment-774509961, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABOSJGZKFSLKYUMOGKUAHDS5V2T7ANCNFSM4NZVFN6Q .

-- Benjamin Mayrargue Vapolia.fr +33682227850 vapolia.fr http://www.vapolia.fr/ Skype/WhatsApp/Slack/Discord/Zoom/Teams/Meets/...

FileCity commented 3 years ago

Pour ma part, c'est OK. Merci.