Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Monitorer un onduleur

Mon Feb 29, 2016 10:19 am

Bonjour bonjour.
Je planche sur mon projet d’associer un Raspberry (sous Jessie) à un onduleur pour qu’il m’alerte en cas de panne de courant.
Avec 2 solutions :

1/ avec l’envoi d’un email
L’idée c’est de m’inspirer de cet article.
En cas panne le Raspberry envoie un email à ce service d’IFTTT qui le convertit en SMS.
Ça marche.
Le problème c’est que si c’est une solution facile, elle n’est pas pérenne (rupture d’un des services externes).
Donc, je pencherai pour la

2/ avec l’envoi d’un SMS via le service Free
Avec mon abo à 2€, je peux profiter chez Free de cette « notification par SMS » gratuitement.
C’est là que ça se complique.
Comme c’est toujours compliqué de faire simple, chez moi ça se traduit par cette interrogation :
Comment faire pour que le Raspi accède à

Code: Select all

https://smsapi.free-mobile.fr/sendmsg ?user=10606753&pass=cle_identification&msg=Alerte panne !
pour que le SMS soit envoyé ?

Je ne sais pas si je me suis bien expliqué.
Si c’est confus, n’hésitez pas à me demander des éclaircissements.

Avec mes remerciements.
Last edited by Sventovit on Tue Mar 01, 2016 11:56 am, edited 1 time in total.

nikotinux
Posts: 765
Joined: Sat Feb 02, 2013 2:11 am

Re: Envoi via HTTP d’un SMS

Mon Feb 29, 2016 3:50 pm

curl

User avatar
AiGreek
Posts: 229
Joined: Sun Dec 06, 2015 7:44 pm

Re: Envoi via HTTP d’un SMS

Mon Feb 29, 2016 3:59 pm

Passe par Pushbullet tu te fera bien moins c****


jelopo
Posts: 1606
Joined: Wed Oct 17, 2012 7:53 pm

Re: Envoi via HTTP d’un SMS

Mon Feb 29, 2016 10:24 pm

Pour la soluce 2 j'ai écris ça en python, je ne sais plus si il fonctionne...

* Fichier send_sms.py

Code: Select all

#!/usr/bin/python
# -*- coding: utf-8 -*-
#

# Script d envoi de SMS chez Free

# Imports de modules Python
import urllib2
import os
import sys
import time
import ConfigParser

# Definitions variables
url = "https://smsapi.free-mobile.fr/sendmsg"
log = '/tmp/send_sms.log'
err = '/tmp/send_sms.err'

home=os.path.expanduser('~')
conf="%s/send_sms.conf" % (home)
pid = os.getpid()

# Tableau des codes erreurs HTTP
HTTPErrorCode={
     200:"Requête traitée avec succès le SMS a été envoyé sur votre mobile",
     400:"La syntaxe de la requête est erronée",
     402:"Trop de SMS ont été envoyés en trop peu de temps.",
     403:"Vous n’avez pas activé le service ou vous avez fait une erreur dans le login ou le mot de passe.",
     500:"Erreur interne du serveur. Réessayez ultérieurement.",
     999:"Erreur inconnue. Réessayez ultérieurement."
     }

# Fonctions

def tolog(txt):
    now = time.strftime('%Y-%m-%d %H:%M:%S')
    msg = "%s - %s - %s \n" % (now, pid, txt,)
    f = open(log, 'a')
    f.write(msg)
    f.close()

def toerr(txt):
    tolog(txt)
    print txt
    now = time.strftime('%Y-%m-%d %H:%M:%S')
    msg = "%s - %s - %s \n" % (now, pid, txt,)
    f = open(err, 'a')
    f.write(msg)
    f.close()

def get_conf(conf):
    try:
        if os.path.isfile(conf):
           param = {}
           config = ConfigParser.ConfigParser()
           config.read(conf)
           param["user"]=config.get('SMSAPI', 'user')
           param["pass"]=config.get('SMSAPI', 'pass')
           return param
        else:
           toerr('ERR - Le fichier %s n existe pas' % (conf,))
           sys.exit(255)
    except :
        toerr('ERR - Lecture du fichier %s impossible' % (conf))
        sys.exit (1)
    return 

