Test connexion http domoticz

Bonjour à tous,domo

je ne sais pas si c’est le cas pour d’autre personnes mais sur mon rasberry, quelque fois je n’ai plus accès a domotique en http. La seule solution est alors de se connecter en ssh sur le server et de redémarrer domoticz ou complètement le raspberry. Le problème c’est que lorsque vous êtes loin de chez vous et que vous n’avez pas accès en ssh à votre raspberry et bien vous êtes bloqué, vous devez attendre de rentrer chez vous pour redémarrer domoticz.

Apres de longues recherches dans le logs de domoticz et du rasperry impossible de trouver la causse de ce plantage [Edit mars 2016: la version 2.3530 de domotique semble bien plus stable]. Je vois que les logs de domoticz continues comme si de rien n’était mais le server web ne réponds plus. Cela arrive assez fréquemment, environ 3 à 4 fois par mois.

Pour palier à ce problème j’ai créé un petit script qui va tester régulièrement l’accès http à domoticz et qui en cas de problème de connexion va redémarrer domoticz. Rien de bien compliqué mais je me dis que ça peux servir si vous rencontrez le même problème.

A ajouter dans la crontab root :

# Check http access
*/2 * * * *  /root/scripts/test_http.sh >> /tmp/test_http_access.log

Script : /root/scripts/test_http.sh

#!/usr/bin/ksh
################################################################
#
# This script will test the domoticz http web access
#
################################################################
# test connexion with max 5s
curl -s http://<raspberry IP>:<PORT> -m 5 > /dev/null
CR=$?


if [ $CR != 0 ]
then
        echo "`date` Probleme RC=$CR"
        echo "Restarting Domoticz"
        /etc/init.d/domoticz.sh restart

else
        echo "`date`  RAS code retour $CR "
fi

J’ai mis en place ce script depuis plusieurs mois, depuis plus aucun problème. Je peux visualiser les erreurs dans le fichier log ainsi que les redémarrage de domoticz:

root@raspberrypi:~# grep -v RAS /tmp/test_http_access.log
Thu May 14 20:48:07 CEST 2015 Probleme RC=28
Restarting Domoticz
Restarting Domoticz Home Automation System: domoticz2015-05-14 20:48:12.001  Domoticz V2.2286 (c)2012-2015 GizMoCuz
2015-05-14 20:48:12.002  System: Raspberry Pi
2015-05-14 20:48:12.002  Startup Path: /home/pi/domoticz/
.
Thu May 14 21:00:07 CEST 2015 Probleme RC=28
Restarting Domoticz
Restarting Domoticz Home Automation System: domoticz2015-05-14 21:00:12.116  Domoticz V2.2286 (c)2012-2015 GizMoCuz
2015-05-14 21:00:12.117  System: Raspberry Pi
2015-05-14 21:00:12.118  Startup Path: /home/pi/domoticz/
.
Thu May 14 21:32:01 CEST 2015 Probleme RC=7
Restarting Domoticz
Restarting Domoticz Home Automation System: domoticz2015-05-14 21:32:31.639  Domoticz V2.2286 (c)2012-2015 GizMoCuz
2015-05-14 21:32:31.640  System: Raspberry Pi
2015-05-14 21:32:31.641  Startup Path: /home/pi/domoticz/
.

