ZoneMinder / zmeventnotification

Machine Learning powered Secure Websocket & MQTT based ZoneMinder event notification server
408 stars 128 forks source link

zmdetects api.py:311 raising BAD_IMAGE valueerror for a 404 #383

Closed ihaddy closed 3 years ago

ihaddy commented 3 years ago

Before you create an issue, please make sure you have read the README. If you are asking about the object detection part, I don't provide support for it unless you've tried hard enough.

Event Server version

You can get the version by doing:

/usr/bin/zmeventnotification.pl --version

6.1.19

Hooks version (if you are using Object Detection)

You can get the version by doing:

/var/lib/zmeventnotification/bin/zm_detect.py --version

app:6.1.19, pyzm:0.3.45

Are you using MLAPI? (Y/N)

If you are using MLAPI, please mention the version You can get the version by doing: (change path to wherever you install mlapi)

/var/lib/zmeventnotification/mlapi/mlapi.py --version

I don't think so, command returns no suchfile or directory

The version of ZoneMinder you are using:

(example only, please edit this line) 1.34.22

What is the nature of your issue

Bug (one of Bug, Enhancement, Question)

Details Hey! So this is a last resort for me because i absolutely hate the thought of bugging developers of free software for support, but i've been at this for hours so any help would be appreciated!

To give you a brief synopsis first ( i will include all full logs at the bottom!): Essentially my issue is the python script zm_detect.py throws an error that the link is invalid when trying to fetch the frame to run the analysis, and therefore the entire object detection doesn't work.

How i got to this conclusion is from a snippet from what i think to be the relevant logs:

04/07/21 09:03:53 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm payload={} type=get query={'token': 'Iredactedthispartforreadability'}]

04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm&token=Iredactedthispartforreadability]

So the link it's trying to fetch, " http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm&token=Iredactedthispart" doesn't work after trying it in the browser and with wget from being ssh'd into the zoneminder VM.

After scouring the API docs and not getting anymore insight, i used the chrome dev tools to capture network requests and try and determine what the working link should be, and i came up with

http://192.168.1.191/zm/index.php?view=frame&eid=EVENTID&fid=objdetect&width=600

as the valid link, replacing EVENTID with the eventid. The differences being the /zm/ after the ip address. and the word "image" being changed to "frame". After making those changes, voila, i get the link to pull up the alarm frame in the browser. So, no big deal, after reading all your documentation i thought i'd just change the picture url in the secrets.ini to reflect that and reload the whole thing and then it'd work, but here's the issue, it doesn't lol!

from my config print out when i run the following command sudo -u www-data /usr/bin/zmeventnotification.pl --debug

Picture URL .......................... http://192.168.1.191/zm/index.php?view=frame&eid=EVENTID&fid=objdetect&width=600

however the python script still calls the old invalid link to get the frame (the one with no /zm/ and the word 'image' instead of 'frame'). So this is where i'm stuck, i think that if i can update that link to the one that actually points to the frame through the api, i'd get it working, but updating the picture-url in the secrets.ini file isn't actually changing what the cascade of python scripts use for the picture url even though my config has it listed correctly, so i'm stumped. I'm currently in the process of trying to set up a python debugger to walk through the code line by line to figure out why it's not just using the value i specified in the secrets.ini for the picture url, but i've got to figure out the logistics of setting up that IDE.

This is the log after updating the secrets.ini with the new url, it still calls api.py on the old one.

04/07/21 09:03:05 zmesdetect_m4[2081] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32595&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNTY5LCJleHAiOjE2MTc4MDc3NjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.q-3ck8II3v10oiPQHoJU87mdIftWnpBJiIBWFWpr33w'}]
04/07/21 09:03:05 zmesdetect_m4[2081] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32595&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNTY5LCJleHAiOjE2MTc4MDc3NjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.q-3ck8II3v10oiPQHoJU87mdIftWnpBJiIBWFWpr33w]
04/07/21 09:03:05 zmesdetect_m4[2081] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]

Honestly, i'm a little confused as to how my PICTURE path is different from the default in the first place, because i don't remember doing any customization on this ZM install, but it'd been running for a while now so my memory is foggy. If you've made it thus far, the logs are in the bottom. Thank you SO much for any time and effort, and i would love to know how to contribute to this project in the future!

Debug Logs (full logs)

**please let me know if you want more, less, logs of something different, anything!***

*zmdesdetect_m logs

note monitor4 is the one that i'm currently using to wave my hand in front of for more rapid testing


zoneminder@zoneminder-Standard-PC-i440FX-PIIX-1996:~$ tail -F /var/log/zm/zmesdetect_m*.log
==> /var/log/zm/zmesdetect_m1.log <==
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 519, in request
    prep = self.prepare_request(req)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 452, in prepare_request
    p.prepare(
  File "/usr/lib/python3/dist-packages/requests/models.py", line 313, in prepare
    self.prepare_url(url, params)
  File "/usr/lib/python3/dist-packages/requests/models.py", line 387, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL 'localhost/zm/api/host/login.json': No schema supplied. Perhaps you meant http://localhost/zm/api/host/login.json?
]

==> /var/log/zm/zmesdetect_m2.log <==
04/07/21 08:00:10 zmesdetect_m2[442278] DBG3 api.py:139 [No need to relogin as access token still has 119.73166436666666 minutes remaining]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32553&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3Nzk2Nzk0LCJleHAiOjE2MTc4MDM5OTQsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.babm8_1toeWZqgYpgsW_STUnZYX73ncYRa8zgaUGZzk'}]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32553&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3Nzk2Nzk0LCJleHAiOjE2MTc4MDM5OTQsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.babm8_1toeWZqgYpgsW_STUnZYX73ncYRa8zgaUGZzk]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG2 Media.py:285 [Failed attempt:3 of 3]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG1 Media.py:343 [Error reading frame: 2 of max 5 contiguous errors]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG1 Media.py:246 [Reached end of frame_set]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG1 detect_sequence.py:623 [Ran out of frames to read]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG1 detect_sequence.py:803 [perf: TOTAL detection sequence (with image loads) took: 16112.12 ms  to process 32553]
04/07/21 08:00:10 zmesdetect_m2[442278] DBG1 zm_detect.py:548 [Closing logs]

==> /var/log/zm/zmesdetect_m32355.log <==
  File "/var/lib/zmeventnotification/bin/zm_detect.py", line 547, in <module>
    main_handler()
  File "/var/lib/zmeventnotification/bin/zm_detect.py", line 411, in main_handler
    matched_data,all_data = m.detect_stream(stream=stream, options=stream_options)
  File "/usr/local/lib/python3.8/dist-packages/pyzm/ml/detect_sequence.py", line 613, in detect_stream
    media = MediaStream(stream,'video', self.stream_options )
  File "/usr/local/lib/python3.8/dist-packages/pyzm/helpers/Media.py", line 112, in __init__
    raise ValueError ('You are using frame_types that require ZM indirection')
ValueError: You are using frame_types that require ZM indirection
]

==> /var/log/zm/zmesdetect_m32450.log <==
  File "/var/lib/zmeventnotification/bin/zm_detect.py", line 547, in <module>
    main_handler()
  File "/var/lib/zmeventnotification/bin/zm_detect.py", line 411, in main_handler
    matched_data,all_data = m.detect_stream(stream=stream, options=stream_options)
  File "/usr/local/lib/python3.8/dist-packages/pyzm/ml/detect_sequence.py", line 613, in detect_stream
    media = MediaStream(stream,'video', self.stream_options )
  File "/usr/local/lib/python3.8/dist-packages/pyzm/helpers/Media.py", line 112, in __init__
    raise ValueError ('You are using frame_types that require ZM indirection')
ValueError: You are using frame_types that require ZM indirection
]

==> /var/log/zm/zmesdetect_m4.log <==
04/07/21 01:04:05 zmesdetect_m4[434372] DBG3 api.py:139 [No need to relogin as access token still has 119.73166395 minutes remaining]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32529&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3NzcxODI5LCJleHAiOjE2MTc3NzkwMjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.cBgTtIpYVWpi8-YepmXR_yu__r35u6LJ6HI4BAAtSs4'}]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32529&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3NzcxODI5LCJleHAiOjE2MTc3NzkwMjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.cBgTtIpYVWpi8-YepmXR_yu__r35u6LJ6HI4BAAtSs4]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG2 Media.py:285 [Failed attempt:3 of 3]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG1 Media.py:343 [Error reading frame: 2 of max 5 contiguous errors]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG1 Media.py:246 [Reached end of frame_set]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG1 detect_sequence.py:623 [Ran out of frames to read]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG1 detect_sequence.py:803 [perf: TOTAL detection sequence (with image loads) took: 16103.87 ms  to process 32529]
04/07/21 01:04:05 zmesdetect_m4[434372] DBG1 zm_detect.py:548 [Closing logs]

==> /var/log/zm/zmesdetect_m5.log <==
04/07/21 08:00:10 zmesdetect_m5[442277] DBG3 api.py:139 [No need to relogin as access token still has 119.73165936666666 minutes remaining]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32554&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3Nzk2Nzk0LCJleHAiOjE2MTc4MDM5OTQsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.babm8_1toeWZqgYpgsW_STUnZYX73ncYRa8zgaUGZzk'}]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32554&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3Nzk2Nzk0LCJleHAiOjE2MTc4MDM5OTQsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.babm8_1toeWZqgYpgsW_STUnZYX73ncYRa8zgaUGZzk]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG2 Media.py:285 [Failed attempt:3 of 3]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG1 Media.py:343 [Error reading frame: 2 of max 5 contiguous errors]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG1 Media.py:246 [Reached end of frame_set]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG1 detect_sequence.py:623 [Ran out of frames to read]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG1 detect_sequence.py:803 [perf: TOTAL detection sequence (with image loads) took: 16106.47 ms  to process 32554]
04/07/21 08:00:10 zmesdetect_m5[442277] DBG1 zm_detect.py:548 [Closing logs]

==> /var/log/zm/zmesdetect_m7.log <==
04/07/21 09:03:05 zmesdetect_m7[2081] DBG3 api.py:139 [No need to relogin as access token still has 119.73191746666666 minutes remaining]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32595&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNTY5LCJleHAiOjE2MTc4MDc3NjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.q-3ck8II3v10oiPQHoJU87mdIftWnpBJiIBWFWpr33w'}]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32595&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNTY5LCJleHAiOjE2MTc4MDc3NjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.q-3ck8II3v10oiPQHoJU87mdIftWnpBJiIBWFWpr33w]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG2 Media.py:285 [Failed attempt:3 of 3]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG1 Media.py:343 [Error reading frame: 2 of max 5 contiguous errors]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG1 Media.py:246 [Reached end of frame_set]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG1 detect_sequence.py:623 [Ran out of frames to read]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG1 detect_sequence.py:803 [perf: TOTAL detection sequence (with image loads) took: 16091.86 ms  to process 32595]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG1 zm_detect.py:548 [Closing logs]

