Aggiornato driver rainsensorqty alla versione 0.2.5c
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
# 0.6.2 - 24/04/2021
|
||||||
|
- Update rainsensorqty driver to version 0.2.5c
|
||||||
|
|
||||||
# 0.6.1 - 06/09/2020
|
# 0.6.1 - 06/09/2020
|
||||||
- Add support for send log to piGardenWeb
|
- Add support for send log to piGardenWeb
|
||||||
|
|
||||||
|
|||||||
1
drv/rainsensorqty/commands/test_pulse
Executable file
1
drv/rainsensorqty/commands/test_pulse
Executable file
@@ -0,0 +1 @@
|
|||||||
|
echo 1 > /tmp/tick ; sleep 0.9 ; echo 0 > /tmp/tick
|
||||||
@@ -60,6 +60,46 @@ en_echo() # enhanched echo - check verbose variable
|
|||||||
[[ $RAINSENSORQTY_verbose = yes ]] && echo "$(d) $*"
|
[[ $RAINSENSORQTY_verbose = yes ]] && echo "$(d) $*"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_incomplete_loop()
|
||||||
|
{
|
||||||
|
[[ ! -f $RAINSENSORQTY_HISTORYRAW ]] && return 1
|
||||||
|
[[ ! -f $RAINSENSORQTY_HISTORY ]] && touch $RAINSENSORQTY_HISTORY
|
||||||
|
> $RAINSENSORQTY_HISTORYTMP
|
||||||
|
|
||||||
|
if lastrainevent=$( rainevents 1 ) ; then
|
||||||
|
: # done ok
|
||||||
|
else
|
||||||
|
echo "WARNING: rainevents function had errors"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -- ${lastrainevent//:/ }
|
||||||
|
local started=$1
|
||||||
|
local before=$2
|
||||||
|
local counter=$3
|
||||||
|
|
||||||
|
wrongevent=$(awk -F ":" '$1=="'$started'" && $2!="'$before'" {print $0}' $RAINSENSORQTY_HISTORY)
|
||||||
|
if [[ -n $wrongevent ]] ; then
|
||||||
|
echo "ERROR: wrong last rain event found: $wrongevent , right one should be: $lastrainevent"
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q ^${lastrainevent}$ $RAINSENSORQTY_HISTORY ; then
|
||||||
|
: # already present
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
|
||||||
|
: # missing and fixed
|
||||||
|
if [[ $1 == tmp ]] ; then
|
||||||
|
echo $lastrainevent > $RAINSENSORQTY_HISTORYTMP
|
||||||
|
else
|
||||||
|
echo $lastrainevent >> $RAINSENSORQTY_HISTORY
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#next function is not used anymore
|
||||||
rain_history()
|
rain_history()
|
||||||
{
|
{
|
||||||
[[ ! -f $RAINSENSORQTY_HISTORYRAW ]] && return 1
|
[[ ! -f $RAINSENSORQTY_HISTORYRAW ]] && return 1
|
||||||
@@ -134,7 +174,7 @@ rainevents()
|
|||||||
newloop=no
|
newloop=no
|
||||||
fi
|
fi
|
||||||
if (( sequence == 1 )) ; then
|
if (( sequence == 1 )) ; then
|
||||||
# [[ $skiplast=true ]] && { skilast=false ; continue ; }
|
# [[ $skiplast=true ]] && { skiplast=false ; continue ; }
|
||||||
echo $time:$endtime:$endsequence
|
echo $time:$endtime:$endsequence
|
||||||
newloop=yes
|
newloop=yes
|
||||||
(( event +=1 ))
|
(( event +=1 ))
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
# Author: androtto
|
# Author: androtto
|
||||||
# file "drv_rainsensorqty_monitor.sh"
|
# file "drv_rainsensorqty_monitor.sh"
|
||||||
# monitor script
|
# monitor script
|
||||||
# Version: 0.2.5b
|
# Version: 0.2.5c
|
||||||
# Data: 12/May/2020
|
# Data: 08/Dec/2020
|
||||||
|
|
||||||
resetcounter()
|
resetcounter()
|
||||||
{
|
{
|
||||||
@@ -14,6 +14,19 @@ resetcounter()
|
|||||||
echo "SIGUSR1 received after last PULSE - counter resetted"
|
echo "SIGUSR1 received after last PULSE - counter resetted"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# DEBUG FUNCTION:
|
||||||
|
testloop()
|
||||||
|
{
|
||||||
|
touch /tmp/tick
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
if [[ $( < /tmp/tick ) = "1" ]] ; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# MAIN #
|
# MAIN #
|
||||||
###############
|
###############
|
||||||
@@ -51,30 +64,41 @@ fi
|
|||||||
echo $$ > $RAINSENSORQTY_MONPID
|
echo $$ > $RAINSENSORQTY_MONPID
|
||||||
drv_rainsensorqty_writelog $f "NORMAL - $$ pid monitor process started - see $RAINSENSORQTY_MONPID"
|
drv_rainsensorqty_writelog $f "NORMAL - $$ pid monitor process started - see $RAINSENSORQTY_MONPID"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
en_echo "---- NEW RUN ----"
|
||||||
|
|
||||||
|
# check if monitor script was killed before writing a complete rain event
|
||||||
|
check_incomplete_loop
|
||||||
|
case $? in
|
||||||
|
2) echo "\$RAINSENSORQTY_HISTORY - wrong entry found - no fix possible" ;;
|
||||||
|
1) echo "\$RAINSENSORQTY_HISTORY - fixed incomplete loop" ;;
|
||||||
|
0) echo "\$RAINSENSORQTY_HISTORY - no incomplete loop needed to be fixed" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
# init variables
|
# init variables
|
||||||
MMEACH="$RAINSENSORQTY_MMEACH"
|
MMEACH="$RAINSENSORQTY_MMEACH"
|
||||||
(( counter=0 ))
|
(( counter=0 ))
|
||||||
rain_history
|
before="-1"
|
||||||
|
|
||||||
echo ""
|
|
||||||
en_echo "---- NEW RUN ----"
|
|
||||||
en_echo "WAITING FOR $RAINSENSORQTY_PULSE PULSE"
|
en_echo "WAITING FOR $RAINSENSORQTY_PULSE PULSE"
|
||||||
|
|
||||||
# loop forever
|
# loop forever
|
||||||
while true
|
while true
|
||||||
do
|
do
|
||||||
before=`date +%s`
|
|
||||||
sleep $RAINSENSOR_DEBOUNCE
|
sleep $RAINSENSOR_DEBOUNCE
|
||||||
|
#DEBUG: testloop #DEBUG
|
||||||
$GPIO -g wfi $gpio_port $RAINSENSORQTY_PULSE
|
$GPIO -g wfi $gpio_port $RAINSENSORQTY_PULSE
|
||||||
now=`date +%s`
|
now=`date +%s`
|
||||||
(( elapsed = now - before ))
|
(( elapsed = now - before ))
|
||||||
if (( elapsed >= RAINSENSORQTY_SECSBETWEENRAINEVENT )) ; then
|
if (( elapsed >= RAINSENSORQTY_SECSBETWEENRAINEVENT )) ; then
|
||||||
|
last_event="$started:$before:$counter"
|
||||||
(( counter=0 ))
|
(( counter=0 ))
|
||||||
drv_rainsensorqty_writelog $f "first drops after $elapsed seconds since last rain ( greater than $RAINSENSORQTY_SECSBETWEENRAINEVENT )- new cycle - waiting for $( $JQ -n "$RAINSENSORQTY_LOOPSFORSETRAINING * $MMEACH" ) mm of rain" &
|
drv_rainsensorqty_writelog $f "first drops after $elapsed seconds since last rain ( greater than $RAINSENSORQTY_SECSBETWEENRAINEVENT )- new cycle - waiting for $( $JQ -n "$RAINSENSORQTY_LOOPSFORSETRAINING * $MMEACH" ) mm of rain" &
|
||||||
|
(( before > 0 )) && echo $last_event >> $RAINSENSORQTY_HISTORY
|
||||||
en_echo "---- NEW CYCLE ----"
|
en_echo "---- NEW CYCLE ----"
|
||||||
rain_history &
|
|
||||||
fi
|
fi
|
||||||
(( counter+=1 ))
|
(( counter+=1 ))
|
||||||
|
(( counter == 1 )) && (( started = now ))
|
||||||
echo "$now:$counter" >> ${RAINSENSORQTY_HISTORYRAW} &
|
echo "$now:$counter" >> ${RAINSENSORQTY_HISTORYRAW} &
|
||||||
MMWATER=$( $JQ -n "$counter*$MMEACH" )
|
MMWATER=$( $JQ -n "$counter*$MMEACH" )
|
||||||
en_echo $( printf "%s PULSE #%d RECEIVED (%.2f mm)" $RAINSENSORQTY_PULSE $counter $MMWATER )
|
en_echo $( printf "%s PULSE #%d RECEIVED (%.2f mm)" $RAINSENSORQTY_PULSE $counter $MMWATER )
|
||||||
@@ -85,4 +109,5 @@ do
|
|||||||
else
|
else
|
||||||
drv_rainsensorqty_writelog $f "now is $text" &
|
drv_rainsensorqty_writelog $f "now is $text" &
|
||||||
fi
|
fi
|
||||||
|
(( before = now ))
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1004,7 +1004,7 @@ function debug2 {
|
|||||||
|
|
||||||
VERSION=0
|
VERSION=0
|
||||||
SUB_VERSION=6
|
SUB_VERSION=6
|
||||||
RELEASE_VERSION=1
|
RELEASE_VERSION=2
|
||||||
|
|
||||||
DIR_SCRIPT=`dirname $0`
|
DIR_SCRIPT=`dirname $0`
|
||||||
NAME_SCRIPT=${0##*/}
|
NAME_SCRIPT=${0##*/}
|
||||||
|
|||||||
Reference in New Issue
Block a user