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 6802
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
Enable debug on it in the logs and set to 9. The logs that contain the /var/log/zm/ logs are the component logs in options.
MySQL server has gone away error
After following forum recommendations to use mysqltuner (see MySQL), mysqltuner told me to add wait_timeout=300 to my.cnf.
Unfortunately, ZMTrigger will disconnect every five minutes, if this is enabled. It appears that ZMTrigger will "Loading monitors" every five minutes, so you can't have a wait_timeout equal or lower than that. Otherwise the MySQL server will go away. If the wait timeout is higher, then ZMTrigger will "Loading monitors" without error.
This timeout error doesn't seem to adversely affect any other features of ZM so, a low wait_timeout may be acceptable if you don't use ZMTrigger.
The default wait timeout is 8 hours for MySQL. The solution seems to be add a wait_timeout >300, or use the default. Reference:[1]