Page 1 of 1

Another Python server/script that forwards alerts from cameras.

Posted: Tue Mar 26, 2024 7:17 pm
by User6677
This is for 1.36 users (as 1.37 has onvif triggering built in I believe).

This script will connect to a number of cameras via onvif PullPoint (please note, some cameras support PullPoint, but some support only BaseSubscription, for these this will not work). The script doesn't "just" pass everything to ZM. It has a setting to delay cancellation of a motion alarm if its cancellation came very quickly after triggering. Some cameras (like ones I have) will send a string of alert..alert off...alert...alert off... and so on, for the duration of the movement. This feature is to resolve this and make it into one long alert. Also the script doesn't pass events if one is already ongoing for a monitor.

I've been running it for a couple of days now and it is working fine so I decided to share here. It needs a config file like this:

Code: Select all

zmtriggerhost: "127.0.0.1"
zmtriggerport: 6802
logpath: "/var/log/zm/onvifserver.txt"
log_file_size_limit: 2048576  # Example size in bytes
max_threads: 20
monitors:
 Yard:
    ip: '192.168.1.121'
    username: 'admin'
    password: 'password'
    port: 80
    id: 1
    expiry: 65
    note: "This is a note for monitor2."
 TheBorder:
    ip: '192.168.1.202'
    username: 'admin'
    password: 'password'
    port: 80
    id: 8
    expiry: 65
    note: "This is a note for monitor2."
It requires PyYaml and zeep to be installed as well as zmtrigger to run. The script is attached.