115 lines
2.9 KiB
Bash
Executable File
115 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Send mail on triggered event
|
|
#
|
|
# $1 = event
|
|
# $2 = cause
|
|
# $3 = time
|
|
#
|
|
# To send an email with this script you must install and configure ssmtp and mailutils:
|
|
# sudo apt-get install ssmtp mailutils
|
|
#
|
|
# edit the configuration file /etc/ssmtp/ssmtp.conf and insert the below lines:
|
|
#
|
|
# root=postmaster
|
|
# mailhub=smtp.gmail.com:587
|
|
# hostname=guard
|
|
# FromLineOverride=YES
|
|
# AuthUser=your_mail@gmail.com
|
|
# AuthPass=your_password
|
|
# UseSTARTTLS=YES
|
|
#
|
|
|
|
EVENT="$1"
|
|
|
|
TO="mail@destination.com"
|
|
FROM="piGarden@your_domain.com"
|
|
SUBJECT="[piGarden notification mail] event $EVENT"
|
|
BODY=""
|
|
|
|
case "$EVENT" in
|
|
"init_before" | "init_after")
|
|
TIME=$2
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"ev_open_before" | "ev_open_after")
|
|
ALIAS="$2"
|
|
FORCE="$3"
|
|
TIME=$4
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nZONE: $ALIAS\nFORCED IRRIGATION: $FORCE\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"ev_open_in_before")
|
|
ALIAS="$2"
|
|
FORCE="$3"
|
|
MINUTE_START="$4"
|
|
MINUTE_STOP="$5"
|
|
TIME=$6
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nZONE: $ALIAS\nFORCED IRRIGATION: $FORCE\nMINUTE START: $MINUTE_START\nMINUTE STOP: $MINUTE_STOP\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"ev_open_in_after")
|
|
ALIAS="$2"
|
|
FORCE="$3"
|
|
CRON_START="$4"
|
|
CRON_STOP="$5"
|
|
TIME=$6
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nZONE: $ALIAS\nFORCED IRRIGATION: $FORCE\nCRON START: $CRON_START\nCRON STOP: $CRON_STOP\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
|
|
"ev_close_before" | "ev_close_after")
|
|
ALIAS="$2"
|
|
TIME=$3
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nZONE: $ALIAS\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"check_rain_sensor_before" | "check_rain_sensor_after" | "check_rain_sensor_change")
|
|
STATE="$2"
|
|
TIME=$3
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nSTATE: $STATE\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"check_rain_online_before")
|
|
STATE="$2"
|
|
TIME=$3
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nSTATE: $STATE\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"check_rain_online_after" | "check_rain_online_change")
|
|
STATE="$2"
|
|
WEATHER="$3"
|
|
TIME=$4
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nSTATE: $STATE\nWEATHER: $WEARTHER\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"cron_add_before" | "cron_add_after")
|
|
CRON_TYPE="$2"
|
|
CRON_ARG="$3"
|
|
CRON_ELEMENT="$4"
|
|
TIME=$5
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nCRON TYPE: $CRON_TYPE\nCRON ARG: $CRON_ARG\nCRON ELEMENT: $CRON_ELEMENT\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"cron_del_before" | "cron_del_after")
|
|
CRON_TYPE="$2"
|
|
CRON_ARG="$3"
|
|
TIME=$4
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nCRON TYPE: $CRON_TYPE\nCRON ARG: $CRON_ARG\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
"exec_poweroff_before" | "exec_poweroff_after" | "exec_reboot_before" | "exec_reboot_after")
|
|
TIME=$2
|
|
BODY="PiGarden triggered new event\n\nEVENT: $EVENT\nTIME: $(/bin/date -d@$TIME)"
|
|
;;
|
|
|
|
*)
|
|
exit
|
|
;;
|
|
|
|
esac
|
|
|
|
echo -e "$BODY" | /usr/bin/mail -s "$SUBJECT" $TO -r $FROM &
|
|
|