Script de contrôle de présence/redémarrage Domoticz

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Script de contrôle de présence/redémarrage Domoticz

Message par vinchz31 » 09 févr. 2019, 11:50

Bonjour à tous,

J'ai réalisé dernièrement une évolution vers la béta qui a crashé au bout de quelques heures mon DOmoticz.
Résultat, plus de chauffage le lendemain matin. J'ai résolu entre temps le problème du crash, mais j'ai réalisé un script qui contrôle la présence du processus Domoticz et le relance le cas échéant ce qui permet d'éviter de se retrouver sans domotique en cas de problème.

Le script est en bash sur Raspberry.
Voici le bash "TestPresenceDomoticz.bash"

Code : Tout sélectionner

#! /bin/sh
RetourPresenceProcess=`ps -aux | grep domoticz | grep 8080` 
DateActuelle=`date`

if [ ! -n "$RetourPresenceProcess" ]
then 
  MessageLog="Crash de Domoticz (processus absent)... Redémarrage automatique effectué le "
  logaecrire="$MessageLog""$DateActuelle"
  retour=`sudo service domoticz.sh stop`
  retour=`sudo service domoticz.sh start`
  echo $logaecrire >> /home/pi/LogsArretDomoticz.log
fi
Une fois créé :
- effectuer un "chmod 777 TestPresenceDomoticz.bash" pour garantir que tous les droits soient donnés ;
- effectuez un "sudo cp TestPresenceDomoticz.bash ./root" pour le positionner dans le répertoire root
- effectuez un "sudo crontab -e" pour executer le script toutes les minutes en tant que root :
Rajouter en fin du crontab la ligne : "* * * * * /root/TestPresenceDomoticz.bash"

Toutes les minutes, le script regardera si le process Domoticz est démarré et à l'écoute sur le port 8080.
En cas d'absence de process, il tentera d'effectuer un arrêt propre du service avant de le relancer et indiquera dans le fichier "/home/pi/LogsArretDomoticz.log" une ligne indiquant le redémarrage avec la date et l'heure.

NB1: si vous avez modifié le port par défaut de Domoticz, changez le 8080 par votre numéro de port
NB2: si votre nom d'utilisateur (et répertoire) par défaut n'est pas "pi", changez le dans le chemin pour le fichier de logs.

Bonne utilisation !

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: Script de contrôle de présence/redémarrage Domoticz

Message par vinchz31 » 09 févr. 2019, 12:46

Ha ben si j'avais su... :-)
Merci Chrominator...

Dim33
Messages : 161
Enregistré le : 29 janv. 2017, 23:19

Re: Script de contrôle de présence/redémarrage Domoticz

Message par Dim33 » 16 févr. 2019, 12:23

Des plantages de Domoticz peuvent empêcher l’arrêt et le redémarrage du service.
J'ai un script du même style avec un second test pour s'assurer que Domoticz a bien redémarré si c'est pas le cas, reboot du système avec des notifications pushover à chaque étape.
NUC sous Ubuntu Server / RFXCom / Domoticz Version: 4.9701

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Wolfen38
Messages : 912
Enregistré le : 19 oct. 2017, 14:49

Re: Script de contrôle de présence/redémarrage Domoticz

Message par Wolfen38 » 16 févr. 2019, 15:54

Dim33 a écrit :
16 févr. 2019, 12:23
Des plantages de Domoticz peuvent empêcher l’arrêt et le redémarrage du service.
J'ai un script du même style avec un second test pour s'assurer que Domoticz a bien redémarré si c'est pas le cas, reboot du système avec des notifications pushover à chaque étape.
Tu nous fais voir ca stp ?

papoo
Messages : 1882
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Script de contrôle de présence/redémarrage Domoticz

Message par papoo » 16 févr. 2019, 16:39

Sinon il y a monit
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Wolfen38
Messages : 912
Enregistré le : 19 oct. 2017, 14:49

Re: Script de contrôle de présence/redémarrage Domoticz

Message par Wolfen38 » 16 févr. 2019, 17:47

papoo a écrit :
16 févr. 2019, 16:39
Sinon il y a monit
Oui, mais ca semble plus complexe à mettre en place qu'un simple script non ?

papoo
Messages : 1882
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Script de contrôle de présence/redémarrage Domoticz

Message par papoo » 16 févr. 2019, 18:14

