Difference between revisions of "Filters"

From ZoneMinder Wiki
Jump to navigationJump to search
Line 22: Line 22:
Note that this is an example without brackets. Brackets can make this simpler, and see below
Note that this is an example without brackets. Brackets can make this simpler, and see below
for an example with those.
for an example with those.
The parameter end date/time greater than or equal to -1 minute will select events that occurred in the previous minute only.


===Receive email for specific monitor on Sunday===
===Receive email for specific monitor on Sunday===

Revision as of 13:00, 5 September 2024

Here is documentation and some example filters for use with Zoneminder. If you have a useful filter, please add it here.

Review the official documentation here: https://zoneminder.readthedocs.io/en/stable/userguide/filterevents.html

Note about purgewhenfull and Additional HDDs

If you add a new HDD for data storage, you will need to adjust or add a new filter to delete events from the HDD. See: https://wiki.zoneminder.com/Using_a_dedicated_Hard_Drive

Examples

Receive email alarm on Weekends

For monitoring on the weekend you might have:

end date/time greater than or equal to -1 minute AND
alarm frames greater 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

Choose "email details upon match" in the filter. For more details see Email Note that this is an example without brackets. Brackets can make this simpler, and see below for an example with those.

The parameter end date/time greater than or equal to -1 minute will select events that occurred in the previous minute only.

Receive email for specific monitor on Sunday

Monitor id equal to ### AND
Cause not equal to Signal AND
End Date/Time greater than or equal to -1 minute AND
Alarm frames greater than or equal to 10 AND
Weekday equal to Sunday

Run filter from the command line

From the forum:

You can use cron job to run the filter. Don't check the run in 
background box .. then in cron job run zmfilter.pl --filter_id=[whatever 
the id is].

Run a filter from the command line (alt.)

From the forum:

sudo zmdc.pl status zmfilter .pl --filter_id=2 --daemon to see what zmdc.pl thinks about it.
sudo zmdc.pl start zmfilter .pl --filter_id=2 --daemon
Is basically how to web ui tells zmdc.pl to run it, so running that from command line should do the same thing.
ps ax | grep zmfilter should either list it or not.

Play audio notification upon alert

See forum post: https://forums.zoneminder.com/viewtopic.php?t=32650

ZMES example

Reference: https://forums.zoneminder.com/viewtopic.php?p=126956 Zmes email filter.png

Example with brackets / parenthesis

The brackets can be confusing, so here's an example that makes it clear. This filter should fire off on any alerts that are at nights or weekends.

Filter with brackets fixed.png

Troubleshooting

Always Test the Filter with List Matches

Run the filter with 'list matches' after saving it. Errors in the generated SQL will be displayed. For example, one error might be to set EndStartTime to 'is' Sunday when it must instead be EndStartTime 'is equal to' Sunday.

Changes in 1.36: Filter Runs Before Event Completes

Past Zoneminder behavior was to run filters, after an event had completed. However in 1.36+, filters now run during an event. If you want the previous behavior, you will need to "Add an EndDateTime IS NOT NULL rule" https://forums.zoneminder.com/viewtopic.php?t=33409

Related Links

https://forums.zoneminder.com/viewtopic.php?f=42&t=29280

https://zoneminder.readthedocs.io/en/latest/userguide/filterevents.html#relative-items-in-date-strings

https://forums.zoneminder.com/viewtopic.php?f=40&t=28961