Script qui redemarre domoticz.sh si crash

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
nickos
Messages : 50
Inscription : 28 sept. 2014, 19:28

Script qui redemarre domoticz.sh si crash

Message par nickos »

salut
sur le site de domoticz, j'ai trouvé un script for utile qui redemarre domoticz.sh si il crash, donc domoticz offline

dans /home/pi/domoticz/scripts
un nano check_domoticz_online.sh
coller le script

Code : Tout sélectionner

#!/bin/bash
if [[ ! "$(sudo service domoticz.sh status)" =~ "domoticz is running" ]]
then
sudo service domoticz.sh start
echo "domoticz restarted"
fi
ctrl o pour enregistré et ctrl x pour quitté

pour le rendre exécutable

Code : Tout sélectionner

sudo chmod +x /home/pi/domoticz/scripts/check_domoticz_online.sh

Maintenant on ajoute la ligne suivante dans le fichier crontab (nous allons exécuter ce script chaque minute)
tapez la commande suivante
crontab -e
ajoutez cette ligne vers la fin

Code : Tout sélectionner

*/1 * * * * sudo /home/pi/domoticz/scripts/check_domoticz_online.sh
ctrl o pour enregistré et ctrl x pour quitté

normalement finit les domoticz offline
Rpi B avec Domoticz + RFXcom 433.92Mhz + Carte 8 relais sur Gpio
+ 9 Module 1000W DI.O+ 1 Multi modules DI.O + 2 Détecteur de fumée sans fil FA20RF
Rpi B avec squeezlite + Webcam sous Motion
Rpi B avec squeezlite
Rpi B avec Raspbmc + Squeelite pour xbmc
frca14
Messages : 3
Inscription : 14 avr. 2015, 09:54

Re: Script qui redemarre domoticz.sh si crash

Message par frca14 »

Bonjour,
Je cherchais pourquoi mes GPIO qui actionnent des relais repassaient à l'état low au bout d'un moment.
J'ai écris un script pour mesurer le temps au bout duquel l'état changeait.
Résultat : ce n'est pas au bout d'un certain temps mais à heures fixes, à l'heure pile et à 30 minutes.
J'ai cherché ce qui se passait à ces heures et j'ai trouvé dans crontab que j'avais ce script de vérification que je lançais à ces heures.
Je l'ai supprimé et mes GPIO sont devenus stables.
J'ai trouvé la réponse sur ce forum ici : viewtopic.php?f=8&t=467
Du coup j'utilise le script proposé dans le post cité à la place de celui ci-dessus.
Tout ça pour dire : merci à tous
Dernière modification par frca14 le 16 avr. 2015, 22:04, modifié 2 fois.
RPiB Jarvis+LogitechUBS47
RPi3 motionEye+PiCam
RPi2 DomoticzV3.4834+RFLink:4 zones chauffage fil pilote sur GPIO+relais, delestage via blocky, ECS via ITL3500, lumieres, sonnette, portail, sondes température, teleinfo EDF conso+product
iPhone6+Pilot
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Script qui redemarre domoticz.sh si crash

Message par js-martin »

Merci frca14 : je débute dans Domoticz et j'étais étonné de ne rien trouver sur le sujet !

Je suis content que mon expérience et mon script ont pu t'aider ;)
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
beting
Messages : 28
Inscription : 20 sept. 2014, 12:12

Re: Script qui redemarre domoticz.sh si crash

Message par beting »

Bien vue
ramses54
Messages : 53
Inscription : 03 sept. 2015, 15:02

Re: Script qui redemarre domoticz.sh si crash

Message par ramses54 »

bonjour,
j'ai peut être mal compris le script mais ne faut pas-t-il pas redémarrer domoticz si le status est "domoticz is NOT running"?

en plus quelque soit la réponse que vous le ferez, je n'arrive pas à lancer le script
quelqu'un peut m'aider?
d'avance merci
Rapsberry + Domoticz et ImperiHome
RFX 433E
ZWAVE USB
Sondes Oregon
Switches Blyss
Smoke sensor Fibaro
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Script qui redemarre domoticz.sh si crash

Message par patrice »

Bonsoir
@ramses
le script commence par un ! qui signifie "non", donc si je ne recupere pas "domoticz is running" alors je le lance
syntaxiquement le script est correct .
Cela n'explique toutefois pas pourquoi cela plantait pour frc14

Code : Tout sélectionner

#!/bin/bash
if [[ ! "$(sudo service domoticz.sh status)" =~ "domoticz is running" ]]
then
sudo service domoticz.sh start
echo "domoticz restarted"
fi
Je l'ai testé sur mon install et en effet il fait le job attendu.
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Script qui redemarre domoticz.sh si crash

Message par js-martin »

comme on l'avais signalé plus haut, ce script remet à zéro les GPIO à chaque test...il est préférable de faire ce genre de script :

Code : Tout sélectionner

#!/bin/bash
# Script qui vérifie l'état de domoticz et qui le relance si offline

if pgrep domoticz ; then
 echo "Domoticz is running"
else
 sudo service domoticz.sh start
fi
Ce script a encore un défaut : parfois, le serveur web intégré à Domoticz plante, dans ce cas, il est possible de faire cela :

http://domotique.web2diz.net/?p=105

par contre, je n'ai pas compris ce qui fait planter le serveur web interne de Domoticz...
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
ramses54
Messages : 53
Inscription : 03 sept. 2015, 15:02

Re: Script qui redemarre domoticz.sh si crash

Message par ramses54 »

merci de cette info. je vais changer mon script. je débute sur Linux et effectivement, je ne connais pas toutes ces subtilités.
Rapsberry + Domoticz et ImperiHome
RFX 433E
ZWAVE USB
Sondes Oregon
Switches Blyss
Smoke sensor Fibaro
sylvainsjc
Messages : 94
Inscription : 22 févr. 2015, 14:35

Re: Script qui redemarre domoticz.sh si crash

Message par sylvainsjc »

Bonjour,
Je connais très bien Linux et il est inconcevable que demander l'état d'un service "status" perturbe les GPIO ou quoique ce soit d'autre.
Sauf... si le script est incorrect et pour moi il l'est.

1) Il est préférable que ce soit le compte root qui lance ce script
2) Il est préférable de toujours indiquer dans le script les chemins des utilitaires (par exemple il ne faut pas taper la commande "service" mais la taper avec son chemin "/usr/sbin/service"

Pour info voici mon script :

Code : Tout sélectionner

#!/bin/bash
# Script qui vérifie l'état de domoticz et qui relance si off
/usr/sbin/service domoticz.sh status
if [ $? -ne 0 ]; then  # Si le service n'est pas lancé
   /usr/sbin/service domoticz.sh start
fi
exit 0
et l'extrait de mon crontab sous root (pour devenir root il faut taper "sudo -s")

Code : Tout sélectionner

*/10 * * * * /home/pi/domoticz/scripts/control-if-started.sh >/dev/null 2>&1
epierre
Messages : 648
Inscription : 27 mai 2015, 09:32
Contact :

Re: Script qui redemarre domoticz.sh si crash

Message par epierre »

sinon il y a monit qui est fait pour cela
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz - MySensors
zigbee zwave nrf24l rfx
Répondre