def send_sms(msg):
    tolog("INFO - appel de send_sms")
    api_url="%s?user=%s&pass=%s&msg=%s" % (url, param["user"], param["pass"], msg)
    req = urllib2.Request(api_url)
    try:
        rep = urllib2.urlopen(req)
        HTTPError=rep.getcode()
    except HTTPError as e:
        toerr('ERR - Impossible de traiter la demande')
        toerr('ERR - Error code: %s' % (err.code))
        if not HTTPErrorCode.has_key(err.code):
           HTTPError=999
    except URLError as e:
        toerr('ERR - Service smsapi.free-mobile.fr indisponible')
        toerr('ERR - Raison: ', e.reason)
    tolog("OK - Code retour %s : %s" % (HTTPError, HTTPErrorCode[HTTPError]))
    return 

if __name__ == '__main__':
   param=get_conf(conf)
   msg=""
   if len(sys.argv) > 1:
      for m in sys.argv[1:]:
          msg="%s%s " % (msg, m)
      send_sms(msg)
   else:
       print "usage : send_sms.py message a envoyer"
* Fichier de conf /home/send_sms.conf
(renseigner user et mot de passe avec les paramètre donnés par Free.)

Code: Select all

# Fichier de configuration pour l envoi de SMS Free
#

[SMSAPI]
user=12345678
pass=M0td3P4ss3Fr33


Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Envoi via HTTP d’un SMS

Tue Mar 01, 2016 6:32 am

Bonjour.
Merci pour vos réponses.

Comme je n’y connais rien, j’ai regardé avec attention vos recommandations.
AiGreek wrote:Passe par Pushbullet tu te fera bien moins c****
Ça c’est effectivement formidable, mais c’est un service externe. Or, je ne souhaite dépendre d’aucun service externe pour assurer la pérennité de mon installation.

@jelopo
Merci pour le bout de code. C’est sympa.
Comme l’a suggéré
nikotinux, le grincheux… wrote:curl
fait très bien le boulot.
Alors je vais l’en remercier aussi et m’atteler à la tâche.

Bonne journée.

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Envoi via HTTP d’un SMS

Tue Mar 01, 2016 9:29 am

Bon.
C’est configuré, testé, ça fonctionne.

Pour ceux qui envisageraient de mettre en place ce monitoring de l’onduleur voici les ressources sur lesquelles je me suis appuyé :
- Monitoring a UPS with nut on Debian or Ubuntu Linux
- Raspberry Pi Home Server: Part 15–Power Failures

et en particulier celui-ci où son auteur est très clair :
- Debian 7 - Install & Monitor EATON UPS

Maintenant il me reste à déclencher l’alerte SMS via CURL.

Là je vais avoir besoin d’un coup de main.

Dans l’article que j’ai cité dans mon premier post, l’auteur donne ces indications :
On pourra spécifier un script spécifique à exécuter lors des événements électriques :

NOTIFYCMD /path/to/notification/script
Et on pourra modifier le contenu des messages à envoyer pour chaque événement électrique reconnu :

NOTIFYMSG ONLINE "Electrical power is back ON - UPS %s on line power"
NOTIFYMSG ONBATT "Loss of electrical power - UPS %s on battery"
NOTIFYMSG LOWBATT "Loss of electrical power continues - UPS %s"
Pour chaque état de l'onduleur, on pourra spécifier les actions à effectuer : - EXEC = exécuter le script de notification paramétré plus haut - SYSLOG = mentionner l'événement dans le syslog du système - WALL = faire apparaître le message dans la console de tous les utilisateurs connectés

NOTIFYFLAG ONLINE EXEC+SYSLOG+WALL
NOTIFYFLAG ONBATT EXEC+SYSLOG+WALL
NOTIFYFLAG LOWBATT EXEC+SYSLOG+WALL
On pourra par exemple utiliser un script de notification de la sorte :