9 réflexions au sujet de « Test connexion http domoticz »

  1. Julien

    Bonjour,

    Super ton script, je rencontrais exactement le même problème.
    En revanche dans mon cas, redémarrer Domoticz uniquement le laissait de marbre si il n’y avait pas de requête HTTP pour le secouer. Il ne récupérait aucune valeur tant que personne ne s’était connecté en HTTP.
    J’ai donc modifié légèrement le script pour que le reboot soit général : « sudo reboot » au lieu de « /etc/init.d/domoticz.sh restart »
    Par ailleurs, la fonction ‘date’ ne fonctionnait pas pour moi quand elle est dans un echo. J’ai donc mis une ligne avec le mot date tout seul juste avant chaque echo, et c’est tout bon.
    Il ne reste plus qu’à gérer les fichiers de log pour se les archiver par année.
    Merci encore pour ton script !
    Julien

    Répondre
  2. Manu Auteur de l’article

    Bonjour Julien,

    merci pour ton retour, effectivement le reboot marche aussi au niveau serveur, c’est ce que j’utilisait au début pour être honnête. En remplaçant par uniquement le redémarrage de domoticz ça fonctionne aussi bien sur mon Raspberry donc j’ai gardé ça.

    Étrange pour la commande date mais après tout c’est bien aussi avec 2 lignes 🙂

    A+
    Manu

    Répondre
  3. Fred

    Bonjour,

    Je suis totalement novice en langage de programmation ou de scripts.
    Je viens juste d »installer Domoticz sur mon Nas Synology DS213+ .
    Je trouve ce logiciel ou interface vraiment sympathique.
    Sur 1 semaine j’ai eu 2 plantages je pense et donc je suis intéressé par votre script.
    Mais le problème est que je ne sait pas comment faire pour l’activer sur mon Nas synology.
    Je sais entrer dedans via Putty, s’il faut manipuler des fichiers j’y arrive mais je ne maitrise aucunement les scripts.
    Avez-vous des conseils à me donner ?

    Merci d’avance et sympa ce que vous partager !

    Répondre
    1. Julien

      Bonjour Fred,

      Simple curiosité, tu lui fais faire quoi à Domoticz sur ton NAS ?
      Tu lui as relié des périphériques via le rzo ? ou USB ?

      J’avais pas pensé à l’héberger sur un NAS, c’est vrai que c’est pas bête, mais du coup tu n’as pas les ports GPIO du Raspberry.

      Julien

      Répondre
      1. Fred

        Je ne suis pas un pro mais autodidacte.
        J’ai Nas Synology il faut installer le « paquet » domoticz, ça se fait facilement.
        Ensuite j’y ai mit un rfxcomm 433mhz sur un des ports usb. Poulie que le Rfxcomm soit reconnu il faut installer d’un driver ce qui est relativement simple et après tout marché nickel !
        J’ai commandé un d’ongle Z-stick z-wave pour élargir le champ d’applications (gestion chauffage volet….)
        Voilà ou j’en suis les débuts sont prometteurs en comparaison de ma Zipabox qui vraiment un arnaque !

        Répondre
  4. Manu Auteur de l’article

    Bonjour Fred,

    je ne connais pas vraiment ce Nas Synology mais visiblement il se comporte comme un os a par entiere…

    IL a également un planificateur de tache (crontab) .
    J’ai trouvé ces document, je pense qu’il t’aideront a configure ta crontab correctement :

    http://www.multigesture.net/articles/how-to-use-cron-on-a-synology-nas/

    en gros CA a l’air pareil que sur raspberry sauf qu’il faut relance le service apres modification :

    crontab -e
    to ajoute les lignes :

    # Check http access
    */2 * * * *  /root/scripts/test_http.sh >> /tmp/test_http_access.log

    ensuite tu relance le service :

    $ /usr/syno/etc.defaults/rc.d/S??crond.sh stop
    $ /usr/syno/etc.defaults/rc.d/S??crond.sh start

    ou

    synoservice -restart crond

    Voir aussi http://kvz.io/blog/2011/02/28/optimize-your-synology-for-downloading/

    J’espère que ça t’aidera !

    Répondre
  5. Fred

    Bonsoir à tous,

    Je vous reviens suite à mes questions.
    J’ai opté pour un Raspberry 3 et y installé Domoticz.
    Cela fait une 10n de jours que cela tourne et les débuts sont prometteurs.
    j’ai implémenter le script suivant dans /home/pi/domoticz/scripts/test_http.sh, est-ce OK ?

    #!/usr/bin/ksh
    ################################################################
    #
    # This script will test the domoticz http web access
    #
    ################################################################
    # test connexion with max 5s
    curl -s http://192.168.1.4:8080 -m 5 > /dev/null #IP du raspberry et 8080 le port de Domoticz
    CR=$?
    if [ $CR != 0 ]
    then
    echo « `date` Probleme RC=$CR »
    echo « Restarting Domoticz »
    /etc/init.d/domoticz.sh restart
    else
    echo « `date` RAS code retour $CR  »
    fi
    pour la crontab :
    */2 * * * * sudo /home/pi/domoticz/scripts/test_http.sh

    Fallait-il mettre sudo ou pas devant ?

    Merci d’avance,

    Fred.

    Répondre

Laisser un commentaire

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