zmtrigger.pl(8)

πŸ“¦
version 1.38.1 Β· 2 versions
, in alpine 3.24

πŸ’– NAME πŸ’–

okay so bestie, this is zmtrigger.pl from zoneminder β€” the ZoneMinder External Trigger Script. lowkey iconic, no cap. she’s the script that handles external triggers, periodt.

🚨 DESCRIPTION 🚨

This script is used to trigger and cancel alarms from external connections using an arbitrary text based format. it’s giving β€œgeneric solution to external triggering of alarms,” fr fr.

ngl, it can handle external connections via either an internet socket, a 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 it’s enabled by the OPT_TRIGGERS option, the Zoneminder service start zmtrigger.pl, which listens for control messages on TCP port 6802. πŸ‘‘

πŸ“¨ TRIGGER MESSAGE FORMAT πŸ“¨

the format is literally:

id|action|score|cause|text|showtext
  • id β€” is the id number or name of the ZM monitor. got it? πŸ’…
  • 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', and '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. no cap.
  • 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 bestie: 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. πŸ’€

🌸 EXAMPLES 🌸

3|on+10|1|motion|text|showtext

Triggers 'alarm' on camera #3 for 10 seconds with score=1, cause='motion'. slay. πŸ”₯


that’s the whole vibe, bestie 🫢 the header says zoneminder, the footer source/version field says --stderr, dated 2026-03-04, page zmtrigger.pl(8). bye and ily πŸ’…βœ¨

πŸ“¦ where this page comes from