#! /bin/bash
#Send email with detailed UPS report
o=$(upsc eaton)
d=$(date)
echo -e "$d" "\\n\\nEvent: " "$*" "\\n\\n======Details on UPS=====\\n" "$o" |mail -s "Evénement électrique" courriel@domain.tld
#Add any other actions: send SMS, launch shutdowns of critical systems...
Puis-je m’en inspirer ? et surtout comment faire ? pour indiquer à CURL qu’il doit exécuter
comme l’indique "nikotinux"

Code: Select all

curl "https://smsapi.free-mobile.fr/sendmsg?user=10606753&pass=cle_identification&msg=Alerte panne !"
Merci encore pour votre aide.

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Tue Mar 01, 2016 2:04 pm

Bon.
Ça coince…

D’un côté j’ai un fichier upsmon.conf
avec ce contenu :

Code: Select all

 
#Commands for shutdown on power loss
MONITOR eaton@localhost 1 upsmonitor monmotdepasse master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"


NOTIFYFLAG ONBATT EXEC+SYSLOG+WALL
NOTIFYFLAG ONLINE EXEC+SYSLOG+WALL
#NOTIFYCMD /usr/local/bin/nut-notify
NOTIFYCMD /etc/nut/notifycmd
de l’autre, mon bash (notifycmd) en chmod +x avec :

Code: Select all

#!/bin/bash
curl "https://smsapi.free-mobile.fr/sendmsg ?user=10606753&pass=cle_identification&msg=Alerte panne !"
Alors que le Raspberry fait son boulot avec l’onduleur, je ne reçois pas de notification par SMS.

Une idée ?
Ou comment peut faire pour débuguer ?

nikotinux
Posts: 765
Joined: Sat Feb 02, 2013 2:11 am

Re: Monitorer un onduleur

Tue Mar 01, 2016 2:56 pm

le grincheux fera remarquer qu'il a corrigé l'espace en trop entre le 'sendmsg' et le '?' !!

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Tue Mar 01, 2016 3:35 pm

Merci le grincheux, pardon…nikotinux.
Mais ce n’est pas ça.
C’est une coquille.

La ligne CURL semble correcte : elle n’a pas d’espace.

Une autre idée ?

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Tue Mar 01, 2016 3:48 pm

Bon j’ai trouvé.
En fait il fallait mettre dans le CURL :
(…)

Code: Select all

msg=Alerte!%20Panne%20de%20courant!"
En fait nikotinux tu m’as sacrément aidé.
Et je t’en remercie.

Et pour « le grincheux » j’espère que tu ne m’en veux pas.
Ce serait dommage de gâcher une si grande et belle amitié naissante. ;)

nikotinux
Posts: 765
Joined: Sat Feb 02, 2013 2:11 am

Re: Monitorer un onduleur

Tue Mar 01, 2016 4:06 pm

j'avais testé sans le percent-encoding dans le message avec succès mais c'est effectivement mieux de le mettre !
:D

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Tue Mar 01, 2016 4:09 pm

Oups !
Une toute (petite) dernière question :
dans mon code

Code: Select all

 
#Commands for shutdown on power loss
MONITOR eaton@localhost 1 upsmonitor monmotdepasse master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"


NOTIFYFLAG ONBATT EXEC+SYSLOG+WALL
NOTIFYFLAG ONLINE EXEC+SYSLOG+WALL
#NOTIFYCMD /usr/local/bin/nut-notify
NOTIFYCMD /etc/nut/notifycmd
Comment pourrai-je faire 2 notifications séparées…
1/ quand il y a perte de courant
2/ quand le courant est rétabli

Là avec

Code: Select all

NOTIFYFLAG ONBATT EXEC+SYSLOG+WALL
NOTIFYCMD /etc/nut/notifycmdOFF
NOTIFYFLAG ONLINE EXEC+SYSLOG+WALL
NOTIFYCMD /etc/nut/notifycmdON
c’est le même SMS qui m’ait envoyé.

