Dato che molto spesso tra sensori vari o thread aperti da plugin non troppo funzionanti Domoticz può smettere di funzionare da un punto all’altro, il mio suggerimento è quello di crearvi uno script gestito dal crontab e fare in modo che controlli ogni minuto se è attivo. E nel caso, lo riattivi. Presupponendo che l’abbiate installato nella home del vostro Raspberry Pi (nel caso cambiate semplicemente path):
sudo nano /home/pi/domoticz/scripts/checkdomoticz.sh
Incollate:
#!/bin/bash ip=127.0.0.1 port=8080 idx=1 function jsonValue() { KEY=$1 num=$2 awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~/'$KEY'\042/){print $(i+1)}}}' | tr -d '"' | sed -n ${num}p } DOMOTICZ=`curl -s --connect-timeout 2 --max-time 5 "http://$ip:$port/json.htm?type=devices&rid=$idx"` STATUS=$(echo $DOMOTICZ | jsonValue status 1) OK="OK" echo "Domoticz status = $STATUS" if [ "$STATUS" == "" ] ; then echo Domoticz status NOK1, retrying in 5 seconds... sleep 5 DOMOTICZ=`curl -s --connect-timeout 2 --max-time 5 "http://$ip:$port/json.htm?type=devices&rid=$idx"` STATUS2=$(echo $DOMOTICZ | jsonValue status 1) echo Domoticz status = $STATUS2 if [ "$STATUS2" == "" ] ; then echo Domoticz status NOK2, retrying in 5 seconds... sleep 5 DOMOTICZ=`curl -s --connect-timeout 2 --max-time 5 "http://$ip:$port/json.htm?type=devices&rid=$idx"` STATUS3=$(echo $DOMOTICZ | jsonValue status 1) echo Domoticz status = $STATUS3 if [ "$STATUS3" == "" ] ; then echo Domoticz status NOK3, stopping service, killing process, starting service... sudo service domoticz stop sleep 5 sudo service domoticz start fi fi fi
Ora eseguite: sudo crontab -e
E aggiungete in fondo:
* * * * * /home/pi/domoticz/scripts/checkdomoticz.sh
Questo controllerà ogni minuto se è attivo, così male che vada (e nel caso non ci siano ovviamente problemi gravi) Domoticz vi rimarrà disattivato al massimo per 1 minuto.