Difference between revisions of "SMS Notifications"

From ZoneMinder Wiki
Jump to navigationJump to search
Line 88: Line 88:
* [https://wiki.zoneminder.com/How_to_get_ssmtp_working_with_Zoneminder How to get ssmtp working with Zoneminder]
* [https://wiki.zoneminder.com/How_to_get_ssmtp_working_with_Zoneminder How to get ssmtp working with Zoneminder]
* [https://forums.zoneminder.com/viewtopic.php?f=36&t=25678&p=98158]
* [https://forums.zoneminder.com/viewtopic.php?f=36&t=25678&p=98158]
* [https://forums.zoneminder.com/viewtopic.php?f=9&t=12646 Receive Email on Runstate change]

Revision as of 23:13, 4 January 2018

These instructions are to assist with email or text message setup.

For SMS, You setup email to point to a text gateway. Setup a filter that monitors the cameras for alarms, and when an alarm is set off you have it send an email to the text gateway (or email address). Simple.

You can get images from the alarm embedded in the text (covered in install steps).

The following is tested for 1.30.

Installation

Follow How to get ssmtp working with Zoneminder.

There are two ways to send emails in options - email. One is sending a short email, and one is designed for longer messages. In the code (as of 1.30 lines 818 and 918), in zmfilter.pl these are correspondingly sub SendEmail and sub SendMessage. They are distinct functions. SSMTP support is in SendEmail. SSMTP support is not in SendMessage.

Testing the email

First, run a filter in the background (see tips below). Do not try to submit / execute. Second, Enable logging on /var/log/zm folder. Third, tail the ZMFilter log and syslog. Fourth, to initiate an alarm (if alarms are used to test emails), use 'force alarm' on the monitor screen. That is, view a camera, and click force alarm.

You should see SSMTP send an email on the syslog (or try) and the zmfilter log will report the trigger.

Tips

When testing be aware of the following:

  • Free email services limit how many emails you are allowed to send through SMTP. It helps to disable cron emails.
  • Always make filters for 1 (or low number) results. If you fail to do this, you could try to send dozens of emails.
  • When you make the filter you want the 'current' alarms. You don't want old events. This is accomplished with a Date/Time greater than or equal to -1 minute.
  • If when testing the filter execute, the 'execute' button becomes unclickable, uncheck then recheck the email option.
#watch "tail -n 30000 /var/log/syslog | grep sSMTP | tail"
  • When testing use a background filter, and watch the logs. Filters run every 60 seconds by default.
  • If you send email as someone other than root, make sure he is in /etc/ssmtp/revaliases
  • test emails with
cat file | mail -s "subject" destination@email.com
OR
echo "some text" | mail -s "subject destination@email.com
  • make sure email is checked off in filters. It gets unchecked easily.
  • service zoneminder restart after changes
  • test setting off alarms by clicking 'force alarm' in the monitor view, then unclick to remove alarm.
  • make one dedicated email alert account if you want multiple users to receive alerts. There is a patch in the forums to add multiple recipients.
  • It's tough to use Motion detection for alerts with IR active.. You might be best off using a device with ZMTrigger, or the cameras built in motion detection if night IR is used... False alerts appear when a camera switches from Day lens to IR.
  • Always double check the filters are right, AFTER you save them.

Example Filter

For monitoring on the weekend you might have

date/time greater than or equal to -1 minute AND
alarm frames greather than or equal to 1 AND
Weekday equal to Saturday OR
Weekday equal to Sunday AND
alarm frames greater than or equal to 1 AND
date/time greater than or equal to -1 minute

Notice that you must include all parameters for each group/set individually when there is an OR.

Notes

Notifications are easy if you want alarms emailed between a static time, for example between 12AM and 6AM. If you have a situation where you may not want the alarms to send you text messages on occasion, you should filter on run states.

Starting from more recent Zoneminder releases you can set filters based on run states, which would mean, you could change the run state at any desired time (using Cron, or manually), and only then would SMS be sent. If you have earlier ZM, you must have duplicate monitors and have the filters activated on only one of them OR you can add the patch manually. (Compile zoneminder from a package source such as the debian package and add the commits manually at your own risk (it is not difficult, but beware updating).

Resources