terminata implementazione gestione eventi

This commit is contained in:
lejubila
2017-10-26 23:56:06 +02:00
parent e29dc9dfd4
commit 3761c6cb94
5 changed files with 76 additions and 16 deletions

14
events/scripts/testevent.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
#
# Send mail on triggered event
#
# $1 = event
EVENT="$1"
P2="$2"
P3="$3"
P4="$4"
P5="$5"
echo "$(date) $EVENT $P2 $P3 $P4 $P5" >> /tmp/piGarden.testevent

View File

@@ -0,0 +1,14 @@
#!/bin/bash
#
# Send mail on triggered event
#
# $1 = event
EVENT="$1"
P2="$2"
P3="$3"
P4="$4"
P5="$5"
echo "testevent break $(date) $EVENT $P2 $P3 $P4 $P5" >> /tmp/piGarden.testevent
exit 1

View File

@@ -1,23 +1,22 @@
# #
# Triggered an event and executge associated scripts # Triggered an event and executge associated scripts
# $1 event # $1 event
# $2 cause
# #
function trigger_event { function trigger_event {
## check_rain_online_after # check_rain_online_after
## check_rain_online_before # check_rain_online_before
## check_rain_online_change # check_rain_online_change
## check_rain_sensor_after # check_rain_sensor_after
## check_rain_sensor_before # check_rain_sensor_before
## check_rain_sensor_change # check_rain_sensor_change
## ev_close_after # ev_close_after
## ev_close_before # ev_close_before
## ev_open_after # ev_open_after
## ev_open_before # ev_open_before
## init_after # init_after
## init_before # init_before
local EVENT="$1" local EVENT="$1"
local CAUSE="$2" local CAUSE="$2"
@@ -28,11 +27,39 @@ function trigger_event {
for f in $FILES for f in $FILES
do do
if [ -x "$f" ]; then if [ -x "$f" ]; then
$f "$EVENT" "$CAUSE" `date +%s` &> /dev/null & case "$EVENT" in
"ev_open_before" | "ev_open_after")
ALIAS="$2"
FORCE="$3"
$f "$EVENT" "$ALIAS" "$FORCE" `date +%s` &> /dev/null
;;
"ev_close_before" | "ev_close_after")
ALIAS="$2"
$f "$EVENT" "$ALIAS" `date +%s` &> /dev/null
;;
"check_rain_sensor_before" | "check_rain_sensor_after" | "check_rain_sensor_change")
STATE="$2"
$f "$EVENT" "$STATE" `date +%s` &> /dev/null
;;
"check_rain_online_before" | "check_rain_online_after" | "check_rain_online_change")
STATE="$2"
$f "$EVENT" "$STATE" `date +%s` &> /dev/null
;;
*)
$f "$EVENT" "$CAUSE" `date +%s` &> /dev/null
;;
esac
local ec=$? local ec=$?
#echo "$EVENT ec=$ec" >> /tmp/piGarden.testevent
if [ $ec -ne 0 ]; then if [ $ec -ne 0 ]; then
log_write "Stop events chain for exit code $ec in $current_event_dir/$f" log_write "Stop events chain for exit code $ec in $current_event_dir/$f"
exit return $ec
fi fi
fi fi
done done

View File

@@ -29,6 +29,8 @@ function check_rain_online {
then then
current_state_rain_online='rain' current_state_rain_online='rain'
echo $local_epoch > "$STATUS_DIR/last_rain_online" echo $local_epoch > "$STATUS_DIR/last_rain_online"
else
current_state_rain_online='norain'
fi fi
echo "$current_observation" > "$STATUS_DIR/last_weather_online" echo "$current_observation" > "$STATUS_DIR/last_weather_online"
if [ "$current_state_rain_online" != "$last_state_rain_online" ]; then if [ "$current_state_rain_online" != "$last_state_rain_online" ]; then
@@ -57,6 +59,7 @@ function check_rain_sensor {
log_write "check_rain_sensor - now it's raining ($local_epoch)" log_write "check_rain_sensor - now it's raining ($local_epoch)"
#return $local_epoch #return $local_epoch
else else
current_state_rain_sensor='norain'
log_write "check_rain_sensor - now is not raining" log_write "check_rain_sensor - now is not raining"
fi fi
if [ "$current_state_rain_sensor" != "$last_state_rain_sensor" ]; then if [ "$current_state_rain_sensor" != "$last_state_rain_sensor" ]; then

View File

@@ -118,9 +118,10 @@ function ev_open {
fi fi
trigger_event "ev_open_before" "$1" "$2" trigger_event "ev_open_before" "$1" "$2"
if [ $? -eq 0 ]; then if [ $? -ne 0 ]; then
log_write "Solenoid '$1' not open due to external event" log_write "Solenoid '$1' not open due to external event"
message_write 'warning' "Solenoid not open due to external event" message_write 'warning' "Solenoid not open due to external event"
return
fi fi
# Dall'alias dell'elettrovalvola recupero il numero e dal numero recupero gpio da usare # Dall'alias dell'elettrovalvola recupero il numero e dal numero recupero gpio da usare
@@ -797,6 +798,7 @@ fi
. "$DIR_SCRIPT/include/cron.include.sh" . "$DIR_SCRIPT/include/cron.include.sh"
. "$DIR_SCRIPT/include/socket.include.sh" . "$DIR_SCRIPT/include/socket.include.sh"
. "$DIR_SCRIPT/include/rain.include.sh" . "$DIR_SCRIPT/include/rain.include.sh"
. "$DIR_SCRIPT/include/events.include.sh"
LAST_INFO_FILE="$STATUS_DIR/last_info" LAST_INFO_FILE="$STATUS_DIR/last_info"
LAST_WARNING_FILE="$STATUS_DIR/last_worning" LAST_WARNING_FILE="$STATUS_DIR/last_worning"