==> /var/log/zm/zmesdetect_m4.log <==
04/07/21 09:03:36 zmesdetect_m4[2121] INF ZMLog.py:225 [Setting up signal handler for logs]
04/07/21 09:03:36 zmesdetect_m4[2121] INF ZMLog.py:234 [Switching global logger to ZMLog]
04/07/21 09:03:36 zmesdetect_m4[2121] INF zm_detect.py:271 [---------| app:6.1.19, pyzm:0.3.45, ES:6.1.19 , OpenCV:4.5.1|------------]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG1 utils.py:410 [secret filename: /etc/zm/secrets.ini]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 utils.py:383 [Secret token found in config: !ML_USER]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 utils.py:383 [Secret token found in config: !ML_PASSWORD]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 utils.py:383 [Secret token found in config: !PLATEREC_ALPR_KEY]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG1 utils.py:445 [allowing self-signed certs to work...]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG4 utils.py:455 [Now checking for monitor overrides]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG4 utils.py:520 [Finally, doing parameter substitution]
04/07/21 09:03:37 zmesdetect_m4[2121] INF zm_detect.py:296 [Importing local classes for Object/Face]
04/07/21 09:03:37 zmesdetect_m4[2121] INF zm_detect.py:319 [Connecting with ZM APIs]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 api.py:67 [API SSL certificate check has been disbled]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG1 api.py:176 [using username/password for login]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 api.py:205 [Using new token API]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG1 api.py:212 [Access token expires on:2021-04-07 11:03:37.590226 [7200s]]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG1 api.py:216 [Refresh token expires on:2021-04-08 09:03:37.591350 [86400s]]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 zm_detect.py:327 [using ml_sequence]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 zm_detect.py:339 [using stream_sequence]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG1 detect_sequence.py:145 [Resetting models, will be loaded on next run]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG3 detect_sequence.py:606 [Using automatic locking as we are switching between models]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 Media.py:53 [Media get SSL certificate check has been disbled]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 Media.py:101 [Using URL 32596 for stream]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 Media.py:114 [We will only process frames: ['snapshot', 'alarm']]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 Media.py:137 [No need to start streams, we are picking images from http://192.168.1.191/index.php?view=image&eid=32596]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG3 Media.py:271 [Reading http://192.168.1.191/index.php?view=image&eid=32596&fid=snapshot]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG3 api.py:139 [No need to relogin as access token still has 119.99972521666668 minutes remaining]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=snapshot payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw'}]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=snapshot&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 Media.py:285 [Failed attempt:1 of 3]
04/07/21 09:03:37 zmesdetect_m4[2121] DBG2 Media.py:288 [Sleeping for 4 seconds before retry]
04/07/21 09:03:41 zmesdetect_m4[2121] DBG3 api.py:139 [No need to relogin as access token still has 119.93283410000001 minutes remaining]
04/07/21 09:03:41 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=snapshot payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw'}]
04/07/21 09:03:41 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=snapshot&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw]
04/07/21 09:03:41 zmesdetect_m4[2121] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 09:03:41 zmesdetect_m4[2121] DBG2 Media.py:285 [Failed attempt:2 of 3]
04/07/21 09:03:41 zmesdetect_m4[2121] DBG2 Media.py:288 [Sleeping for 4 seconds before retry]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG3 api.py:139 [No need to relogin as access token still has 119.86590073333333 minutes remaining]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=snapshot payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw'}]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=snapshot&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG2 Media.py:285 [Failed attempt:3 of 3]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG1 Media.py:343 [Error reading frame: 1 of max 5 contiguous errors]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG3 Media.py:271 [Reading http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG3 api.py:139 [No need to relogin as access token still has 119.86571239999999 minutes remaining]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw'}]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG2 Media.py:285 [Failed attempt:1 of 3]
04/07/21 09:03:45 zmesdetect_m4[2121] DBG2 Media.py:288 [Sleeping for 4 seconds before retry]
04/07/21 09:03:49 zmesdetect_m4[2121] DBG3 api.py:139 [No need to relogin as access token still has 119.79880148333334 minutes remaining]
04/07/21 09:03:49 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw'}]
04/07/21 09:03:49 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw]
04/07/21 09:03:49 zmesdetect_m4[2121] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 09:03:49 zmesdetect_m4[2121] DBG2 Media.py:285 [Failed attempt:2 of 3]
04/07/21 09:03:49 zmesdetect_m4[2121] DBG2 Media.py:288 [Sleeping for 4 seconds before retry]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG3 api.py:139 [No need to relogin as access token still has 119.73187475 minutes remaining]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw'}]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG2 Media.py:285 [Failed attempt:3 of 3]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 Media.py:343 [Error reading frame: 2 of max 5 contiguous errors]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 Media.py:246 [Reached end of frame_set]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 detect_sequence.py:623 [Ran out of frames to read]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 detect_sequence.py:803 [perf: TOTAL detection sequence (with image loads) took: 16089.84 ms  to process 32596]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 zm_detect.py:548 [Closing logs]

04/07/21 09:03:53 zmesdetect_m4[2121] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw'}]
04/07/21 09:03:53 zmesdetect_m4[2121] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32596&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNjE3LCJleHAiOjE2MTc4MDc4MTcsInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.8tv6NlGAKz8ipbex2VWAbSdjzXlRA4aWVCYkVweNsUw]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG4 api.py:267 [make_request called with url=http://192.168.1.191/index.php?view=image&eid=32595&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNTY5LCJleHAiOjE2MTc4MDc3NjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.q-3ck8II3v10oiPQHoJU87mdIftWnpBJiIBWFWpr33w'}]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG1 api.py:303 [HTTP error: 404 Client Error: Not Found for url: http://192.168.1.191/index.php?view=image&eid=32595&fid=alarm&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjE3ODAwNTY5LCJleHAiOjE2MTc4MDc3NjksInVzZXIiOiJnYXJnbGUiLCJ0eXBlIjoiYWNjZXNzIn0.q-3ck8II3v10oiPQHoJU87mdIftWnpBJiIBWFWpr33w]
04/07/21 09:03:05 zmesdetect_m7[2081] DBG4 api.py:311 [Raising BAD_IMAGE ValueError for a 404]
zoneminder@zoneminder-Standard-PC-i440FX-PIIX-1996:~$ sudo -u www-data /usr/bin/zmeventnotification.pl --debug
[sudo] password for zoneminder:
04/07/2021 09:36:14.477039 zmeventnotification[2808].INF [main:326] [Running on WebSocket library version:0.004]
INF:2021-04-07,09:36:14 PARENT: using config file: /etc/zm/zmeventnotification.ini
04/07/2021 09:36:14.553572 zmeventnotification[2808].INF [main:1010] [PARENT: using config file: /etc/zm/zmeventnotification.ini]
INF:2021-04-07,09:36:14 PARENT: using secrets file: /etc/zm/secrets.ini
04/07/2021 09:36:14.567244 zmeventnotification[2808].INF [main:1010] [PARENT: using secrets file: /etc/zm/secrets.ini]
DBG-2:2021-04-07,09:36:14 PARENT: Got secret token !ZM_USER
DBG-2:2021-04-07,09:36:14 PARENT: Got secret token !ZM_PASSWORD
DBG-3:2021-04-07,09:36:14 PARENT: config string substitution: {{base_data_path}} is '/var/lib/zmeventnotification'

Configuration (read /etc/zm/zmeventnotification.ini):

Secrets file.......................... /etc/zm/secrets.ini
Base data path........................ /var/lib/zmeventnotification
Restart interval (secs)............... 0

Use admin interface .................. no
Admin interface password.............. (undefined)
Admin interface persistence file ..... /var/lib/zmeventnotification/misc/escontrol_interface.dat

Port ................................. 9000
Address .............................. [::]
Event check interval ................. 5
Monitor reload interval .............. 300
Skipped monitors...................... (undefined)

Auth enabled ......................... yes
Auth timeout ......................... 20

Use API Push.......................... no
API Push Script....................... (undefined)

Use FCM .............................. yes
Use FCM V1 APIs....................... yes
FCM Date Format....................... %I:%M %p, %d-%b
Only show latest FCMv1 message........ no
Android FCM push priority............. high
Android FCM push ttl.................. (undefined)

Token file ........................... /var/lib/zmeventnotification/push/tokens.txt

Use MQTT ............................. no
MQTT Server .......................... 127.0.0.1
MQTT Topic ........................... zoneminder
MQTT Username ........................ (undefined)
MQTT Password ........................ (undefined)
MQTT Retain .......................... no
MQTT Tick Interval ................... 15
MQTT TLS CA ........................ (undefined)
MQTT TLS Cert ........................ (undefined)
MQTT TLS Key ........................ (undefined)
MQTT TLS Insecure ........................ no

SSL enabled .......................... yes
SSL cert file ........................ /etc/zm/zoneminder.crt
SSL key file ......................... /etc/zm/zoneminder.key

Verbose .............................. yes
ES Debug level.........................4
Read alarm cause ..................... yes
Tag alarm event id ................... yes
Use custom notification sound ........ no
Send event start notification..........yes
Send event end notification............yes
Monitor rules JSON file................(undefined)

Use Hooks............................. yes
Hook Script on Event Start ........... '/var/lib/zmeventnotification/bin/zm_event_start.sh'
User Script on Event Start.............(undefined)
Hook Script on Event End.............. (undefined)
User Script on Event End.............(undefined)
Hook Skipped monitors................. (undefined)

Notify on Event Start (hook success).. all
Notify on Event Start (hook fail)..... none
Notify on Event End (hook success).... fcm,web,api
Notify on Event End (hook fail)....... none
Notify End only if Start success...... yes

Use Hook Description.................. yes
Keep frame match type................. yes
Store Frame in ZM......................yes

Picture URL .......................... http://192.168.1.191/zm/index.php?view=frame&eid=EVENTID&fid=objdetect&width=600
Include picture....................... yes
Picture username ..................... gargle
Picture password ..................... (defined)

INF:2021-04-07,09:36:14 PARENT: Push enabled via FCM
04/07/2021 09:36:14.790584 zmeventnotification[2808].INF [main:1010] [PARENT: Push enabled via FCM]
DBG-4:2021-04-07,09:36:14 PARENT: fcmv1: --> FCM V1 APIs: 1
INF:2021-04-07,09:36:14 PARENT: MQTT Disabled
04/07/2021 09:36:14.795249 zmeventnotification[2808].INF [main:1010] [PARENT: MQTT Disabled]
INF:2021-04-07,09:36:14 PARENT: |------- Starting ES version: 6.1.19 ---------|
04/07/2021 09:36:14.798858 zmeventnotification[2808].INF [main:1010] [PARENT: |------- Starting ES version: 6.1.19 ---------|]
DBG-1:2021-04-07,09:36:14 PARENT: Started with: perl:/usr/bin/perl and command:/usr/bin/zmeventnotification.pl
Can't ignore signal CHLD, forcing to default.
DBG-1:2021-04-07,09:36:15 PARENT: ES invoked manually. Will handle restarts ourselves
DBG-2:2021-04-07,09:36:15 PARENT: Parent<--Child pipe ready
INF:2021-04-07,09:36:15 PARENT: Event Notification daemon v 6.1.19 starting

04/07/2021 09:36:15.007679 zmeventnotification[2808].INF [main:1010] [PARENT: Event Notification daemon v 6.1.19 starting]
DBG-1:2021-04-07,09:36:15 PARENT: Initializing FCM tokens...
DBG-1:2021-04-07,09:36:15 PARENT: Total event client connections: 0

INF:2021-04-07,09:36:15 PARENT: Re-loading monitors
04/07/2021 09:36:15.015369 zmeventnotification[2808].INF [main:1010] [PARENT: Re-loading monitors]
DBG-1:2021-04-07,09:36:15 PARENT: Loading Garage
DBG-1:2021-04-07,09:36:15 PARENT: Loading Right Yard
DBG-1:2021-04-07,09:36:15 PARENT: Loading Front Right House
DBG-1:2021-04-07,09:36:15 PARENT: Loading Front Door
DBG-1:2021-04-07,09:36:15 PARENT: Loading Living Room
DBG-1:2021-04-07,09:36:15 PARENT: Loading Kitchen
DBG-1:2021-04-07,09:36:15 PARENT: ESCONTROL_INTERFACE is disabled. Not saving control data
DBG-2:2021-04-07,09:36:15 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:36:15 PARENT: About to start listening to socket
INF:2021-04-07,09:36:15 PARENT: Secure WS(WSS) is enabled...
04/07/2021 09:36:15.031961 zmeventnotification[2808].INF [main:1010] [PARENT: Secure WS(WSS) is enabled...]
INF:2021-04-07,09:36:15 PARENT: Web Socket Event Server listening on port 9000
04/07/2021 09:36:15.036226 zmeventnotification[2808].INF [main:1010] [PARENT: Web Socket Event Server listening on port 9000]
DBG-2:2021-04-07,09:36:20 PARENT: ----------> Tick START (active forks:0, total forks:0, running for:1 min)<--------------
DBG-2:2021-04-07,09:36:20 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:36:20 PARENT: There are 0 active child forks...
DBG-2:2021-04-07,09:36:20 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:36:20 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:36:20 PARENT: ---------->Tick END (active forks:0, total forks:0)<--------------
DBG-2:2021-04-07,09:36:25 PARENT: ----------> Tick START (active forks:0, total forks:0, running for:1 min)<--------------
DBG-2:2021-04-07,09:36:25 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:36:25 PARENT: There are 0 active child forks...
DBG-2:2021-04-07,09:36:25 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:36:25 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:36:25 PARENT: ---------->Tick END (active forks:0, total forks:0)<--------------
DBG-2:2021-04-07,09:36:30 PARENT: ----------> Tick START (active forks:0, total forks:0, running for:1 min)<--------------
DBG-2:2021-04-07,09:36:30 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:36:30 PARENT: There are 0 active child forks...
DBG-2:2021-04-07,09:36:30 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:36:30 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:36:30 PARENT: ---------->Tick END (active forks:0, total forks:0)<--------------
DBG-2:2021-04-07,09:36:35 PARENT: ----------> Tick START (active forks:0, total forks:0, running for:1 min)<--------------
DBG-2:2021-04-07,09:36:35 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:36:35 PARENT: There are 0 active child forks...
DBG-2:2021-04-07,09:36:35 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:36:35 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:36:35 PARENT: ---------->Tick END (active forks:0, total forks:0)<--------------

syslog tail -F /var/log/syslog | grep m4

(unsure how much of this one you'd want to see since it's just a lot of this)


Apr  7 09:03:00 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1 - Capturing at 0.00 fps, capturing bandwidth 849bytes/sec]
Apr  7 09:03:01 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [In mode 3/1, warming up]
Apr  7 09:03:05 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:100 - Capturing at 20.00 fps, capturing bandwidth 133838bytes/sec]
Apr  7 09:03:07 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 100 - Analysing at 0.43 fps]
Apr  7 09:03:11 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:200 - Capturing at 16.67 fps, capturing bandwidth 115188bytes/sec]
Apr  7 09:03:14 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 200 - Analysing at 14.29 fps]
Apr  7 09:03:18 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:300 - Capturing at 14.29 fps, capturing bandwidth 91118bytes/sec]
Apr  7 09:03:21 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 300 - Analysing at 14.29 fps]
Apr  7 09:03:25 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:400 - Capturing at 14.29 fps, capturing bandwidth 103605bytes/sec]
Apr  7 09:03:28 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 400 - Analysing at 14.29 fps]
Apr  7 09:03:32 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:500 - Capturing at 14.29 fps, capturing bandwidth 91017bytes/sec]
Apr  7 09:03:33 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 466 - Gone into alarm state PreAlarmCount: 0 > AlarmFrameCount:1 Cause:Motion All]
Apr  7 09:03:33 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 466 - Opening new event 32596, alarm start]
Apr  7 09:03:36 zoneminder-Standard-PC-i440FX-PIIX-1996 /zm_detect.py[2121]: INF [zmesdetect_m4] [Setting up signal handler for logs]
Apr  7 09:03:36 zoneminder-Standard-PC-i440FX-PIIX-1996 /zm_detect.py[2121]: INF [zmesdetect_m4] [Switching global logger to ZMLog]
Apr  7 09:03:36 zoneminder-Standard-PC-i440FX-PIIX-1996 /zm_detect.py[2121]: INF [zmesdetect_m4] [---------| app:6.1.19, pyzm:0.3.45, ES:6.1.19 , OpenCV:4.5.1|------------]
Apr  7 09:03:37 zoneminder-Standard-PC-i440FX-PIIX-1996 /zm_detect.py[2121]: INF [zmesdetect_m4] [Importing local classes for Object/Face]
Apr  7 09:03:37 zoneminder-Standard-PC-i440FX-PIIX-1996 /zm_detect.py[2121]: INF [zmesdetect_m4] [Connecting with ZM APIs]
Apr  7 09:03:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 481 - Gone into alert state]
Apr  7 09:03:39 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:600 - Capturing at 14.29 fps, capturing bandwidth 139238bytes/sec]
Apr  7 09:03:40 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 500 - Analysing at 8.33 fps]
Apr  7 09:03:42 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 523 - Left alarm state (32596) - 62(15) images]
Apr  7 09:03:42 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 523 - Closing event 32596, alarm end]
Apr  7 09:03:46 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:700 - Capturing at 14.29 fps, capturing bandwidth 111706bytes/sec]
Apr  7 09:03:47 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 600 - Analysing at 14.29 fps]
Apr  7 09:03:52 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:800 - Capturing at 16.67 fps, capturing bandwidth 112616bytes/sec]
Apr  7 09:03:54 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 700 - Analysing at 14.29 fps]
Apr  7 09:03:59 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:900 - Capturing at 14.29 fps, capturing bandwidth 95731bytes/sec]
Apr  7 09:04:00 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 800 - Analysing at 16.67 fps]
Apr  7 09:04:06 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1000 - Capturing at 14.29 fps, capturing bandwidth 114737bytes/sec]
Apr  7 09:04:07 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 900 - Analysing at 14.29 fps]
Apr  7 09:04:13 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1100 - Capturing at 14.29 fps, capturing bandwidth 96005bytes/sec]
Apr  7 09:04:14 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1000 - Analysing at 14.29 fps]
Apr  7 09:04:19 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1200 - Capturing at 16.67 fps, capturing bandwidth 109829bytes/sec]
Apr  7 09:04:21 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1100 - Analysing at 14.29 fps]
Apr  7 09:04:26 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1300 - Capturing at 14.29 fps, capturing bandwidth 116375bytes/sec]
Apr  7 09:04:27 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1200 - Analysing at 16.67 fps]
Apr  7 09:04:33 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1400 - Capturing at 14.29 fps, capturing bandwidth 95243bytes/sec]
Apr  7 09:04:34 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1300 - Analysing at 14.29 fps]
Apr  7 09:04:39 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1500 - Capturing at 16.67 fps, capturing bandwidth 111032bytes/sec]
Apr  7 09:04:41 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1400 - Analysing at 14.29 fps]
Apr  7 09:04:46 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1600 - Capturing at 14.29 fps, capturing bandwidth 106865bytes/sec]
Apr  7 09:04:47 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1500 - Analysing at 16.67 fps]
Apr  7 09:04:53 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1700 - Capturing at 14.29 fps, capturing bandwidth 91544bytes/sec]
Apr  7 09:04:54 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1600 - Analysing at 14.29 fps]
Apr  7 09:05:00 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1800 - Capturing at 14.29 fps, capturing bandwidth 94899bytes/sec]
Apr  7 09:05:01 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1700 - Analysing at 14.29 fps]
Apr  7 09:05:07 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:1900 - Capturing at 14.29 fps, capturing bandwidth 110695bytes/sec]
Apr  7 09:05:08 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1800 - Analysing at 14.29 fps]
Apr  7 09:05:13 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:2000 - Capturing at 16.67 fps, capturing bandwidth 113403bytes/sec]
Apr  7 09:05:15 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 1900 - Analysing at 14.29 fps]
Apr  7 09:05:20 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:2100 - Capturing at 14.29 fps, capturing bandwidth 95775bytes/sec]
Apr  7 09:05:22 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 2000 - Analysing at 14.29 fps]
Apr  7 09:05:27 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:2200 - Capturing at 14.29 fps, capturing bandwidth 109416bytes/sec]
Apr  7 09:05:28 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 2100 - Analysing at 16.67 fps]
Apr  7 09:05:34 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:2300 - Capturing at 14.29 fps, capturing bandwidth 101498bytes/sec]
Apr  7 09:05:35 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 2200 - Analysing at 14.29 fps]
Apr  7 09:05:41 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:2400 - Capturing at 14.29 fps, capturing bandwidth 98580bytes/sec]

