Files
PiGarden/drv/rainsensorqty/rainsensor.include.sh

54 lines
1.7 KiB
Bash

#
# Inizializza il sensore di rilevamento pioggia
#
# $1 identificativo gpio del sensore di pioggia
#
function drv_rainsensorqty_rain_sensor_init {
drv_rainsensorqty_writelog "drv_rainsensorqty_rain_sensor_init" $1
local drvt="$( echo $RAIN_GPIO | $CUT -f 1 -d: )"
local drv="$( echo $RAIN_GPIO | $CUT -f 2 -d: )"
local gpio_port="$( echo $RAIN_GPIO | $CUT -f 3 -d: )"
$GPIO -g mode $gpio_port in
}
#
# Ritorna in output lo stato del sensore di rilevamento pioggia
#
# $1 identificativo gpio del sensore di pioggia
#
function drv_rainsensorqty_rain_sensor_get {
local now=$(date +%s)
local interval=100 # 100 secondi > 1 minuto frequenza di verifica da parte di, come da seguente schedulazione
#* * * * * /home/pi/piGarden/piGarden.sh check_rain_sensor 2> /tmp/check_rain_sensor.err
local f="drv_rainsensorqty_check"
drv_rainsensorqty_writelog $f $1
# verifica se lo script di monitorin e' attivo
if drv_rainsensorqty_check ; then
drv_rainsensorqty_writelog $f "NORMAL - drv_rainsensorqty_check ok, monitor process running"
if [ -f "$RAINSENSORQTY_LASTRAIN" ] ; then
local lastrain="$( < "$RAINSENSORQTY_LASTRAIN" )"
(( diff = now - lastrain ))
drv_rainsensorqty_writelog $f "NORMAL: last rain $( date --date="@$lastrain" ) "
drv_rainsensorqty_writelog $f "NORMAL: check rain $( date --date="@$now" ) "
if (( diff <= interval )) ; then
drv_rainsensorqty_writelog $f "RAIN : check rain - diff $diff < $interval - return $RAIN_GPIO_STATE"
return $RAIN_GPIO_STATE
else
drv_rainsensorqty_writelog $f "NO_RAIN : check rain - diff $diff < $interval - return 99"
return 99
fi
fi
else
drv_rainsensorqty_writelog $f "ERROR - drv_rainsensorqty_check failed, no monitor process running"
exit 1
fi
}