zmtrigger.pl − ZoneMinder External Trigger Script
This script is used to trigger and cancel alarms from external connections using an arbitrary text based format.
This script offers generic solution to external triggering of alarms. It can handle external connections via either internet socket, unix socket or file/device interfaces. You can either use it ’as is’ if you can interface with the existing format, or override connections and channels to customise it to your needs.
If enabled by the OPT_TRIGGERS option, Zoneminder service start zmtrigger.pl which listens for control messages on TCP port 6802.
id|action|score|cause|text|showtext
id |
is the id number or name of the ZM monitor.
action
Valid actions are 'on', 'off',
'cancel' or 'show' where
'on' forces an alarm condition on;
'off' forces an alarm condition off;
'cancel' negates the previous 'on' or 'off';
'show' updates the auxiliary text represented by the %Q
placeholder, which can optionally be added to the affected
monitor's
timestamp label format.
Ordinarily you would use 'on' and 'cancel', 'off' would tend
to be
used to suppress motion based events. Additionally 'on' and
'off' can
take an additional time offset, e.g. on+20 which
automatically
cancel's the previous action after that number of
seconds.
score
is the score given to the
alarm, usually to indicate it's
importance. For 'on' triggers it should be non−zero,
otherwise it should
be zero.
cause
is a 32 char max string
indicating the reason for, or source of
the alarm e.g. 'Relay 1 open'. This is saved in the 'Cause'
field of the
event. Ignored for 'off' or 'cancel' messages.
text
is a 256 char max additional
info field, which is saved in the
'Description' field of an event. Ignored for 'off' or
'cancel' messages.
showtext
is up to 32 characters of text
that can be displayed in the
timestamp that is added to images. The 'show' action is
designed to
update this text without affecting alarms but the text is
updated, if
present, for any of the actions. This is designed to allow
external input
to appear on the images captured, for instance temperature
or personnel
identity etc.
Note that
multiple messages can be sent at once and should be LF or
CRLF
delimited. This script is not necessarily intended to be a
solution in
itself, but is intended to be used as 'glue' to help
ZoneMinder interface
with other systems. It will almost certainly require some
customisation
before you can make any use of it. If all you want to do is
generate alarms
from external sources then using the ZoneMinder::SharedMem
perl module is
likely to be easier.
3|on+10|1|motion|text|showtext
Triggers ’alarm’ on camera #3 for 10 seconds with score=1, cause=’motion’.