syslog no grep

note: the other two cams it can't connect to are just currently unplugged as i moved around my office to troubleshoot

pr  7 09:34:36 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m1[1231]: ERR [zmc_m1] [Unable to open input rtsp://gargle:Humpzilla2@192.168.1.13/live due to: No route to host]
Apr  7 09:34:36 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m3[1244]: ERR [zmc_m3] [Unable to open input rtsp://garglemoth:Humpzilla2@192.168.1.12/live due to: No route to host]
Apr  7 09:34:36 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m3[1244]: ERR [zmc_m3] [Failed to prime capture of initial monitor]
Apr  7 09:34:36 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m1[1231]: ERR [zmc_m1] [Failed to prime capture of initial monitor]
Apr  7 09:34:36 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:28200 - Capturing at 16.67 fps, capturing bandwidth 116528bytes/sec]
Apr  7 09:34:37 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:37 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m5[1280]: INF [zma_m5] [Front Door: 30700 - Analysing at 14.29 fps]
Apr  7 09:34:37 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m7[1327]: INF [zma_m7] [Kitchen: 29600 - Analysing at 14.29 fps]
Apr  7 09:34:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 28000 - Analysing at 14.29 fps]
Apr  7 09:34:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 28004 - Gone into alarm state PreAlarmCount: 0 > AlarmFrameCount:1 Cause:Motion All]
Apr  7 09:34:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m7[1290]: INF [zmc_m7] [Kitchen: images:31800 - Capturing at 14.29 fps, capturing bandwidth 109923bytes/sec]
Apr  7 09:34:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 28004 - Opening new event 32615, alarm start]
Apr  7 09:34:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m2[1236]: INF [zmc_m2] [Garage: images:31800 - Capturing at 16.67 fps, capturing bandwidth 111290bytes/sec]
Apr  7 09:34:38 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: INF [zmc_m6] [Living Room: images:31800 - Capturing at 16.67 fps, capturing bandwidth 105591bytes/sec]
Apr  7 09:34:39 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:39 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m2[1273]: INF [zma_m2] [Garage: 30800 - Analysing at 14.29 fps]
Apr  7 09:34:39 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m6[1285]: INF [zma_m6] [Living Room: 30900 - Analysing at 16.67 fps]
Apr  7 09:34:39 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: INF [zmc_m5] [Front Door: images:31800 - Capturing at 16.67 fps, capturing bandwidth 114922bytes/sec]
Apr  7 09:34:40 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: WAR [zmc_m4] [Buffer overrun at index 20, image 28245, slow down capture, speed up analysis or increase ring buffer size]
Apr  7 09:34:40 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:40 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: WAR [zmc_m4] [Buffer overrun at index 0, image 28250, slow down capture, speed up analysis or increase ring buffer size]
Apr  7 09:34:41 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:41 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: WAR [zmc_m4] [Buffer overrun at index 14, image 28264, slow down capture, speed up analysis or increase ring buffer size]
Apr  7 09:34:42 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:43 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:43 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 28012 - Gone into alert state]
Apr  7 09:34:43 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:28300 - Capturing at 14.29 fps, capturing bandwidth 152764bytes/sec]
Apr  7 09:34:43 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m5[1280]: INF [zma_m5] [Front Door: 30800 - Analysing at 16.67 fps]
Apr  7 09:34:44 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:44 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m7[1327]: INF [zma_m7] [Kitchen: 29700 - Analysing at 14.29 fps]
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m7[1290]: INF [zmc_m7] [Kitchen: images:31900 - Capturing at 14.29 fps, capturing bandwidth 94133bytes/sec]
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m2[1236]: INF [zmc_m2] [Garage: images:31900 - Capturing at 14.29 fps, capturing bandwidth 105112bytes/sec]
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: INF [zmc_m6] [Living Room: images:31900 - Capturing at 14.29 fps, capturing bandwidth 111449bytes/sec]
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 systemd[1]: Started Run anacron jobs.
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 anacron[2791]: Anacron 2.3 started on 2021-04-07
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 anacron[2791]: Normal exit (0 jobs run)
Apr  7 09:34:45 zoneminder-Standard-PC-i440FX-PIIX-1996 systemd[1]: anacron.service: Succeeded.
Apr  7 09:34:46 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:46 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m2[1273]: INF [zma_m2] [Garage: 30900 - Analysing at 14.29 fps]
Apr  7 09:34:46 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: INF [zmc_m5] [Front Door: images:31900 - Capturing at 14.29 fps, capturing bandwidth 107300bytes/sec]
Apr  7 09:34:46 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m6[1285]: INF [zma_m6] [Living Room: 31000 - Analysing at 14.29 fps]
Apr  7 09:34:47 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:47 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 28054 - Left alarm state (32615) - 55(8) images]
Apr  7 09:34:47 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 28054 - Closing event 32615, alarm end]
Apr  7 09:34:48 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:49 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:49 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m3[1244]: ERR [zmc_m3] [Unable to open input rtsp://garglemoth:Humpzilla2@192.168.1.12/live due to: No route to host]
Apr  7 09:34:49 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m1[1231]: ERR [zmc_m1] [Unable to open input rtsp://gargle:Humpzilla2@192.168.1.13/live due to: No route to host]
Apr  7 09:34:49 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m1[1231]: ERR [zmc_m1] [Failed to prime capture of initial monitor]
Apr  7 09:34:49 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m3[1244]: ERR [zmc_m3] [Failed to prime capture of initial monitor]
Apr  7 09:34:50 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:50 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m4[1271]: INF [zma_m4] [Front Right House: 28100 - Analysing at 8.33 fps]
Apr  7 09:34:50 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m4[1256]: INF [zmc_m4] [Front Right House: images:28400 - Capturing at 14.29 fps, capturing bandwidth 93110bytes/sec]
Apr  7 09:34:50 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m5[1280]: INF [zma_m5] [Front Door: 30900 - Analysing at 14.29 fps]
Apr  7 09:34:51 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m7[1327]: INF [zma_m7] [Kitchen: 29800 - Analysing at 14.29 fps]
Apr  7 09:34:51 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:51 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m7[1290]: INF [zmc_m7] [Kitchen: images:32000 - Capturing at 16.67 fps, capturing bandwidth 115023bytes/sec]
Apr  7 09:34:52 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: WAR [zmc_m5] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:52 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m2[1236]: INF [zmc_m2] [Garage: images:32000 - Capturing at 14.29 fps, capturing bandwidth 95456bytes/sec]
Apr  7 09:34:52 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: INF [zmc_m6] [Living Room: images:32000 - Capturing at 14.29 fps, capturing bandwidth 93123bytes/sec]
Apr  7 09:34:53 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m6[1278]: WAR [zmc_m6] [ImageBufferCount 20 is too small. Needs to be at least 31. Either increase it or decrease time between keyframes]
Apr  7 09:34:53 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m2[1273]: INF [zma_m2] [Garage: 31000 - Analysing at 14.29 fps]
Apr  7 09:34:53 zoneminder-Standard-PC-i440FX-PIIX-1996 zmc_m5[1266]: INF [zmc_m5] [Front Door: images:32000 - Capturing at 14.29 fps, capturing bandwidth 98533bytes/sec]
Apr  7 09:34:53 zoneminder-Standard-PC-i440FX-PIIX-1996 zma_m6[1285]: INF [zma_m6] [Living Room: 31100 - Analysing at 14.29 fps]

zmevennotification i had to manually stop this one just to prevent it from getting excessively long


zoneminder@zoneminder-Standard-PC-i440FX-PIIX-1996:~$ sudo -u www-data /usr/bin/zmeventnotification.pl --debug
04/07/2021 09:43:44.596422 zmeventnotification[3078].INF [main:326] [Running on WebSocket library version:0.004]
INF:2021-04-07,09:43:44 PARENT: using config file: /etc/zm/zmeventnotification.ini
04/07/2021 09:43:44.666438 zmeventnotification[3078].INF [main:1010] [PARENT: using config file: /etc/zm/zmeventnotification.ini]
INF:2021-04-07,09:43:44 PARENT: using secrets file: /etc/zm/secrets.ini
04/07/2021 09:43:44.686580 zmeventnotification[3078].INF [main:1010] [PARENT: using secrets file: /etc/zm/secrets.ini]
DBG-2:2021-04-07,09:43:44 PARENT: Got secret token !ZM_USER
DBG-2:2021-04-07,09:43:44 PARENT: Got secret token !ZM_PASSWORD
DBG-3:2021-04-07,09:43:44 PARENT: config string substitution: {{base_data_path}} is '/var/lib/zmeventnotification'

Configuration (read /etc/zm/zmeventnotification.ini):

Secrets file.......................... /etc/zm/secrets.ini
Base data path........................ /var/lib/zmeventnotification
Restart interval (secs)............... 0

Use admin interface .................. no
Admin interface password.............. (undefined)
Admin interface persistence file ..... /var/lib/zmeventnotification/misc/escontrol_interface.dat

Port ................................. 9000
Address .............................. [::]
Event check interval ................. 5
Monitor reload interval .............. 300
Skipped monitors...................... (undefined)

Auth enabled ......................... yes
Auth timeout ......................... 20

Use API Push.......................... no
API Push Script....................... (undefined)

Use FCM .............................. yes
Use FCM V1 APIs....................... yes
FCM Date Format....................... %I:%M %p, %d-%b
Only show latest FCMv1 message........ no
Android FCM push priority............. high
Android FCM push ttl.................. (undefined)

Token file ........................... /var/lib/zmeventnotification/push/tokens.txt

Use MQTT ............................. no
MQTT Server .......................... 127.0.0.1
MQTT Topic ........................... zoneminder
MQTT Username ........................ (undefined)
MQTT Password ........................ (undefined)
MQTT Retain .......................... no
MQTT Tick Interval ................... 15
MQTT TLS CA ........................ (undefined)
MQTT TLS Cert ........................ (undefined)
MQTT TLS Key ........................ (undefined)
MQTT TLS Insecure ........................ no

SSL enabled .......................... yes
SSL cert file ........................ /etc/zm/zoneminder.crt
SSL key file ......................... /etc/zm/zoneminder.key

Verbose .............................. yes
ES Debug level.........................4
Read alarm cause ..................... yes
Tag alarm event id ................... yes
Use custom notification sound ........ no
Send event start notification..........yes
Send event end notification............yes
Monitor rules JSON file................(undefined)

Use Hooks............................. yes
Hook Script on Event Start ........... '/var/lib/zmeventnotification/bin/zm_event_start.sh'
User Script on Event Start.............(undefined)
Hook Script on Event End.............. (undefined)
User Script on Event End.............(undefined)
Hook Skipped monitors................. (undefined)

Notify on Event Start (hook success).. all
Notify on Event Start (hook fail)..... none
Notify on Event End (hook success).... fcm,web,api
Notify on Event End (hook fail)....... none
Notify End only if Start success...... yes

Use Hook Description.................. yes
Keep frame match type................. yes
Store Frame in ZM......................yes

Picture URL .......................... http://192.168.1.191/zm/index.php?view=frame&eid=EVENTID&fid=objdetect&width=600
Include picture....................... yes
Picture username ..................... gargle
Picture password ..................... (defined)

INF:2021-04-07,09:43:44 PARENT: Push enabled via FCM
04/07/2021 09:43:44.900809 zmeventnotification[3078].INF [main:1010] [PARENT: Push enabled via FCM]
DBG-4:2021-04-07,09:43:44 PARENT: fcmv1: --> FCM V1 APIs: 1
INF:2021-04-07,09:43:44 PARENT: MQTT Disabled
04/07/2021 09:43:44.905078 zmeventnotification[3078].INF [main:1010] [PARENT: MQTT Disabled]
INF:2021-04-07,09:43:44 PARENT: |------- Starting ES version: 6.1.19 ---------|
04/07/2021 09:43:44.909143 zmeventnotification[3078].INF [main:1010] [PARENT: |------- Starting ES version: 6.1.19 ---------|]
DBG-1:2021-04-07,09:43:44 PARENT: Started with: perl:/usr/bin/perl and command:/usr/bin/zmeventnotification.pl
Can't ignore signal CHLD, forcing to default.
DBG-1:2021-04-07,09:43:45 PARENT: ES invoked manually. Will handle restarts ourselves
DBG-2:2021-04-07,09:43:45 PARENT: Parent<--Child pipe ready
INF:2021-04-07,09:43:45 PARENT: Event Notification daemon v 6.1.19 starting

04/07/2021 09:43:45.119234 zmeventnotification[3078].INF [main:1010] [PARENT: Event Notification daemon v 6.1.19 starting]
DBG-1:2021-04-07,09:43:45 PARENT: Initializing FCM tokens...
DBG-1:2021-04-07,09:43:45 PARENT: Total event client connections: 0

INF:2021-04-07,09:43:45 PARENT: Re-loading monitors
04/07/2021 09:43:45.127142 zmeventnotification[3078].INF [main:1010] [PARENT: Re-loading monitors]
DBG-1:2021-04-07,09:43:45 PARENT: Loading Garage
DBG-1:2021-04-07,09:43:45 PARENT: Loading Right Yard
DBG-1:2021-04-07,09:43:45 PARENT: Loading Front Right House
DBG-1:2021-04-07,09:43:45 PARENT: Loading Front Door
DBG-1:2021-04-07,09:43:45 PARENT: Loading Living Room
DBG-1:2021-04-07,09:43:45 PARENT: Loading Kitchen
DBG-1:2021-04-07,09:43:45 PARENT: ESCONTROL_INTERFACE is disabled. Not saving control data
DBG-2:2021-04-07,09:43:45 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:43:45 PARENT: About to start listening to socket
INF:2021-04-07,09:43:45 PARENT: Secure WS(WSS) is enabled...
04/07/2021 09:43:45.143761 zmeventnotification[3078].INF [main:1010] [PARENT: Secure WS(WSS) is enabled...]
INF:2021-04-07,09:43:45 PARENT: Web Socket Event Server listening on port 9000
04/07/2021 09:43:45.147073 zmeventnotification[3078].INF [main:1010] [PARENT: Web Socket Event Server listening on port 9000]
DBG-2:2021-04-07,09:43:50 PARENT: ----------> Tick START (active forks:0, total forks:0, running for:1 min)<--------------
DBG-2:2021-04-07,09:43:50 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:43:50 PARENT: There are 0 active child forks...
INF:2021-04-07,09:43:50 PARENT: New event 32619 reported for Monitor:4 (Name:Front Right House) Motion All[last processed eid:]
04/07/2021 09:43:50.157696 zmeventnotification[3078].INF [main:1010] [PARENT: New event 32619 reported for Monitor:4 (Name:Front Right House) Motion All[last processed eid:]]
DBG-2:2021-04-07,09:43:50 PARENT: checkEvents() new events found=1
DBG-2:2021-04-07,09:43:50 PARENT: There are 1 new Events to process
DBG-2:2021-04-07,09:43:50 PARENT: ---------->Tick END (active forks:1, total forks:1)<--------------
DBG-1:2021-04-07,09:43:50 PARENT: Forked process:3082 to handle alarm eid:32619
DBG-2:2021-04-07,09:43:50 |----> FORK:Front Right House (4), eid:32619 Adding event path:/home/zoneminder/truenas-chen/zoneminder/4/2021-04-07/32619 to hook for image storage
DBG-1:2021-04-07,09:43:50 |----> FORK:Front Right House (4), eid:32619 Invoking hook on event start:'/var/lib/zmeventnotification/bin/zm_event_start.sh' 32619 4 "Front Right House" "Motion All" "/home/zoneminder/truenas-chen/zoneminder/4/2021-04-07/32619"
DBG-2:2021-04-07,09:43:55 PARENT: ----------> Tick START (active forks:1, total forks:1, running for:1 min)<--------------
DBG-2:2021-04-07,09:43:55 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:43:55 PARENT: There are 1 active child forks...
DBG-2:2021-04-07,09:43:55 PARENT: We've already worked on Monitor:4, Event:32619, not doing anything more
DBG-2:2021-04-07,09:43:55 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:43:55 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:43:55 PARENT: ---------->Tick END (active forks:1, total forks:1)<--------------
DBG-2:2021-04-07,09:44:00 PARENT: ----------> Tick START (active forks:1, total forks:1, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:00 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:00 PARENT: There are 1 active child forks...
DBG-2:2021-04-07,09:44:00 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:00 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:00 PARENT: ---------->Tick END (active forks:1, total forks:1)<--------------
DBG-2:2021-04-07,09:44:05 PARENT: ----------> Tick START (active forks:1, total forks:1, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:05 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:05 PARENT: There are 1 active child forks...
DBG-2:2021-04-07,09:44:05 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:05 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:05 PARENT: ---------->Tick END (active forks:1, total forks:1)<--------------
DBG-2:2021-04-07,09:44:08 |----> FORK:Front Right House (4), eid:32619 parse of hook: and []
DBG-1:2021-04-07,09:44:08 |----> FORK:Front Right House (4), eid:32619 hook start returned with text: json:[] exit:1
DBG-3:2021-04-07,09:44:08 |----> FORK:Front Right House (4), eid:32619 For 4 (Front Right House), SHM says: state=0, eid=32619
INF:2021-04-07,09:44:08 |----> FORK:Front Right House (4), eid:32619 Event 32619 for Monitor 4 has finished
04/07/2021 09:44:08.381604 zmeventnotification[3082].INF [main:1010] [|----> FORK:Front Right House (4), eid:32619 Event 32619 for Monitor 4 has finished]
DBG-3:2021-04-07,09:44:08 |----> FORK:Front Right House (4), eid:32619 Event end object is: state=>pending with cause=>Motion: All
DBG-2:2021-04-07,09:44:10 PARENT: ----------> Tick START (active forks:1, total forks:1, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:10 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:10 PARENT: There are 1 active child forks...
DBG-2:2021-04-07,09:44:10 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:10 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:10 PARENT: ---------->Tick END (active forks:1, total forks:1)<--------------
DBG-2:2021-04-07,09:44:10 |----> FORK:Front Right House (4), eid:32619 rules: Checking rules for alarm caused by eid:32619, monitor:4, at: Wed Apr  7 09:44:10 2021 with cause:Motion All
DBG-1:2021-04-07,09:44:10 |----> FORK:Front Right House (4), eid:32619 rules: No rules found for Monitor, allowing:4
DBG-1:2021-04-07,09:44:10 |----> FORK:Front Right House (4), eid:32619 Matching alarm to connection rules...
INF:2021-04-07,09:44:12 |----> FORK:Front Right House (4), eid:32619 end hooks/use hooks not being used, going to directly send out a notification if checks pass
04/07/2021 09:44:12.390261 zmeventnotification[3082].INF [main:1010] [|----> FORK:Front Right House (4), eid:32619 end hooks/use hooks not being used, going to directly send out a notification if checks pass]
DBG-2:2021-04-07,09:44:14 |----> FORK:Front Right House (4), eid:32619 rules: Checking rules for alarm caused by eid:32619, monitor:4, at: Wed Apr  7 09:44:14 2021 with cause:Motion All
DBG-1:2021-04-07,09:44:14 |----> FORK:Front Right House (4), eid:32619 rules: No rules found for Monitor, allowing:4
INF:2021-04-07,09:44:14 |----> FORK:Front Right House (4), eid:32619 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed
04/07/2021 09:44:14.396049 zmeventnotification[3082].INF [main:1010] [|----> FORK:Front Right House (4), eid:32619 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed]
DBG-2:2021-04-07,09:44:15 PARENT: ----------> Tick START (active forks:1, total forks:1, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:15 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:15 PARENT: There are 1 active child forks...
DBG-2:2021-04-07,09:44:15 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:15 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:15 PARENT: ---------->Tick END (active forks:1, total forks:1)<--------------
DBG-1:2021-04-07,09:44:18 |----> FORK:Front Right House (4), eid:32619 exiting
DBG-1:2021-04-07,09:44:18 |----> FORK:Front Right House (4), eid:32619 Ending process:3082 to handle alarms
DBG-2:2021-04-07,09:44:20 PARENT: ----------> Tick START (active forks:1, total forks:1, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:20 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:20 PARENT: RAW TEXT-->active_event_delete--TYPE--4--SPLIT--32619
DBG-2:2021-04-07,09:44:20 PARENT: Job: Deleting active_event eid:32619, mid:4
DBG-2:2021-04-07,09:44:20 PARENT: There are 0 active child forks...
INF:2021-04-07,09:44:20 PARENT: New event 32620 reported for Monitor:5 (Name:Front Door) Motion Walk up[last processed eid:]
04/07/2021 09:44:20.154618 zmeventnotification[3078].INF [main:1010] [PARENT: New event 32620 reported for Monitor:5 (Name:Front Door) Motion Walk up[last processed eid:]]
DBG-2:2021-04-07,09:44:20 PARENT: checkEvents() new events found=1
DBG-2:2021-04-07,09:44:20 PARENT: There are 1 new Events to process
DBG-1:2021-04-07,09:44:20 PARENT: Forked process:3100 to handle alarm eid:32620
DBG-2:2021-04-07,09:44:20 PARENT: ---------->Tick END (active forks:1, total forks:2)<--------------
DBG-2:2021-04-07,09:44:20 |----> FORK:Front Door (5), eid:32620 Adding event path:/home/zoneminder/truenas-chen/zoneminder/5/2021-04-07/32620 to hook for image storage
DBG-1:2021-04-07,09:44:20 |----> FORK:Front Door (5), eid:32620 Invoking hook on event start:'/var/lib/zmeventnotification/bin/zm_event_start.sh' 32620 5 "Front Door" "Motion Walk up" "/home/zoneminder/truenas-chen/zoneminder/5/2021-04-07/32620"
DBG-2:2021-04-07,09:44:25 PARENT: ----------> Tick START (active forks:1, total forks:2, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:25 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:25 PARENT: There are 1 active child forks...
INF:2021-04-07,09:44:25 PARENT: New event 32621 reported for Monitor:2 (Name:Garage) Motion All[last processed eid:]
04/07/2021 09:44:25.154641 zmeventnotification[3078].INF [main:1010] [PARENT: New event 32621 reported for Monitor:2 (Name:Garage) Motion All[last processed eid:]]
DBG-2:2021-04-07,09:44:25 PARENT: checkEvents() new events found=1
DBG-2:2021-04-07,09:44:25 PARENT: There are 1 new Events to process
DBG-2:2021-04-07,09:44:25 PARENT: ---------->Tick END (active forks:2, total forks:3)<--------------
DBG-1:2021-04-07,09:44:25 PARENT: Forked process:3116 to handle alarm eid:32621
DBG-2:2021-04-07,09:44:25 |----> FORK:Garage (2), eid:32621 Adding event path:/home/zoneminder/truenas-chen/zoneminder/2/2021-04-07/32621 to hook for image storage
DBG-1:2021-04-07,09:44:25 |----> FORK:Garage (2), eid:32621 Invoking hook on event start:'/var/lib/zmeventnotification/bin/zm_event_start.sh' 32621 2 "Garage" "Motion All" "/home/zoneminder/truenas-chen/zoneminder/2/2021-04-07/32621"
DBG-2:2021-04-07,09:44:30 PARENT: ----------> Tick START (active forks:2, total forks:3, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:30 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:30 PARENT: There are 2 active child forks...
DBG-2:2021-04-07,09:44:30 PARENT: We've already worked on Monitor:2, Event:32621, not doing anything more
DBG-2:2021-04-07,09:44:30 PARENT: Closing unclosed event:32620 of Monitor:5 as we are in a new event
INF:2021-04-07,09:44:30 PARENT: New event 32622 reported for Monitor:5 (Name:Front Door) Motion Walk up[last processed eid:32620]
04/07/2021 09:44:30.158637 zmeventnotification[3078].INF [main:1010] [PARENT: New event 32622 reported for Monitor:5 (Name:Front Door) Motion Walk up[last processed eid:32620]]
DBG-2:2021-04-07,09:44:30 PARENT: checkEvents() new events found=1
DBG-2:2021-04-07,09:44:30 PARENT: There are 1 new Events to process
DBG-2:2021-04-07,09:44:30 PARENT: ---------->Tick END (active forks:3, total forks:4)<--------------
DBG-1:2021-04-07,09:44:30 PARENT: Forked process:3133 to handle alarm eid:32622
DBG-2:2021-04-07,09:44:30 |----> FORK:Front Door (5), eid:32622 Adding event path:/home/zoneminder/truenas-chen/zoneminder/5/2021-04-07/32622 to hook for image storage
DBG-1:2021-04-07,09:44:30 |----> FORK:Front Door (5), eid:32622 Invoking hook on event start:'/var/lib/zmeventnotification/bin/zm_event_start.sh' 32622 5 "Front Door" "Motion Walk up" "/home/zoneminder/truenas-chen/zoneminder/5/2021-04-07/32622"
DBG-2:2021-04-07,09:44:35 PARENT: ----------> Tick START (active forks:3, total forks:4, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:35 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:35 PARENT: There are 3 active child forks...
DBG-2:2021-04-07,09:44:35 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:35 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:35 PARENT: ---------->Tick END (active forks:3, total forks:4)<--------------
DBG-2:2021-04-07,09:44:38 |----> FORK:Front Door (5), eid:32620 parse of hook: and []
DBG-1:2021-04-07,09:44:38 |----> FORK:Front Door (5), eid:32620 hook start returned with text: json:[] exit:1
DBG-3:2021-04-07,09:44:38 |----> FORK:Front Door (5), eid:32620 For 5 (Front Door), SHM says: state=0, eid=32622
INF:2021-04-07,09:44:38 |----> FORK:Front Door (5), eid:32620 Event 32620 for Monitor 5 has finished
04/07/2021 09:44:38.298411 zmeventnotification[3100].INF [main:1010] [|----> FORK:Front Door (5), eid:32620 Event 32620 for Monitor 5 has finished]
DBG-3:2021-04-07,09:44:38 |----> FORK:Front Door (5), eid:32620 Event end object is: state=>pending with cause=>Motion: Walk up
DBG-2:2021-04-07,09:44:40 PARENT: ----------> Tick START (active forks:3, total forks:4, running for:1 min)<--------------
DBG-2:2021-04-07,09:44:40 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:40 PARENT: There are 3 active child forks...
DBG-2:2021-04-07,09:44:40 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:40 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:40 PARENT: ---------->Tick END (active forks:3, total forks:4)<--------------
DBG-2:2021-04-07,09:44:40 |----> FORK:Front Door (5), eid:32620 rules: Checking rules for alarm caused by eid:32620, monitor:5, at: Wed Apr  7 09:44:40 2021 with cause:Motion Walk up
DBG-1:2021-04-07,09:44:40 |----> FORK:Front Door (5), eid:32620 rules: No rules found for Monitor, allowing:5
DBG-1:2021-04-07,09:44:40 |----> FORK:Front Door (5), eid:32620 Matching alarm to connection rules...
INF:2021-04-07,09:44:42 |----> FORK:Front Door (5), eid:32620 end hooks/use hooks not being used, going to directly send out a notification if checks pass
04/07/2021 09:44:42.306152 zmeventnotification[3100].INF [main:1010] [|----> FORK:Front Door (5), eid:32620 end hooks/use hooks not being used, going to directly send out a notification if checks pass]
DBG-2:2021-04-07,09:44:43 |----> FORK:Garage (2), eid:32621 parse of hook: and []
DBG-1:2021-04-07,09:44:43 |----> FORK:Garage (2), eid:32621 hook start returned with text: json:[] exit:1
DBG-3:2021-04-07,09:44:43 |----> FORK:Garage (2), eid:32621 For 2 (Garage), SHM says: state=0, eid=32621
INF:2021-04-07,09:44:43 |----> FORK:Garage (2), eid:32621 Event 32621 for Monitor 2 has finished
04/07/2021 09:44:43.323781 zmeventnotification[3116].INF [main:1010] [|----> FORK:Garage (2), eid:32621 Event 32621 for Monitor 2 has finished]
DBG-3:2021-04-07,09:44:43 |----> FORK:Garage (2), eid:32621 Event end object is: state=>pending with cause=>Motion: All
DBG-2:2021-04-07,09:44:44 |----> FORK:Front Door (5), eid:32620 rules: Checking rules for alarm caused by eid:32620, monitor:5, at: Wed Apr  7 09:44:44 2021 with cause:Motion Walk up
DBG-1:2021-04-07,09:44:44 |----> FORK:Front Door (5), eid:32620 rules: No rules found for Monitor, allowing:5
INF:2021-04-07,09:44:44 |----> FORK:Front Door (5), eid:32620 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed
04/07/2021 09:44:44.324351 zmeventnotification[3100].INF [main:1010] [|----> FORK:Front Door (5), eid:32620 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed]
DBG-2:2021-04-07,09:44:45 PARENT: ----------> Tick START (active forks:3, total forks:4, running for:2 min)<--------------
DBG-2:2021-04-07,09:44:45 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:45 PARENT: There are 3 active child forks...
DBG-2:2021-04-07,09:44:45 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:45 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:45 PARENT: ---------->Tick END (active forks:3, total forks:4)<--------------
DBG-2:2021-04-07,09:44:45 |----> FORK:Garage (2), eid:32621 rules: Checking rules for alarm caused by eid:32621, monitor:2, at: Wed Apr  7 09:44:45 2021 with cause:Motion All
DBG-1:2021-04-07,09:44:45 |----> FORK:Garage (2), eid:32621 rules: No rules found for Monitor, allowing:2
DBG-1:2021-04-07,09:44:45 |----> FORK:Garage (2), eid:32621 Matching alarm to connection rules...
INF:2021-04-07,09:44:47 |----> FORK:Garage (2), eid:32621 end hooks/use hooks not being used, going to directly send out a notification if checks pass
04/07/2021 09:44:47.331013 zmeventnotification[3116].INF [main:1010] [|----> FORK:Garage (2), eid:32621 end hooks/use hooks not being used, going to directly send out a notification if checks pass]
DBG-2:2021-04-07,09:44:48 |----> FORK:Front Door (5), eid:32622 parse of hook: and []
DBG-1:2021-04-07,09:44:48 |----> FORK:Front Door (5), eid:32622 hook start returned with text: json:[] exit:1
DBG-3:2021-04-07,09:44:48 |----> FORK:Front Door (5), eid:32622 For 5 (Front Door), SHM says: state=0, eid=32622
INF:2021-04-07,09:44:48 |----> FORK:Front Door (5), eid:32622 Event 32622 for Monitor 5 has finished
04/07/2021 09:44:48.311909 zmeventnotification[3133].INF [main:1010] [|----> FORK:Front Door (5), eid:32622 Event 32622 for Monitor 5 has finished]
DBG-3:2021-04-07,09:44:48 |----> FORK:Front Door (5), eid:32622 Event end object is: state=>pending with cause=>Motion: Walk up
DBG-1:2021-04-07,09:44:48 |----> FORK:Front Door (5), eid:32620 exiting
DBG-1:2021-04-07,09:44:48 |----> FORK:Front Door (5), eid:32620 Ending process:3100 to handle alarms
DBG-2:2021-04-07,09:44:49 |----> FORK:Garage (2), eid:32621 rules: Checking rules for alarm caused by eid:32621, monitor:2, at: Wed Apr  7 09:44:49 2021 with cause:Motion All
DBG-1:2021-04-07,09:44:49 |----> FORK:Garage (2), eid:32621 rules: No rules found for Monitor, allowing:2
INF:2021-04-07,09:44:49 |----> FORK:Garage (2), eid:32621 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed
04/07/2021 09:44:49.335864 zmeventnotification[3116].INF [main:1010] [|----> FORK:Garage (2), eid:32621 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed]
DBG-2:2021-04-07,09:44:50 PARENT: ----------> Tick START (active forks:3, total forks:4, running for:2 min)<--------------
DBG-2:2021-04-07,09:44:50 PARENT: After tick: TOTAL: 0,  ES_CONTROL: 0, FCM+WEB: 0, FCM: 0, WEB: 0, MQTT:0, invalid WEB: 0, PENDING: 0
DBG-2:2021-04-07,09:44:50 PARENT: RAW TEXT-->active_event_delete--TYPE--5--SPLIT--32620
DBG-2:2021-04-07,09:44:50 PARENT: Job: Deleting active_event eid:32620, mid:5
DBG-2:2021-04-07,09:44:50 PARENT: There are 2 active child forks...
DBG-2:2021-04-07,09:44:50 PARENT: checkEvents() new events found=0
DBG-2:2021-04-07,09:44:50 PARENT: There are 0 new Events to process
DBG-2:2021-04-07,09:44:50 PARENT: ---------->Tick END (active forks:2, total forks:4)<--------------
DBG-2:2021-04-07,09:44:50 |----> FORK:Front Door (5), eid:32622 rules: Checking rules for alarm caused by eid:32622, monitor:5, at: Wed Apr  7 09:44:50 2021 with cause:Motion Walk up
DBG-1:2021-04-07,09:44:50 |----> FORK:Front Door (5), eid:32622 rules: No rules found for Monitor, allowing:5
DBG-1:2021-04-07,09:44:50 |----> FORK:Front Door (5), eid:32622 Matching alarm to connection rules...
DBG-4:2021-04-07,09:44:51 |----> FORK:Front Door (5), eid:32622 Received request to shutdown, please wait
DBG-4:2021-04-07,09:44:51 |----> FORK:Garage (2), eid:32621 Received request to shutdown, please wait
DBG-1:2021-04-07,09:44:51 |----> FORK:Garage (2), eid:32621 exiting
DBG-1:2021-04-07,09:44:51 |----> FORK:Garage (2), eid:32621 Ending process:3116 to handle alarms
INF:2021-04-07,09:44:51 |----> FORK:Front Door (5), eid:32622 end hooks/use hooks not being used, going to directly send out a notification if checks pass
04/07/2021 09:44:51.440935 zmeventnotification[3133].INF [main:1010] [|----> FORK:Front Door (5), eid:32622 end hooks/use hooks not being used, going to directly send out a notification if checks pass]
DBG-4:2021-04-07,09:44:51 PARENT: Received request to shutdown, please wait
DBG-2:2021-04-07,09:44:53 |----> FORK:Front Door (5), eid:32622 rules: Checking rules for alarm caused by eid:32622, monitor:5, at: Wed Apr  7 09:44:53 2021 with cause:Motion Walk up
DBG-1:2021-04-07,09:44:53 |----> FORK:Front Door (5), eid:32622 rules: No rules found for Monitor, allowing:5
INF:2021-04-07,09:44:53 |----> FORK:Front Door (5), eid:32622 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed
04/07/2021 09:44:53.446816 zmeventnotification[3133].INF [main:1010] [|----> FORK:Front Door (5), eid:32622 Not sending event end alarm, as we did not send a start alarm for this, or start hook processing failed]
INF:2021-04-07,09:44:55 PARENT: Event Server Terminating
04/07/2021 09:44:55.152343 zmeventnotification[3078].INF [main:1010] [PARENT: Event Server Terminating]

/etc/zm/objectconfig.ini

# Configuration file for object detection

# NOTE: ALL parameters here can be overriden
# on a per monitor basis if you want. Just
# duplicate it inside the correct [monitor-<num>] section

# You can create your own custom attributes in the [custom] section

[general]

# Please don't change this. It is used by the config upgrade script
version=1.2

# You can now limit the # of detection process
# per target processor. If not specified, default is 1
# Other detection processes will wait to acquire lock

cpu_max_processes=3
tpu_max_processes=1
gpu_max_processes=1

# Time to wait in seconds per processor to be free, before
# erroring out. Default is 120 (2 mins)
cpu_max_lock_wait=100
tpu_max_lock_wait=100
gpu_max_lock_wait=100

#pyzm_overrides={'conf_path':'/etc/zm','log_level_debug':0}
pyzm_overrides={'log_level_debug':5}

# This is an optional file
# If specified, you can specify tokens with secret values in that file
# and onlt refer to the tokens in your main config file
secrets = /etc/zm/secrets.ini

# portal/user/password are needed if you plan on using ZM's legacy
# auth mechanism to get images
portal=http://192.168.1.191
user=redacted
password=redacted

# api portal is needed if you plan to use tokens to get images
# requires ZM 1.33 or above
api_portal=http://192.168.1.191/zm/api

allow_self_signed=yes
# if yes, last detection will be stored for monitors
# and bounding boxes that match, along with labels
# will be discarded for new detections. This may be helpful
# in getting rid of static objects that get detected
# due to some motion.
match_past_detections=no
# The max difference in area between the objects if match_past_detection is on
# can also be specified in px like 300px. Default is 5%. Basically, bounding boxes of the same
# object can slightly differ ever so slightly between detection. Contributor @neillbell put in this PR
# to calculate the difference in areas and based on his tests, 5% worked well. YMMV. Change it if needed.
# Note: You can specify label/object specific max_diff_areas as well. If present, they override this value
# example:
# person_past_det_max_diff_area=5%
# car_past_det_max_diff_area=5000px
past_det_max_diff_area=5%

# this is the maximum size a detected object can have. You can specify it in px or % just like past_det_max_diff_area
# This is pretty useful to eliminate bogus detection. In my case, depending on shadows and other lighting conditions,
# I sometimes see "car" or "person" detected that covers most of my driveway view. That is practically impossible
# and therefore I set mine to 70% because I know any valid detected objected cannot be larger than that area

max_detection_size=90%

# sequence of models to run for detection
detection_sequence=object,face,alpr
# if all, then we will loop through all models
# if first then the first success will break out
detection_mode=all

# If you need basic auth to access ZM
#basic_user=redacted
#basic_password=redacted

# base data path for various files the ES+OD needs
# we support in config variable substitution as well
base_data_path=/var/lib/zmeventnotification

# global settings for
# bestmatch, alarm, snapshot OR a specific frame ID
frame_id=bestmatch

# this is the to resize the image before analysis is done
resize=800
# set to yes, if you want to remove images after analysis
# setting to yes is recommended to avoid filling up space
# keep to no while debugging/inspecting masks
# Note this does NOT delete debug images later
delete_after_analyze=yes

# If yes, will write an image called <filename>-bbox.jpg as well
# which contains the bounding boxes. This has NO relation to
# write_image_to_zm
# Typically, if you enable delete_after_analyze you may
# also want to set  write_debug_image to no.
write_debug_image=no

# if yes, will write an image with bounding boxes
# this needs to be yes to be able to write a bounding box
# image to ZoneMinder that is visible from its console
write_image_to_zm=yes

# Adds percentage to detections
# hog/face shows 100% always
show_percent=yes

# color to be used to draw the polygons you specified
poly_color=(255,255,255)
poly_thickness=2
#import_zm_zones=yes
only_triggered_zm_zones=no

# This section gives you an option to get brief animations
# of the event, delivered as part of the push notification to mobile devices
# Animations are created only if an object is detected
#
# NOTE: This will DELAY the time taken to send you push notifications
# It will try to first creat the animation, which may take upto a minute
# depending on how soon it gets access to frames. See notes below

[animation]

# If yes, object detection will attempt to create
# a short GIF file around the object detection frame
# that can be sent via push notifications for instant playback
# Note this required additional software support. Default:no
create_animation=no

# Format of animation burst
# valid options are "mp4", "gif", "mp4,gif"
# Note that gifs will be of a shorter duration
# as they take up much more disk space than mp4
animation_types='mp4,gif'

# default width of animation image. Be cautious when you increase this
# most mobile platforms give a very brief amount of time (in seconds)
# to download the image.
# Given your ZM instance will be serving the image, it will anyway be slow
# Making the total animation size bigger resulted in the notification not
# getting an image at all (timed out)
animation_width=640

# When an event is detected, ZM it writes frames a little late
# On top of that, it looks like with caching enabled, the API layer doesn't
# get access to DB records for much longer (around 30 seconds), at least on my
# system. animation_retry_sleep refers to how long to wait before trying to grab
# frame information if it failed. animation_max_tries defines how many times it
# will try and retrieve frames before it gives up
animation_retry_sleep=15
animation_max_tries=4

# if animation_types is gif then when can generate a fast preview gif
# every second frame is skipped and the frame rate doubled
# to give quick preview, Default (no)
fast_gif=no

[remote]
# You can now run the machine learning code on a different server
# This frees up your ZM server for other things
# To do this, you need to setup https://github.com/pliablepixels/mlapi
# on your desired server and confiure it with a user. See its instructions
# once set up, you can choose to do object/face recognition via that
# external serer

# URL that will be used
#ml_gateway=http://192.168.1.183:5000/api/v1
#ml_gateway=http://10.6.1.13:5000/api/v1
#ml_gateway=http://192.168.1.21:5000/api/v1
#ml_gateway=http://10.9.0.2:5000/api/v1
#ml_fallback_local=yes
# API/password for remote gateway
ml_user=!ML_USER
ml_password=!ML_PASSWORD

# config for object
[object]

# If you are using legacy format (use_sequence=no) then these parameters will
# be used during ML inferencing
object_detection_pattern=(person|car|motorbike|bus|truck|boat)
object_min_confidence=0.3
object_framework=coral_edgetpu
object_processor=tpu
object_weights={{base_data_path}}/models/coral_edgetpu/ssd_mobilenet_v2_coco_quant_postprocess_edgetpu.tflite
object_labels={{base_data_path}}/models/coral_edgetpu/coco_indexed.names

# If you are using the new ml_sequence format (use_sequence=yes) then
# you can fiddle with these parameters and look at ml_sequence later
# Note that these can be named anything. You can add custom variables, ad-infinitum

# Google Coral
# The mobiledet model came out in Nov 2020 and is supposed to be faster and more accurate but YMMV
tpu_object_weights_mobiledet={{base_data_path}}/models/coral_edgetpu/ssdlite_mobiledet_coco_qat_postprocess_edgetpu.tflite
tpu_object_weights_mobilenet={{base_data_path}}/models/coral_edgetpu/ssd_mobilenet_v2_coco_quant_postprocess_edgetpu.tflite
tpu_object_labels={{base_data_path}}/models/coral_edgetpu/coco_indexed.names
tpu_object_framework=coral_edgetpu
tpu_object_processor=tpu
tpu_min_confidence=0.6

# Yolo v4 on GPU (falls back to CPU if no GPU)
yolo4_object_weights={{base_data_path}}/models/yolov4/yolov4.weights
yolo4_object_labels={{base_data_path}}/models/yolov4/coco.names
yolo4_object_config={{base_data_path}}/models/yolov4/yolov4.cfg
yolo4_object_framework=opencv
yolo4_object_processor=gpu

# Yolo v3 on GPU (falls back to CPU if no GPU)
yolo3_object_weights={{base_data_path}}/models/yolov3/yolov3.weights
yolo3_object_labels={{base_data_path}}/models/yolov3/coco.names
yolo3_object_config={{base_data_path}}/models/yolov3/yolov3.cfg
yolo3_object_framework=opencv
yolo3_object_processor=gpu

# Tiny Yolo V4 on GPU (falls back to CPU if no GPU)
tinyyolo_object_config={{base_data_path}}/models/tinyyolov4/yolov4-tiny.cfg
tinyyolo_object_weights={{base_data_path}}/models/tinyyolov4/yolov4-tiny.weights
tinyyolo_object_labels={{base_data_path}}/models/tinyyolov4/coco.names
tinyyolo_object_framework=opencv
tinyyolo_object_processor=gpu

[face]
face_detection_pattern=.*
known_images_path={{base_data_path}}/known_faces
unknown_images_path={{base_data_path}}/unknown_faces
save_unknown_faces=yes
save_unknown_faces_leeway_pixels=100
face_detection_framework=dlib

# read https://github.com/ageitgey/face_recognition/wiki/Face-Recognition-Accuracy-Problems
# read https://github.com/ageitgey/face_recognition#automatically-find-all-the-faces-in-an-image
# and play around

# quick overview:
# num_jitters is how many times to distort images
# upsample_times is how many times to upsample input images (for small faces, for example)
# model can be hog or cnn. cnn may be more accurate, but I haven't found it to be

face_num_jitters=1
face_model=cnn
face_upsample_times=1

# This is maximum distance of the face under test to the closest matched
# face cluster. The larger this distance, larger the chances of misclassification.
#
face_recog_dist_threshold=0.6
# When we are first training the face recognition model with known faces,
# by default we use hog because we assume you will supply well lit, front facing faces
# However, if you are planning to train with profile photos or hard to see faces, you
# may want to change this to cnn. Note that this increases training time, but training only
# happens once, unless you retrain again by removing the training model
face_train_model=cnn
#if a face doesn't match known names, we will detect it as 'unknown face'
# you can change that to something that suits your personality better ;-)
#unknown_face_name=invader

[alpr]
alpr_detection_pattern=.*
alpr_use_after_detection_only=yes
# Many of the ALPR providers offer both a cloud version
# and local SDK version. Sometimes local SDK format differs from
# the cloud instance. Set this to local or cloud. Default cloud
alpr_api_type=cloud

# -----| If you are using plate recognizer | ------
alpr_service=plate_recognizer
#alpr_service=open_alpr_cmdline

# If you want to host a local SDK https://app.platerecognizer.com/sdk/
#alpr_url=http://192.168.1.21:8080/alpr
# Plate recog replace with your api key
alpr_key=!PLATEREC_ALPR_KEY
# if yes, then it will log usage statistics of the ALPR service
platerec_stats=yes
# If you want to specify regions. See http://docs.platerecognizer.com/#regions-supported
#platerec_regions=['us','cn','kr']
# minimal confidence for actually detecting a plate
platerec_min_dscore=0.1
# minimal confidence for the translated text
platerec_min_score=0.2

# ----| If you are using openALPR |-----
#alpr_service=open_alpr
#alpr_key=!OPENALPR_ALPR_KEY

# For an explanation of params, see http://doc.openalpr.com/api/?api=cloudapi
#openalpr_recognize_vehicle=1
#openalpr_country=us
#openalpr_state=ca
# openalpr returns percents, but we convert to between 0 and 1
#openalpr_min_confidence=0.3

# ----| If you are using openALPR command line |-----

openalpr_cmdline_binary=alpr

# Do an alpr -help to see options, plug them in here
# like say '-j -p ca -c US' etc.
# keep the -j because its JSON

# Note that alpr_pattern is honored
# For the rest, just stuff them in the cmd line options

openalpr_cmdline_params=-j -d
openalpr_cmdline_min_confidence=0.3

## Monitor specific settings

# Examples:
# Let's assume your monitor ID is 999
[monitor-999]
# my driveway
match_past_detections=no
wait=5
object_detection_pattern=(person)

# Advanced example - here we want anything except potted plant
# exclusion in regular expressions is not
# as straightforward as you may think, so
# follow this pattern
# object_detection_pattern = ^(?!object1|object2|objectN)
# the characters in front implement what is
# called a negative look ahead

# object_detection_pattern=^(?!potted plant|pottedplant|bench|broccoli)
#alpr_detection_pattern=^(.*x11)
#delete_after_analyze=no
#detection_pattern=.*
#import_zm_zones=yes

# polygon areas where object detection will be done.
# You can name them anything except the keywords defined in the optional
# params below. You can put as many polygons as you want per [monitor-<mid>]
# (see examples).

my_driveway=306,356 1003,341 1074,683 154,715

# You are now allowed to specify detection pattern per zone
# the format is <polygonname>_zone_detection_pattern=<regexp>
# So if your polygon is called my_driveway, its associated
# detection pattern will be my_driveway_zone_detection_pattern
# If none is specified, the value in object_detection_pattern
# will be used
# This also applies to ZM zones. Let's assume you have
# import_zm_zones=yes and let's suppose you have a zone in ZM
# called Front_Door. In that case, all you need to do is put in a
# front_door_zone_detection_pattern=(person|car) here
#
# NOTE: ZM Zones are converted to lowercase, and spaces are replaced
# with underscores@3

my_driveway_zone_detection_pattern=(person)
some_other_area=0,0 200,300 700,900
# use license plate recognition for my driveway
# see alpr section later for more data needed
resize=no
detection_sequence=object,alpr

[ml]
# When enabled, you can specify complex ML inferencing logic in ml_sequence
# Anything specified in ml_sequence will override any other ml attributes

# Also, when enabled, stream_sequence will override any other frame related
# attributes
use_sequence = yes

# if enabled, will not grab exclusive locks before running inferencing
# locking seems to cause issues on some unique file systems
disable_locks= no

# Chain of frames
# See https://zmeventnotification.readthedocs.io/en/latest/guides/hooks.html#understanding-detection-configuration
# Also see https://pyzm.readthedocs.io/en/latest/source/pyzm.html#pyzm.ml.detect_sequence.DetectSequence.detect_stream
# Very important: Make sure final ending brace is indented
stream_sequence = {
        'frame_strategy': 'most_models',
        'frame_set': 'snapshot,alarm',
        'contig_frames_before_error': 5,
        'max_attempts': 3,
        'sleep_between_attempts': 4,
                'resize':800

    }

# Chain of ML models to use
# See https://zmeventnotification.readthedocs.io/en/latest/guides/hooks.html#understanding-detection-configuration
# Also see https://pyzm.readthedocs.io/en/latest/source/pyzm.html#pyzm.ml.detect_sequence.DetectSequence
# Very important: Make sure final ending brace is indented
ml_sequence= {
                'general': {
                        'model_sequence': 'object,face,alpr',
            'disable_locks': '{{disable_locks}}',
                        'match_past_detections': '{{match_past_detections}}',
                        'past_det_max_diff_area': '5%',
                        'car_past_det_max_diff_area': '10%',
                        #'ignore_past_detection_labels': ['dog', 'cat']

                },
                'object': {
                        'general':{
                                'pattern':'{{object_detection_pattern}}',
                                'same_model_sequence_strategy': 'first' # also 'most', 'most_unique's
                        },
                        'sequence': [{
                                #First run on TPU with higher confidence
                                'name': 'TPU object detection',
                                'enabled': 'no',
                                'object_weights':'{{tpu_object_weights_mobiledet}}',
                                'object_labels': '{{tpu_object_labels}}',
                                'object_min_confidence': {{tpu_min_confidence}},
                                'object_framework':'{{tpu_object_framework}}',
                                'tpu_max_processes': {{tpu_max_processes}},
                                'tpu_max_lock_wait': {{tpu_max_lock_wait}},
                'max_detection_size':'{{max_detection_size}}'

                        },
                        {
                                # YoloV4 on GPU if TPU fails (because sequence strategy is 'first')
                                'name': 'YoloV4 GPU/CPU',
                                'enabled': 'yes', # don't really need to say this explictly
                                'object_config':'{{yolo4_object_config}}',
                                'object_weights':'{{yolo4_object_weights}}',
                                'object_labels': '{{yolo4_object_labels}}',
                                'object_min_confidence': {{object_min_confidence}},
                                'object_framework':'{{yolo4_object_framework}}',
                                'object_processor': '{{yolo4_object_processor}}',
                                'gpu_max_processes': {{gpu_max_processes}},
                                'gpu_max_lock_wait': {{gpu_max_lock_wait}},
                                'cpu_max_processes': {{cpu_max_processes}},
                                'cpu_max_lock_wait': {{cpu_max_lock_wait}},
                'max_detection_size':'{{max_detection_size}}'

                        }]
                },
                'face': {
                        'general':{
                                'pattern': '{{face_detection_pattern}}',
                                'same_model_sequence_strategy': 'union' # combines all outputs of this sequence
                        },
                        'sequence': [
                        {
            'name': 'TPU face detection',
            'enabled': 'no',
            'face_detection_framework': 'tpu',
            'face_weights':'/var/lib/zmeventnotification/models/coral_edgetpu/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite',
            'face_min_confidence': 0.3,

                },
                        {
                                'name': 'DLIB based face recognition',
                                'enabled': 'yes',
                                #'pre_existing_labels': ['face'], # use in combination with TPU face det above
                                'save_unknown_faces':'{{save_unknown_faces}}',
                                'save_unknown_faces_leeway_pixels':{{save_unknown_faces_leeway_pixels}},
                                'face_detection_framework': '{{face_detection_framework}}',
                                'known_images_path': '{{known_images_path}}',
                                'unknown_images_path': '{{unknown_images_path}}',
                                'face_model': '{{face_model}}',
                                'face_train_model': '{{face_train_model}}',
                                'face_recog_dist_threshold': '{{face_recog_dist_threshold}}',
                                'face_num_jitters': '{{face_num_jitters}}',
                                'face_upsample_times':'{{face_upsample_times}}',
                                'gpu_max_processes': {{gpu_max_processes}},
                                'gpu_max_lock_wait': {{gpu_max_lock_wait}},
                                'cpu_max_processes': {{cpu_max_processes}},
                                'cpu_max_lock_wait': {{cpu_max_lock_wait}},
                                'max_size':800
                        }]
                },

                'alpr': {
                        'general':{
                                'same_model_sequence_strategy': 'first',
                                'pre_existing_labels':['car', 'motorbike', 'bus', 'truck', 'boat'],
                                'pattern': '{{alpr_detection_pattern}}'

                        },
                        'sequence': [{
                                'name': 'Platerecognizer cloud',
                                'enabled': 'yes',
                                'alpr_api_type': '{{alpr_api_type}}',
                                'alpr_service': '{{alpr_service}}',
                                'alpr_key': '{{alpr_key}}',
                                'platrec_stats': '{{platerec_stats}}',
                                'platerec_min_dscore': {{platerec_min_dscore}},
                                'platerec_min_score': {{platerec_min_score}},
                                'max_size':1600
                        }]
                }
        }

***/etc/zm/zmeveneventnotification.ini

# your secrets file
[secrets]

# fid can have the following values:
# a particular <frameid>, alarm or snapshot
# starting ZM 1.35, you can also specify
# objdetect_mp4, objdetect_gif or objdetect_image
# this needs create_animation enabled in objectconfig.ini and associated flags
# If you keep it to objdetect, if you created a GIF file in objectconfig, then
# a GIF file will be used else an image. If you opted for MP4 in objectconfig,
# you need to change this to objdetect_mp4

# Note that on Android, mp4/gif does not work. iOS only.
ZMES_PICTURE_URL=http://192.168.1.191/zm/index.php?view=frame&eid=EVENTID&fid=objdetect&width=600

#ZMES_PICTURE_URL=https://portal/zm/index.php?view=image&eid=EVENTID&fid=snapshot&width=600
ZM_USER=redacted
ZM_PASSWORD=redacted
ES_ADMIN_INTERFACE_PASSWORD=your_admin_interface_password

ZM_PORTAL=http://192.168.1.191
ZM_API_PORTAL=http://192.168.1.191/zm/api
ES_CERT_FILE=/etc/zm/zoneminder.crt
ES_KEY_FILE=/etc/zm/zoneminder.key
ML_USER=your_mlapi_user
ML_PASSWORD=your_mlapi_password
PLATEREC_ALPR_KEY=your_plate_recognizer_api_key
OPENALPR_ALPR_KEY=your_openalpr_api_key

ESCONTROL_INTERFACE_PASSWORD=yourescontrolpassword

MQTT_USERNAME=your_mqtt_username
MQTT_PASSWORD=your_mqtt_password

PUSHOVER_APP_TOKEN=your_pushover_app_token
PUSHOVER_USER_KEY=your_pushover_user_key
# Configuration file for zmeventnotification.pl
[general]

secrets = /etc/zm/secrets.ini
base_data_path=/var/lib/zmeventnotification

# The ES now supports a means for a special kind of
# websocket connection which can dynamically control ES
# behaviour
# Default is no
use_escontrol_interface=no

# this is where all escontrol admin overrides
# will be stored.
escontrol_interface_file=/var/lib/zmeventnotification/misc/escontrol_interface.dat

# the password for accepting control interfaces
escontrol_interface_password=!ESCONTROL_INTERFACE_PASSWORD

# If you see the ES getting 'stuck' after several hours
# see https://rt.cpan.org/Public/Bug/Display.html?id=131058
# You can use restart_interval to have it automatically restart
# every  X seconds. (Default is 7200 = 2 hours) Set to 0 to disable this.
# restart_interval = 432000
restart_interval = 0

# list of monitors which ES will ignore
# Note that there is an attribute later that does
# not process hooks for specific monitors. This one is different
# It can be used to completely skip ES processing for the
# monitors defined
# skip_monitors = 2,3,4

[network]
# Port for Websockets connection (default: 9000).
port = 9000

# Address for Websockets server (default: [::]).
# If you are facing connection issues or SSL issues, put in your IP here
# If you want to listen to multiple interfaces try 0.0.0.0

#address = 1.2.3.4

[auth]
# Check username/password against ZoneMinder database (default: yes).
enable = yes

# Authentication timeout, in seconds (default: 20).
timeout = 20

[push]
# This is to enable sending push notifications via any 3rd party service.
# Typically, if you enable this, you might want to turn off fcm
# Note that zmNinja will only receive notifications via FCM, but other 3rd
# party services have their own apps to get notifications
use_api_push = no

# This is the script that will send the notification
# Some sample scripts are provided, write your own
# Each script gets:
# arg1 - event ID
# arg2 - Monitor ID
# arg3 - Monitor Name
# arg4 - alarm cause
# arg5 - Type of event (event_start or event_end)
# arg6 (optional) - image path

api_push_script=/var/lib/zmeventnotification/bin/pushapi_pushover.py

[fcm]
# Use FCM for messaging (default: yes).
enable = yes

# Use the new FCM V1 protocol (recommended)
use_fcmv1 = yes

# if yes, will replace notifications with the latest one
# default: no
replace_push_messages = no

# Custom FCM API key. Uncomment if you are using
# your own API key (most people will not need to uncomment)
# api_key =

# Auth token store location (default: /var/lib/zmeventnotification/push/tokens.txt).
token_file = {{base_data_path}}/push/tokens.txt

# Date format to use when sending notification
# over push (FCM)
# See https://metacpan.org/pod/POSIX::strftime::GNU
# For example, a 24 hr format would be
#date_format = %H:%M, %d-%b

date_format = %I:%M %p, %d-%b

# Set priority for android push. Default is high.
# You can set it to high or normal.
# There is weird foo going on here. If you set it to high,
# and don't interact with push, users report after a while they
# get delayed by Google. I haven't quite figured out what is the precise
# value to put here to make sure it always reaches you. Also make sure
# you read the zmES faq on delayed push
fcm_android_priority = high

# If you see messages not being delivered in doze mode for android
# Even AFTER you disable battery optimization for the app, try making this 0
# otherwise leave it unspecified. The value here is in seconds
# it specifies how long the message will be valid before it is discarded
# Some reports say if you set this to 0, android will try and deliver it immediately
# while others say it won't. YMMV.
# fcm_android_ttl = 0

# Use MQTT for messaging (default: no)
[mqtt]
enable = no
# Allow you to set a custom MQTT topic name
# default: zoneminder
#topic = my topic name

# MQTT server (default: 127.0.0.1)
server = 127.0.0.1

# Authenticate to MQTT server as user
# username = !MQTT_USERNAME

# Password
# password = !MQTT_PASSWORD

# Set retain flag on MQTT messages (default: no)
retain = no

# MQTT over TLS
# Location to MQTT broker CA certificate. Uncomment this line will enable MQTT over TLS.
# tls_ca = /config/certs/ca.pem

# To enable 2-ways TLS, add client certificate and private key
# Location to client certificate and private key
# tls_cert = /config/es-pub.pem
# tls_key = /config/es-key.pem

# To allow insecure TLS (disable peer verifier), (default: no)
# tls_insecure = yes

[ssl]
# Enable SSL (default: yes)
enable = yes

cert = !ES_CERT_FILE
key = !ES_KEY_FILE

#cert = /etc/apache2/ssl/zoneminder.crt
#key = /etc/apache2/ssl/zoneminder.key

# Location to SSL cert (no default).
# cert = /etc/apache2/ssl/yourportal/zoneminder.crt

# Location to SSL key (no default).
# key = /etc/apache2/ssl/yourportal/zoneminder.key

[customize]
# Link to json file that has rules which can be customized
# es_rules=/etc/zm/es_rules.json

# Display messages to console (default: no).
# Note that you can keep this to no and just
# use --debug when running from CLI too
console_logs = no
# debug level for ES messages. Default 4. Note that this is
# not controllable by ZM LOG_DEBUG_LEVEL as in Perl, ZM doesn't
# support debug levels
es_debug_level = 4

# Interval, in seconds, after which we will check for new events (default: 5).
event_check_interval = 5

# Interval, in seconds, to reload known monitors (default: 300).
monitor_reload_interval = 300

# Read monitor alarm cause (Requires ZoneMinder >= 1.31.2, default: no)
# Enabling this to 1 for lower versions of ZM will result in a crash
read_alarm_cause = yes

# Tag event IDs with the alarm (default: no).
tag_alarm_event_id = yes

# Use custom notification sound (default: no).
use_custom_notification_sound = no

# include picture in alarm (default: no).
include_picture = yes

# send event start notifications (default: yes)
# If no, starting notifications will not be sent out
send_event_start_notification = yes

# send event end notifications (default: no)
# Note that if you are using hooks for end notifications, they may change
# the final decision. This needs to be yes if you want end notifications with
# or without hooks
send_event_end_notification = yes

# URL to access the event image
# This URL can be anything you want
# What I've put here is a way to extract an image with the highest score given an eventID (even one that is recording)
# This requires the latest version of index.php which was merged on Oct 9, 2018 and may only work in ZM 1.32+
# https://github.com/ZoneMinder/zoneminder/blob/master/web/index.php
# If you use this URL as I've specified below, keep the EVENTID phrase intact.
# The notification server will replace it with the correct eid of the alarm

# BESTMATCH should be used only if you are using bestmatch for FID in detect_wrapper.sh
# objdetect is ONLY available in ZM 1.33+
# objdetect_mp4 and objdetect_gif is ONLY available
# in ZM 1.35+
picture_url = http://192.168.1.191/zm/index.php?view=frame&eid=EVENTID&fid=objdetect&width=600
picture_portal_username=!ZM_USER
picture_portal_password=!ZM_PASSWORD

# This is a master on/off setting for hooks. If it is set to no
# hooks will not be used no matter what is set in the [hook] section
# This makes it easy for folks not using hooks to just turn this off
# default:no

use_hooks = yes

[hook]

# NOTE: This entire section is only valid if use_hooks is yes above

# Shell script name here to be called every time an alarm is detected
# the script will get passed $1=alarmEventID,  $2=alarmMonitorId
# $3 monitor Name, $4 alarm cause
# script needs to return 0 to send alarm (default: none)
#

# This script is called when an event first starts. If the script returns "0"
# (success), then a notification is sent to channels specified in
# event_start_notify_on_hook_success. If the script returns "1" (fail)
# then a notification is sent to channels specified in
# event_start_notify_on_hook_fail
event_start_hook = '{{base_data_path}}/bin/zm_event_start.sh'

#This script is called after event_start_hook completes. You can do
# your housekeeping work here
#event_start_hook_notify_userscript = '{{base_data_path}}/contrib/example.py'

# This script is called when an event ends. If the script returns "0"
# (success), then a notification is sent to channels specified in
# event_end_notify_on_hook_success. If the script returns "1" (fail)
# then a notification is sent to channels specified in
# event_end_notify_on_hook_fail
# event_end_hook = '{{base_data_path}}/bin/zm_event_end.sh'

#This script is called after event_end_hook completes. You can do
# your housekeeping work here
#event_end_hook_notify_userscript = '{{base_data_path}}/contrib/example.py'

# Possible channels = web,fcm,mqtt,api
# all is short for web,fcm,mqtt,api
# use none for no notifications, or comment out the attribute

# When an event starts and hook returns 0, send notification to all. Default: none
event_start_notify_on_hook_success = all

# When an event starts and hook returns 1, send notification only to desktop. Default: none
event_start_notify_on_hook_fail = none

# When an event ends and hook returns 0, send notification to fcm,web,api. Default: none
event_end_notify_on_hook_success = fcm,web,api

# When an event ends and hook returns 1, don't send notifications. Default: none
event_end_notify_on_hook_fail = none
#event_end_notify_on_hook_fail = web

# Since event_end and event_start are two different hooks, it is entirely possible
# that you can get an end notification but not a start notification. This can happen
# if your start script returns 1 but the end script returns 0, for example. To avoid
# this, set this to yes (default:yes)
event_end_notify_if_start_success = yes

# If yes, the text returned by the script
# overwrites the alarm header
# useful if your script is detecting people, for example
# and you want that to be shown in your notification (default:yes)
use_hook_description = yes

# If yes will will append an [a] for alarmed frame match
# [s] for snapshot match or [x] if not using bestmatch
# really only a debugging feature but useful to know
# where object detection is working or failing
keep_frame_match_type = yes

# list of monitors for which hooks will not run
# hook_skip_monitors = 2

# if enabled, will pass the right folder for the hook script
# to store the detected image, so it shows up in ZM console view too
# Requires ZM >=1.33. Don't enable this if you are running an older version

# Note: you also need to set write_image_to_zm=yes in objectconfig.ini
# default: no
hook_pass_image_path = yes

Thanks!

ihaddy commented 3 years ago

I found the culprit,

the URL used by the python cascade that kept erroring out isn't pulled from zm ZMES_PICTURE_URL in the secret file, it's pulled from ZM_API_PORTAL= which i had set to 192.168.1.191 without the /zm at the end, so changing it to 192.168.1.191/zm fixed it!!!!!