Redémarage automatique de Domoticz

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
Limousin19
Messages : 26
Inscription : 18 déc. 2022, 14:10

Redémarage automatique de Domoticz

Message par Limousin19 »

Bonjour,
Je viens de réinstaller Domoticz sur un Rasberry Pi avec la dernière version Raspian light et je suis confronté au problème du redémarrage automatique de Domoticz après coupure du secteur.
Pourriez-vous m'indiquer un script fiable avec les indications pour l'installer svp ?
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Redémarage automatique de Domoticz

Message par Keros »

Tu peux expliquer un peu plus le problème que tu rencontres ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Limousin19
Messages : 26
Inscription : 18 déc. 2022, 14:10

Re: Redémarage automatique de Domoticz

Message par Limousin19 »

Les coupures de courant étant fréquentes chez moi, je cherche un script fiable pour relancer Domoticz, car le programme va gérer mon chauffage. J'ai finalement trouvé deux scripts sur cette page :
https://www.dekloo.net/arduino-raspberr ... oticz/2530.

- Je ne vois pas où il faut télécharger le premier script qui s'appelle "auto_reboot_domoticz.sh".
- Le deuxième script est peut-être mieux, mais il faut modifier le fichier domoticz, et comme un des commentateurs le dit : "ce n’est pas un fichier domoticz que j’ai dans /etc/init.d/, mais un fichier domoticz.sh".

Donc je suis dans le brouillard et je cherche toujours un script qui correspondrait à ma configuration. Je précise que je ne connais ni Raspian, ni les variantes de Domoticz...
Dernière modification par Keros le 03 mars 2023, 12:39, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: Redémarage automatique de Domoticz

Message par Chrominator »

Redémarrer ton domoticz ne devrait pas te soucier autant que ces coupures de courant ;
Les systèmes à base d’Unix n'aiment pas ces interruptions.
Tu risques de te retrouver avec un système de fichier non montable et là ça ne démarrera plus du tout jusqu'à ce que tu corriges ce système de fichier sur un autre ordinateur Unix.
Cherche un onduleur en parallèle de ce script si ces coupures sont fréquentes.

Pour redémarrer, je te conseille monit, fiable et peu gourmand.
Il y a une discussion à ce sujet ici.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Redémarage automatique de Domoticz

Message par Neutrino »

Je valide ce duo de mon côté depuis plusieurs années.
Onduleur + monit et plus de problème ;)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Limousin19
Messages : 26
Inscription : 18 déc. 2022, 14:10

Re: Redémarage automatique de Domoticz

Message par Limousin19 »

Merci beaucoup pour ces réponses.
- J'ai effectivement un onduleur pour mon PC et mon NAS, je vais également y connecter le Rasberry, suite à vos sages conseils.
- J'ai installé monit sans problème.
Ensuite je vois qu'il y a pas mal de paramètres à renseigner dans monitrc. Il me semble aussi qu'il faut ajouter ce code indiqué sur la page officielle pour lancer Domoticz.
- Mais à quel endroit du script l'ajoute-t-on ? A la fin tout simplement ?

Code : Tout sélectionner

check process domoticz with pidfile /var/run/domoticz.pid
  start program = "/usr/bin/sudo /bin/systemctl start domoticz.service"
  stop  program = "/usr/bin/sudo /bin/systemctl stop domoticz.service"
  # use below start/stop command for older systems not using systemctl
  # start program = "/etc/init.d/domoticz.sh start"
  # stop  program = "/etc/init.d/domoticz.sh stop"
  if failed
     url http://127.0.0.1:8080/json.htm?type=command&param=getversion
         and content = '"status" : "OK"'
     for 2 cycles
     then restart
  if 5 restarts within 5 cycles then exec "/sbin/reboot"
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: Redémarage automatique de Domoticz

Message par Chrominator »

Oui, à la fin de monitrc ça va marcher.

Perso je fais pas comme ça.
Je mets les configs dont j'ai potentiellement besoin dans le répertoire monit/conf-available et je crée un lien dans le répertoire monit/conf-enabled vers la config que je veux utiliser.
Ça paraît sûrement compliqué en le lisant mais c'est pratique, si je ne veux plus utiliser une config je supprime le lien mais la config est toujours présente dans monit/conf-available.
Pièces jointes
Capture d'écran 2023-03-03 201627.png
Capture d'écran 2023-03-03 201627.png (46.77 Kio) Consulté 990 fois
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Limousin19
Messages : 26
Inscription : 18 déc. 2022, 14:10

Re: Redémarage automatique de Domoticz

Message par Limousin19 »

D'accord, merci. Je vois l'idée en gros mais je ne suis pas sûr de comprendre toute la mise en oeuvre :
Je mets les configs dont j'ai potentiellement besoin dans le répertoire monit/conf-available
Ce que tu appelles "les configs", dans mon cas, ce serait un fichier texte avec un nom quelconque où je colle le bout de script ?
je crée un lien dans le répertoire monit/conf-enabled vers la config que je veux utiliser.
Concrètement, ce lien est un fichier vide dont le nom est celui de la config précédé de "@" ?

Par exemple, je crée un fichier domoticz_autoboot avec le script dans monit/conf-available,
puis je crée un autre fichier vide @domoticz_autoboot dans monit/conf-enabled.
OK ?

Il n'y aurait pas de commande pour initialiser tout ça au final ? Monit regarde systématiquement les fichiers de conf-enabled ?
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: Redémarage automatique de Domoticz

Message par Chrominator »

Limousin19 a écrit : 04 mars 2023, 02:06 Ce que tu appelles "les configs", dans mon cas, ce serait un fichier texte avec un nom quelconque où je colle le bout de script ?
En effet, c'est bien cela.
je crée un lien dans le répertoire monit/conf-enabled vers la config que je veux utiliser.
Concrètement, ce lien est un fichier vide dont le nom est celui de la config précédé de "@" ?
Non c'est l'outil que j'utilise qui montre que c'est un lien en mettant un "@" en initiale.
Par exemple, je crée un fichier domoticz_autoboot avec le script dans monit/conf-available,
puis je crée un autre fichier vide @domoticz_autoboot dans monit/conf-enabled.
OK ?
Pas un fichier vide mais un lien.
Ca se crée en étant dans le répertoire monit/conf-enabled et en tapant ensuite

Code : Tout sélectionner

ln -s ../monit/conf-available/domoticz_autoboot domoticz_autoboot
Monit regarde systématiquement les fichiers de conf-enabled ?
En effet, normalement tu vas trouver ce qui suit dans le fichier monit/monitrc.
Ca lui indique de prendre en compte les config qui figurent dans les répertoires désignés après le mot-clé include.

Code : Tout sélectionner

###############################################################################
## Includes
###############################################################################
##
## It is possible to include additional configuration parts from other files or
## directories.
#
   include /etc/monit/conf.d/*
   include /etc/monit/conf-enabled/*
Mais encore une fois, tu peux te contenter d'ajouter le texte dans le fichier monit/monitrc, ça fonctionne aussi.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
pierrotori
Messages : 821
Inscription : 29 févr. 2016, 12:11

Re: Redémarage automatique de Domoticz

Message par pierrotori »

à l'époque j'avais ce script dans le crontab, quand il y a une coupure de courant le rpi redémarre et le service domoticz est en statut exited. j'avais ajouté aussi le check du serveur apache suite à la montée de version

Code : Tout sélectionner

#!/bin/bash
# Script check service de domoticz et qui relance si off ou crash

now=$(date) # récupération de la date et heure pour les logs
applog=$(date +%d" "%b" "%X)" "$(hostname)" ("$(whoami)"): "
appmsg=$(date +%d" "%b" "%X)":"
debug=N     # Y/N mode debug
res=1       # si >0 erreur
f_dry_run=N # on simule la commande
path_log=/home/pi/exploit/log
	
	cd $path_log
	#Récupération du retour de la commande de status
	#  Active: active (failed)
	domoticz=$(sudo service domoticz.sh status|egrep -i '(failed)|(dead)')
	if [ $? == 0 ] # Si le service arrete
	then
		if [ ! -f "failed.txt" ]
		then
			touch failed.txt
			relance=$(sudo service domoticz.sh start) # On le lance
			echo "$applog relance service" >> /home/pi/exploit/log/exp_domoticz.log
			res=1		
		else
			if [ ! -f stopped.txt ]
			then
				touch stopped.txt
				curl -s "https://platform.clickatell.com/messages/http/send?apiKey=xx==&to=+33&content=Reboot_serveur_domotique"
				echo "$applog reboot" >> /home/pi/exploit/log/exp_domoticz.log
				res=2							 # ne sert pas car reboot
				relance=$(sudo reboot) #On reboot	
			else
				res=3
			fi		
		fi
	else
		#Récupération erreur cas coupure de courant ou crash database
		# Active: active (exited)
		domoticz=$(sudo service domoticz.sh status|grep -i '(exited)')
		if [ $? == 0 ] # Si le service est stoppped
		then	
			if [ ! -f "exited.txt" ]
			then
				touch exited.txt
				curl -s "https://platform.clickatell.com/messages/http/send?apiKey=xx==&to=+33&content=Reboot_serveur_domotique-1"
				echo "$applog reboot(1)" >> /home/pi/exploit/log/exp_domoticz.log
				res=1							# ne sert pas car reboot			
				relance=$(sudo reboot) #On reboot		
			else
				if [ ! -f stopped.txt ]
				then
					touch stopped.txt
					curl -s "https://platform.clickatell.com/messages/http/send?apiKey=xx==&to=+33&content=Reboot_serveur_domotique-2"
					echo "$applog reboot(2)" >> /home/pi/exploit/log/exp_domoticz.log
					res=2							 # ne sert pas car reboot
					relance=$(sudo reboot) #On reboot
				else
					res=3
				fi
			fi
		else
			res=0
		fi
	fi
	# check service apache up
	# Active 0
	domoticz=$(curl -m 25 -s -i "http://127.0.0.1:8080/json.htm?type=command&param=getversion")
	if [ $? != 0 ] #
	then
		if [ ! -f "apache.txt" ]
		then
			touch apache.txt
			curl -s "https://platform.clickatell.com/messages/http/send?apiKey=xx==&to=+33&content=Reboot_serveur_domotique-3"
			echo "$applog reboot(3)" >> /home/pi/exploit/log/exp_domoticz.log
			res=4							 # ne sert pas car reboot
			relance=$(sudo reboot) #On reboot
		else
			res=3
		fi
	fi
if [ $res == 0 ]
then
	if [ $debug == Y ]
	then
		echo "$applog Domoticz est démarré" #On log l'état normal
	fi
	if [ -f failed.txt ]
	then
		curl -s "https://platform.clickatell.com/messages/http/send?apiKey=xxx==&to=+33&content=Redemarrage_service_domotique"
		rm failed.txt
	fi
	if [ -f exited.txt ]
	then
		rm exited.txt
		if [ $f_dry_run == Y ]
		then
			echo "$applog EXITED on allume la prise wifi" >> /home/pi/exploit/log/exp_domoticz.log
		else
			echo "$applog EXITED on allume la prise wifi" >> /home/pi/exploit/log/exp_domoticz.log
			curl -s 'http://127.0.0.1:8080/json.htm?type=command&param=switchlight&idx=8&switchcmd=On'
			sleep 2  # Waits 2 seconds			
		fi
	fi
	if [ -f stopped.txt ]
	then
		rm stopped.txt
		if [ $f_dry_run == Y ]
		then
			echo "$applog STOPPED on allume la prise wifi" >> /home/pi/exploit/log/exp_domoticz.log
		else
			echo "$applog STOPPED on allume la prise wifi" >> /home/pi/exploit/log/exp_domoticz.log
			curl -s 'http://127.0.0.1:8080/json.htm?type=command&param=switchlight&idx=8&switchcmd=On'
			sleep 2  # Waits 2 seconds			
		fi		
	fi
	if [ -f apache.txt ]
	then
		rm apache.txt
		if [ $f_dry_run == Y ]
		then
			echo "$applog APACHE down" >> /home/pi/exploit/log/exp_domoticz.log
		else
			echo "$applog APACHE down" >> /home/pi/exploit/log/exp_domoticz.log
		fi
	fi	
fi
if [ $res == 3 ]
then
	if [ $debug == Y ]
	then
		echo "$applog Domoticz problème service ou database" #On log l'état normal
	fi
fi
if [ $res == 4 ]
then
	if [ $debug == Y ]
	then
		echo "$applog Domoticz problème service apache" #On log l'état normal
	fi
fi
exit 0
Répondre