Tu vois ce que je veux dire ?

nikotinux
Posts: 765
Joined: Sat Feb 02, 2013 2:11 am

Re: Monitorer un onduleur

Tue Mar 01, 2016 8:44 pm

je vois mais je suis un peu embêté pour te répondre parce que je suis en cours de travaux dans mon bureau (depuis au moins 6 mois ... c'est pas la priorité dans la maison ...), mes serveurs et mon onduleur sont en mode bordel avec les batteries nazes ! mes notes sont quelque part ... je réponds donc de tête !

le programme de NOTIFYCMD est lancé si upsmon génére un event et que le NOTIFYFLAG correspondant a le flag +EXEC dans le fichier de configuration "upsmon.conf". on a le droit a un seul script qui est appelé sans arguments, ce script doit donc récupérer des infos pour être efficace. le nom de l'onduleur et le type d'event sont déjà dispos dans l’environnement. cf http://networkupstools.org/docs/man/upsmon.html
c'est un peu fastidieux mais il y a une aide qui est fournie sous forme d'un scheduleur
http://networkupstools.org/docs/man/upssched.html
qui peut donc etre lancé par NOTIFYCMD et qui facilite surtout la gestion si on veut temporiser les réactions sur les déclenchements d’événements. mais c'est surtout a partir de la que l'on peut avoir plusieurs scripts possible en fonction de ce que l'on veut faire...
le tout est quand même assez difficile a a debugger non pas parce que NUT est mal conçu mais parce que les onduleurs ont des comportements parfois bizarres quand les batteries faiblissent (j'ai testé !). il vaut mieux interroger l’état de l'onduleur, avec upsc par exemple
http://networkupstools.org/docs/man/upsc.html
que de ce fier a temporisations qui deviennent aléatoires.

ya un peu de code a écrire donc ...
:geek:

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Wed Mar 02, 2016 9:05 am

Hello
ton statut vient de passe de « grincheux » à « trognon ». Bravo.
Bravo car ton post est si limpide que j’ai tout compris.

Du coup j’ai fouillé et trouvé un article formidable (Installation et gestion d'un UPS USB en réseau sous linux) qui, malheureusement, n’offre pas d’exemple de script pour gérer plusieurs notifications.
L’auteur renvoie vers la page que tu m’avais indiquée pour manipuler upssched.conf.

Du coup, j’ai bidouillé mon le script upssched-cmd avec

Code: Select all

#! /bin/sh

        case $1 in
                onbattwarn)
                        curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXXXXXXXXXX&pass=jeXXUGetXXXXXX&msg=Alerte!%20Panne%20de%20courant!"
                        ;;
                ups-back-on-power)
                        curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXXXXXXXXXX&pass=jeXXUGetXXXXXX&msg=Courant%20rétabli."
                        ;;
                *)
                        logger -t upssched-cmd "Unrecognized command: $1"
                        ;;
        esac
Mais ça passe pas.
Une idée ?

Précision utile :
c’est normal.
1/ je suis un vieux con
2/ j’ai touché mon raspberry il y a peu et je n’avais mis les doigts dans Unix
Incompétent donc.


En tout cas, merci pour tout.

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Thu Mar 03, 2016 10:06 am

Bon… j’ai repris ce matin mon bâton de pélerin et vais faire un récap.

************************
SOLUTION 1
Celle qui marche : le problème c’est qu’en cas rupture et de rétablissement du courant, c’est la même notification qui est envoyée.

Dans /etc/nut/upsmon.conf

Code: Select all

MONITOR eaton@localhost 1 upsmonitor monmotdepasse master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
NOTIFYCMD /etc/nut/notifycmdOFF

NOTIFYFLAG ONBATT EXEC+SYSLOG+WALL
NOTIFYFLAG ONLINE EXEC+SYSLOG+WALL

Dans /usr/local/bin/nut/notifycmdOFF le bash créé et appelé par la commande NOTIFYCMD

Code: Select all

#!/bin/bash

curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXX&pass=jeXXXXXXXXXXX&msg=Alerte!%20Panne%20de%20courant!"
curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXXX&pass=jeXXXXXXXXX&msg=Courant%20rétabli."
*******************************

Celles qui ne marchent pas…

SOLUTION 2
a) En passant par upssched.conf
Dans /etc/nut/upsmon.conf

Code: Select all

MONITOR eaton@localhost 1 upsmonitor monmotdepasse master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
NOTIFYCMD /etc/nut/upssched.conf

NOTIFYFLAG ONBATT EXEC+SYSLOG+WALL
NOTIFYFLAG ONLINE EXEC+SYSLOG+WALL
Dans /etc/nut/upssched.conf
#lancer le script de notifications

Code: Select all

CMDSCRIPT /sbin/upssched-cmd
Dans /sbin/upssched-cmd

Code: Select all

!/bin/bash

case $1 in
onbattwarn)
curl "https://smsapi.free-mobile.fr/sendmsg?user=9XXXXX&pass=jeXXXXXXXXXXX&msg=Alerte!%20Panne%20de%20courant!"
;;
ups-back-on-power)
curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXX&pass=jeXXXXXXXXXXX&msg=Courant%20rétabli."
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac
b) En passant par upssched-cmd
Dans /etc/nut/upsmon.conf

Code: Select all

MONITOR eaton@localhost 1 upsmonitor monmotdepasse master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
CMDSCRIPT /sbin/upssched-cmd
AT ONBATT * START-TIMER onbatt1 13
AT ONLINE * CANCEL-TIMER onbatt1
#AT ONBATT * START-TIMER earlyshutdown 30
#AT ONLINE * CANCEL-TIMER earlyshutdown
AT ONBATT * START-TIMER onbattwarn 30
AT ONLINE * CANCEL-TIMER onbattwarn
Dans /sbin/upssched-cmd

Code: Select all

!/bin/bash

case $1 in
onbattwarn)
curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXXX&pass=jeXXXXXXX&msg=Alerte!%20Panne%20de%20courant!"
;;
ups-back-on-power)
curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXXXXXXXXXX&pass=jeXXXXXXXXXXXXXX&msg=Courant%20rétabli."
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac
Dans les 2 cas où ça ne fonctionne pas il y a un bug.
Soit le fichier upssched-cmd est mal rédigé.
Soit il y a une erreur dans la conception des enchaînements.

Bref, si ça peut servir et si un jour quelqu’un sait comment régler le problème…

Bonne journée.
Last edited by Sventovit on Thu Mar 03, 2016 4:53 pm, edited 2 times in total.

nikotinux
Posts: 765
Joined: Sat Feb 02, 2013 2:11 am

Re: Monitorer un onduleur

Thu Mar 03, 2016 4:10 pm

même si ça ne fonctionne pas au top c'est déjà du beau travail de partage ...

des que je peux je viendrais compléter !

Sysy
Posts: 1
Joined: Sun Mar 06, 2016 2:51 pm

Re: Monitorer un onduleur

Sun Mar 06, 2016 3:03 pm

Hello à tous,

Tout d’abord merci à ceux qui participent et qui prennent du temps pour faire vivre ces forums d’entraide ! Ayant fait l’acquisition il y a peu d’un raspberry et n’y connaissant vraiment rien à la programmation et à linux ces sites sont d’une aide fantastique ;)
Sventovit concernant ton pb j’ai suivi avec intérêt vos échanges avec nikotinux. J’ai essayé de mon côté en modifiant les fichiers en passant par ta solution 2 (upssched.conf) mais ça ne fonctionnait pas. Je me suis basé sur le doc suivant http://networkupstools.org/docs/user-manual.pdf (voir le paragraphe 7.2 , c’est un gars qui y faisait référence dans un des liens que tu as posté le 01/03.)
Bref j’ai essayé de compléter ce que tu avais fait mais ça n’a rien donné (ajout des lignes PIPEFN et LOCKFN avec création de fichiers…) donc si tu veux chercher dans cette direction il y a peut être à regarder dans ce doc. Encore une fois comme je n’y connais vraiment rien en script et en linux je ne peut pas t’aider…
En revanche en regardant les différents messages que me renvoyait le raspberry j’ai fait des recherches et suis tombé sur ça : https://srackham.wordpress.com/2013/02/ ... ntu-linux/