monit n'est pas un simple script
c'est très simple à mettre en place et cela peut surveiller/ notifier pour d'autres processus
comment installer monit ? wiki domoticz
https://www.domoticz.com/wiki/Monitoring_domoticz
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Dim33
Messages : 161
Enregistré le : 29 janv. 2017, 23:19

Re: Script de contrôle de présence/redémarrage Domoticz

Message par Dim33 » 16 févr. 2019, 19:08

Wolfen38 a écrit :
16 févr. 2019, 15:54
Dim33 a écrit :
16 févr. 2019, 12:23
Des plantages de Domoticz peuvent empêcher l’arrêt et le redémarrage du service.
J'ai un script du même style avec un second test pour s'assurer que Domoticz a bien redémarré si c'est pas le cas, reboot du système avec des notifications pushover à chaque étape.
Tu nous fais voir ca stp ?
Le voilou :

Code : Tout sélectionner

#!/bin/sh
# check domoticz
status=`curl -s -i -H "Accept: application/json" "http://xxx.xxx.xxx.xxxx:xxxx/json.htm?type=devices&rid=1" | grep "status"| awk -F: '{print $2}'|sed 's/,//'| sed 's/\"//g'`
if [ $status ]
then
echo "Domoticz est demarre"
else
TITLE="Domoticz OFFLINE"
APP_TOKEN="mettre sa clé appli"
USER_TOKEN="mettre sa clé utilisateur"
MESSAGE="Domoticz OffLine - Redemarrage"
curl -s -F "token=$APP_TOKEN" \
   -F "user=$USER_TOKEN" \
   -F "title=$TITLE" \
   -F "message=$MESSAGE" https://api.pushover.net/1/messages.json
sudo service domoticz.sh stop
sleep 5
sudo service domoticz.sh start
sleep 10
status=`curl -s -i -H "Accept: application/json" "http://xxx.xxx.xxx.xxxx:xxxx/json.htm?type=devices&rid=1" | grep "status"| awk -F: '{print $2}'|sed 's/,//'| sed 's/\"//g'`
	if [ $status ]
	then
	echo "Domoticz a bien redemarre"
	TITLE="Domoticz ONLINE"
	APP_TOKEN="mettre sa clé appli"
	USER_TOKEN="mettre sa clé utilisateur"
	MESSAGE="Redemarrage Domoticz OK"
	curl -s -F "token=$APP_TOKEN" \
   -F "user=$USER_TOKEN" \
   -F "title=$TITLE" \
   -F "message=$MESSAGE" https://api.pushover.net/1/messages.json
	else
	TITLE="Reboot NUC"
	APP_TOKEN="mettre sa clé appli"
	USER_TOKEN="mettre sa clé utilisateur"
	MESSAGE="Domoticz OffLine - Reboot NUC"
	curl -s -F "token=$APP_TOKEN" \
   -F "user=$USER_TOKEN" \
   -F "title=$TITLE" \
   -F "message=$MESSAGE" https://api.pushover.net/1/messages.json
	sleep 5
	sudo reboot
	fi
fi

Rien d'exceptionnel, j'ai piqué des morceaux à droite et à gauche ...

Par contre, ce script ne protège pas du plantage du système d'exploitation sur lequel tourne Domoticz (hé oui ...... si le système plante, pas possible d’exécuter le script ... :)).
J'ai donc un autre script qui tourne sur mon NAS et qui teste par un ping mon serveur sur lequel tourne Domoticz. Si absence de réponse au ping -> envoi d'une notification qui me prévient que le système est planté.

Et enfin ...... la dernière barrière ..... une prise wifi sur lequel est branché mon serveur.... si pas d’accès à Domoticz malgré les script ci-dessus -> Hard reboot à distance.

Avec tout ça si j'ai plus de chauffage, je sais plus quoi faire :)

AAAhhhh si !, dernière chose ... le tout est branché à un onduleur avec un script qui éteint proprement le serveur si fin de batterie proche et le redémarre dés le retour du courant.

Je pense que j'ai fait le tour.

Et vous, comment faites vous pour sécuriser le système ?
Modifié en dernier par Dim33 le 17 févr. 2019, 00:33, modifié 1 fois.
NUC sous Ubuntu Server / RFXCom / Domoticz Version: 4.9701

Chrominator
Messages : 410
Enregistré le : 19 déc. 2015, 07:29

Re: Script de contrôle de présence/redémarrage Domoticz

Message par Chrominator » 16 févr. 2019, 19:40

Bah on se sert de monit, c'est fait pour ça, et d'une batterie de recharge de mobile pour éviter les coupures de courant.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre