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

Vous avez créé 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.
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

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

Message par Chrominator »

Sans autres éléments, notamment ton fichier de configuration de monit, difficile de te répondre.
As-tu regardé dans le log système s'il y avait plus d'infos ?
Le processus monit tourne-t-il ?
Sans doute car arrêté ça donne ceci :

Code : Tout sélectionner

pi@phoenix-dev:~$ sudo monit status
Monit: the monit daemon is not running
Quand aux erreurs avec "apt-get update", c'est un autre problème idépendant qu'il faudra probablement résoudre un jour....
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
joebuz
Messages : 29
Inscription : 13 mars 2019, 23:52

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

Message par joebuz »

Bonjour,

Voici les lignes dé-commentées du fichier de configuration de monit

Code : Tout sélectionner

set daemon 300
with start delay 300

set logfile /var/log/monit.log

set statefile /var/lib/monit/state

set mailserver smtp.gmail.com port 587
username "#####" password "#####"
using tlsv1
with timeout 30 seconds
set alert monemail@gmail.com

set eventqueue 
basedir /var/lib/monit/events
slots 100

set httpd port 2812 and
allow 0.0.0.0/0.0.0.0
allow admin:monit
allow @monit
allow @users readonly

include /etc/monit/conf.d/*
voici les logs quand j'avais seulement paramétré le mailserver avec une adresse orange et pas encore le serveur web

Code : Tout sélectionner

Sendmail: Error receiving data from data from the mailserver 'smtp.orange.fr' -- connection reset by peer
Sendmail: Error sending data to the server 'smtp.orange.fr' -- broken pipe
Alert handler failed, retry scheduled for next cycle
puis j'ai essayé avec une adresse gmail

Code : Tout sélectionner

Sendmail: 535 5.7.8 https://support.google.com/mail/?p=BadCredentials
Alert handler failed, retry scheduled for next cycle
puis j'ai essayé une autre adresse gmail (car la boîte de la première était pleine)

Code : Tout sélectionner

Sendmail: 534 5.7.9 https://support.google.com/mail/?p=WebLoginRequired
Alert handler failed, retry scheduled for next cycle
Ensuite j'ai mis en place le serveur web pour voir mais cela ne fonctionne pas et il n'y a rien qui apparaît dans les logs
Voilà

[EDIT]
J'ai commenté les lignes concernant le mailserver et j'ai controlé le statut de monit. OK
Désormais j'ai accès au serveur web (bon par contre je ne pourrais pas recevoir les notifications mail ... je verrais plus tard)

[EDIT2]
J'ai donc rajouté la surveillance du service domoticz et le redémarrage auto

Code : Tout sélectionner

check process domoticz with pidfile /var/run/domoticz.pid
  start program = "/etc/init.d/domoticz.sh start"
  stop  program = "/etc/init.d/domoticz.sh stop"
  if failed
     url http://mon_ip: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"
sauf que quand je vérifie la syntax avec "sudo monit -t"
j'ai ce défaut (que je n'avais pas avant d'ajouter la surveillance du service)

Code : Tout sélectionner

'check system' not defined in control file, failed to add automatic configuration (service name Domoticz is used already) -- please add 'check system <name>' manually
Ceci est dû au fait que mon rpi s'apellait Domoticz il y avait donc confusion dans monit, j'ai renommé le nom de mon rpi et après plusieurs reboot tout est OK. (sauf le mailserver)
RPI3 (Buster) + AEOTEC Z-Stick Gen5
Version: 2020.2 Build Hash: b63341bc0
Compile Date: 2020-04-26 13:47:55
dzVents Version: 3.0.2
maccaire
Messages : 32
Inscription : 29 juin 2019, 14:41

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

Message par maccaire »

Bonjour
Je relance le sujet de monit, j'ai configurer le fichier avec:
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
La réponse est:
Status Execution failed | Does not exist
Je ne sais pas comment utiliser ou creer le fichier /var/run/domoticz.pid, ca il n'existe pas.
Quelqu'un a peu etre la réponse.
Merci
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

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

Message par Chrominator »

/var/run/domoticz.pid est généré à chaque démarrage de Domoticz par le script /etc/init.d/domoticz.sh

Les lignes start et stop program sont incorrectes ;
Comme monit fonctionne sous l'utilisateur root, il ne sert à rien d'employer la commande sudo.
De plus, monit ne devrait pas lancer un service mais simplement démarrer domoticz à l'aide du script dédié.

Je suggère de remplacer ces lignes par les suivantes :

Code : Tout sélectionner

start  program = "/etc/init.d/domoticz.sh start"
stop  program = "/etc/init.d/domoticz.sh stop"
Le "if failed" à la fin du post ne peut pas exister tout seul comme ça, j'imagine qu'il y a une suite qui a échappé au copié/coller.
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
Répondre