J’ai essayé et ça fonctionne :D cela permet de gérer les 2 états de l’onduleur. Je reçois donc bien un sms quand il y a une coupure et un autre quand le courant est rétabli.

J’ai donc remis dans upsmon.conf

Code: Select all

NOTIFYCMD "/etc/nut/notifycmd"
J’ai créé le fichier notifycmd dans /etc/nut/ ou j’ai mis le script suivant :

Code: Select all

#!/bin/bash
#
# NUT NOTIFYCMD script

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin

trap "exit 0" SIGTERM

if [ "$NOTIFYTYPE" = "ONLINE" ]
then
        echo $0: Le courant est retabli | wall
        curl "https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXXX&pass=XXXXXXX&msg=Courant%20rétabli%20!"
        sleep 5
        mailx -s "UPS ALERTE : COURANT RETABLI " monadresse@mail.fr
        mailx -s "UPS ALERTE : COURANT RETABLI " monadresse2@mail.fr
        # Cause all instances of this script to exit.
        killall -s SIGTERM `basename $0`

fi

if [ "$NOTIFYTYPE" = "ONBATT" ]
then
        echo $0: Coupure electique, fermeture du systeme dans 3 minutes... | wall
        curl "https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXX&pass=XXXXXXXX&msg=Coupure%20électrique%20!"
        sleep 5
        mailx -s "UPS ALERTE : COUPURE DE COURANT " monadresse@mail.fr
        mailx -s "UPS ALERTE : COUPURE DE COURANT " monadresse2@mail.fr
        # Loop with one second interval to allow SIGTERM reception.
        let "n = 180"
        while [ $n -ne 0 ]
        do
                sleep 1
                let "n--"
        done
        echo $0: Fermeture en cours... | wall
        upsmon -c fsd

fi
Puis j’ai fait un chmod +x /etc/nut/notifycmd pour les droits

J’ai ajouté un envoi sur 2 adresses mail et un sleep 5 juste avant car j’avais l’impression de ne pas recevoir le mail à chaque fois.

Cette solution plus simple fonctionne pour moi et sans passer par upssched .
Reste à adapter le script à ton besoin. J’ai essayé d’ajouter un if then pour l’état quand la batterie est faible mais je ne sais pas ce que ça donne donc je ne l’ai pas mis là.

Donc à toi de voir maintenant et en espérant que cela en aidera d'autres:)
Merci en tout cas pour votre aide et bon courage à tous !

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Mon Mar 07, 2016 2:17 pm

Et voilà !
Sysy a trouvé le chaînon manquant après avoir réfléchi ; ce qui ne fut pas mon cas.
En revanche en regardant les différents messages que me renvoyait le raspberry j’ai fait des recherches et suis tombé sur ça : https://srackham.wordpress.com/2013/02/ ... ntu-linux/
Effectivement l’exemple du script dans l’article et ce que vous en avez fait me semble régler le problème.

Alors, demain (sonnez trompettes) je suis sur le pont dès l’aube pour l’adapter à ma configuration.
Et sans doute rajouter la fonction mail.

Et je reviens après pour raconter.
Déjà, un immense merci en attendant ma reconnaissance éternelle.
À demain.

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Tue Mar 08, 2016 8:42 am

Bon.
Le voilà de retour, le roi du copier/coller.

Le script de Sysy a fonctionné du premier coup.

J’en ai donc profité pour installer Postfix afin d’utiliser le SMTP de Google.
(avec de petits problèmes d’authentification que j’ai pu résoudre grâce à cet article :
Using Postfix SASL authentication with Google 2-step verification on)

Maintenant tout est bon.
SMS, emails… ça sonne dans tous les coins.

Alors merci.
Et une reconnaissance éternelle pour Sysy !

À la revoyure.

Eni-RPI
Posts: 14
Joined: Wed May 04, 2016 4:05 am

Re: Monitorer un onduleur

Sat Mar 24, 2018 8:26 pm

Sventovit wrote:
Tue Mar 08, 2016 8:42 am
Bon.
Le voilà de retour, le roi du copier/coller.

Le script de Sysy a fonctionné du premier coup.

J’en ai donc profité pour installer Postfix afin d’utiliser le SMTP de Google.
(avec de petits problèmes d’authentification que j’ai pu résoudre grâce à cet article :
Using Postfix SASL authentication with Google 2-step verification on)

Maintenant tout est bon.
SMS, emails… ça sonne dans tous les coins.

Alors merci.
Et une reconnaissance éternelle pour Sysy !

À la revoyure.
Salut je suis dans la même interrogation j'aimerais instaurer un envoi de sms du coup au final quelle solution dois-je suivre ? :oops:

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Mon Jun 25, 2018 3:12 pm

Salut tout le monde…
ça fait un bail.

Pendant 2 ans mon RPI a fait le job sans broncher, mais samedi : CRAC ! plus d’alerte…
Pourtant rien a bougé de mon côté.
J’ai tout vérifié : l’onduleur fonctionne, le RPI aussi, le câble USB est OK et reconnu.

En regardant les logs j’ai vu ça :
rc.local[309]: curl: (60) SSL certificate problem: certificate has expired
Et là, je suis comme la poule qui a trouvé un couteau.
Quelqu’un aurait une idée ?

jelopo
Posts: 1606
Joined: Wed Oct 17, 2012 7:53 pm

Re: Monitorer un onduleur

Mon Jun 25, 2018 7:27 pm

Bonjour,

Le fichier rc.local qui lance les commande au démarrage du PI à détecté une erreur dans l'une de ses commandes.
Il y en a une qui contient la commande curl.
Pour retrouver laquelle, faire

Code: Select all

grep curl /chemin/executable
pour chaque commande du fichier.

Ensuite, CURL appelle une url,et sur celle-ci il y a un problème de certificat erroné. Le changement du certificat est réalisé par le webmaster du site web. Demander à celui-ci de mettre à jour le certificat.

A+

Sventovit
Posts: 53
Joined: Thu Feb 18, 2016 7:55 am

Re: Monitorer un onduleur

Tue Jun 26, 2018 5:42 am

Okey.
Sympas les explications.

Une autre question ?
Dans mon fichier

Code: Select all

#!/bin/bash
#
# NUT NOTIFYCMD script

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin

trap "exit 0" SIGTERM

if [ "$NOTIFYTYPE" = "ONLINE" ]
then
        echo $0: power restored | wall
        curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXXX&pass=jeXXXXXXXXX&msg=Courant%20rétabli!"
		# Cause all instances of this script to exit.
        killall -s SIGTERM `basename $0`
fi

if [ "$NOTIFYTYPE" = "ONBATT" ]
then
        echo $0: 3 minutes till system powers down... | wall
        curl "https://smsapi.free-mobile.fr/sendmsg?user=19XXXXX&pass=jeXXXXXXXXXXX&msg=Alerte!%20Panne%20de%20courant!"
		# Loop with one second interval to allow SIGTERM reception.
        let "n = 600"
        while [ $n -ne 0 ]
        do
                sleep 1
                let "n--"
        done
        echo $0: commencing shutdown | wall
        upsmon -c fsd
fi
comment puis-je dire à Curl de ne pas vérifier le certificat ?

jelopo
Posts: 1606
Joined: Wed Oct 17, 2012 7:53 pm

Re: Monitorer un onduleur

Tue Jun 26, 2018 6:04 am

Bonjour,

Je viens de faire le test chez moi (avec mes identifiants!), ça fonctionne. Peut-être ont-ils mis à jour le certificat ?

A+

Return to “Français”