diff --git a/CHANGELOG.md b/CHANGELOG.md index ef09fb8..551af01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.4.5 - xx/08/2017 - Implemented driver subsystem for interfacing with other board - Added driver spb16ch for interfacing with "Smart Power Board 16 channel with RTC" +- Added socket server api for close all zones and disable all scheduling - Fix problem with cron management on similar type cron - Fix bug: in case of rain the weather data were not updated diff --git a/include/cron.include.sh b/include/cron.include.sh index fd1e1ce..150059c 100644 --- a/include/cron.include.sh +++ b/include/cron.include.sh @@ -486,4 +486,78 @@ function del_cron_close { } +# +# Disabilita tutte le schedulazioni di apertura e chiusura elettrovalvole +# +function cron_disable_all_open_close { + local a="" + local al="" + local cron="" + + # + # Disabilita tutte le schedulazioni di apertura + # + for i in $(seq $EV_TOTAL) + do + a=EV"$i"_ALIAS + al=${!a} + local crons=`get_cron_open $al` + if [[ ! -z "$crons" ]]; then + del_cron_open $al + IFS=$'\n' # make newlines the only separator + for cron in $crons + do + #echo "-- $cron --" + CRON_M=`echo $cron | $CUT -d' ' -f1,1` + CRON_H=`echo $cron | $CUT -d' ' -f2,2` + CRON_DOM=`echo $cron | $CUT -d' ' -f3,3` + CRON_MON=`echo $cron | $CUT -d' ' -f4,4` + CRON_DOW=`echo $cron | $CUT -d' ' -f5,5` + + if [[ ${CRON_M:0:1} == "#" ]]; then + CRON_M=${CRON_M:1:${#CRON_M}} + fi + #echo "++ $CRON_M $CRON_H $CRON_DOM $CRON_MON $CRON_DOW ++" + + add_cron_open $al "$CRON_M" "$CRON_H" "$CRON_DOM" "$CRON_MON" "$CRON_DOW" "disabled" + done + fi + + done + + + # + # Disabilita tutte le schedulazioni di chiusura + # + for i in $(seq $EV_TOTAL) + do + a=EV"$i"_ALIAS + al=${!a} + local crons=`get_cron_close $al` + if [[ ! -z "$crons" ]]; then + del_cron_close $al + IFS=$'\n' # make newlines the only separator + for cron in $crons + do + #echo "-- $cron --" + CRON_M=`echo $cron | $CUT -d' ' -f1,1` + CRON_H=`echo $cron | $CUT -d' ' -f2,2` + CRON_DOM=`echo $cron | $CUT -d' ' -f3,3` + CRON_MON=`echo $cron | $CUT -d' ' -f4,4` + CRON_DOW=`echo $cron | $CUT -d' ' -f5,5` + + if [[ ${CRON_M:0:1} == "#" ]]; then + CRON_M=${CRON_M:1:${#CRON_M}} + fi + #echo "++ $CRON_M $CRON_H $CRON_DOM $CRON_MON $CRON_DOW ++" + + add_cron_close $al "$CRON_M" "$CRON_H" "$CRON_DOM" "$CRON_MON" "$CRON_DOW" "disabled" + done + fi + + done + + + +} diff --git a/include/socket.include.sh b/include/socket.include.sh index 80fcfcc..79059ea 100644 --- a/include/socket.include.sh +++ b/include/socket.include.sh @@ -93,6 +93,15 @@ function socket_server_command { fi ;; + close_all) + if [ "$arg2" == "disable_scheduling" ]; then + cron_disable_all_open_close &> /dev/null + fi + close_all &> /dev/null + message_write "success" "All solenoid closed" + json_status + ;; + set_general_cron) local vret="" for i in $arg2 $arg3 $arg4 $arg5 $arg6 $arg7