ZMTrigger
About
/usr/bin/zmtrigger.pl is an optional perl script for zoneminder. See the script for a brief description. One way it can be used is to overlay text information from an outside source (say a temperature sensor) onto the video feed.
Configuration
Enable it first, by going into options, config, and checking Enable Triggers.
Then
# service restart zoneminder
Verify it is running with
ps auxw | grep zmtrigger
Usage
Overlaying Text Data onto a Video Feed
After you have verified the script is running, test it is working.
Choose a monitor, say monitor 1, then add %Q to the monitors timestamp section.
The monitor must be in either modect, mocord, or nodect mode.
Open the video feed for monitor 1.
Then type in another terminal
telnet ipaddress 6082
in the telnet session type the following
1|show||||testingOSD
then press return.
Refer to Documentation for what this command means. A brief explanation for this is:
Monitor1 | Show text mode |||| text to put in.
You should immediately see testingOSD in place of the %Q you put in the timestamps section.
For more examples and scripts of ZMTrigger search the forums.
Example Script
Here is a script of connecting to an ipaddress that serves a value from a sensor. Wget is not as fast as possible, but this is simple and works quickly as a test.
#!/bin/bash counter=1 while [$counter -le 10] do PRESSURE=`wget ipaddress -q -O -` echo "1|show||||$PRESSURE" | telnet ipaddress 6802 sleep 4 #((counter++)) done
Troubleshooting
tail -f /var/log/zm/zmtrigger.log
When it fails, you will see it fail.
Enable debug on it in the logs
MySQL server has gone away Error
After following forum recommendations to use mysqltuner ,see [MySQL], I added wait_timeout=300 to my.cnf.
Unfortunately, ZMTrigger will disconnect every five minutes, if this is enabled. Maybe it's a limitation of Perl's DBI module not having a 'keep-alive' function working in /usr/bin/zmtrigger.pl, although I may be mistaken. It's a common problem for Perl's DBI and there are many hits online.
This timeout error doesn't seem to adversely affect any other features of ZM so, the wait_timeout may be acceptable if you don't use ZMTrigger.
The default timeout is 8 hours. When the MySQL server has gone away, zmtrigger is out for 20 seconds, so every 8 hours your zmtrigger will be unaccessible for that long.