Onvif camera control

Specifically your example to grab a snapshot:

[{"id":"bd25387b.516598","type":"inject","z":"6925873a.fe0858","name":"Get HTTP stream URL","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":215,"y":635,"wires":[["52cd8a88.28cbc4"]]},{"id":"52cd8a88.28cbc4","type":"change","z":"6925873a.fe0858","name":"","rules":[{"t":"set","p":"action","pt":"msg","to":"getStreamUri","tot":"str"},{"t":"set","p":"protocol","pt":"msg","to":"HTTP","tot":"str"},{"t":"set","p":"profileToken","pt":"msg","to":"1_def_profile3","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":544,"y":635,"wires":[["2cc38daa.80b192"]]},{"id":"2cc38daa.80b192","type":"onvif-media","z":"6925873a.fe0858","name":"","deviceConfig":"8de17a72.47e668","profileToken":"","profileName":"media_profile1","videoEncoderConfigToken":"","videoEncoderConfigName":"","videoEncoderConfigEncoding":"","action":"getSnapshot","protocol":"","stream":"","x":765,"y":595,"wires":[["d87139ef.61df88","f0683b93.ecba48"]]},{"id":"29ff0902.c906e6","type":"catch","z":"6925873a.fe0858","name":"","scope":null,"x":755,"y":670,"wires":[["d87139ef.61df88"]]},{"id":"d87139ef.61df88","type":"debug","z":"6925873a.fe0858","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":960,"y":680,"wires":[]},{"id":"f0683b93.ecba48","type":"image","z":"6925873a.fe0858","name":"","width":"1280","x":975,"y":595,"wires":[]},{"id":"8de17a72.47e668","type":"onvif-config","z":"","xaddress":"192.168.2.219","name":""}]

Crashes node-red when I press the Get HTTP Stream URL:

13 Mar 02:06:15 - [info] Started flows
13 Mar 02:06:15 - [info] [mqtt-broker:localhost:1883] Connected to broker: mqtt://localhost:1883
13 Mar 02:06:15 - [info] [mqtt-broker:localhost:1883] Connected to broker: mqtt://localhost:1883
13 Mar 02:06:15 - [info] [mqtt-broker:localhost:1883] Connected to broker: mqtt://localhost:1883
13 Mar 02:06:43 - [red] Uncaught Exception:
13 Mar 02:06:43 - TypeError: Cannot read property '0' of undefined
nodered.service: Main process exited, code=exited, status=1/FAILURE
nodered.service: Unit entered failed state.
nodered.service: Failed with result 'exit-code'.
nodered.service: Service hold-off time over, scheduling restart.
Stopped Node-RED graphical event wiring tool.
Started Node-RED graphical event wiring tool.
13 Mar 02:06:43 - [info]
Welcome to Node-RED
===================
13 Mar 02:06:43 - [info] Node-RED version: v0.19.5
13 Mar 02:06:43 - [info] Node.js  version: v8.15.1
13 Mar 02:06:43 - [info] Linux 4.4.0-142-generic x64 LE
13 Mar 02:06:43 - [info] Loading palette nodes
13 Mar 02:06:44 - [info] Dashboard version 2.14.0 started at /ui
(node:31261) ExperimentalWarning: The fs.promises API is experimental
13 Mar 02:06:44 - [info] Settings file  : /home/wally/.node-red/settings.js
13 Mar 02:06:44 - [info] Context store  : 'default' [module=memory]
13 Mar 02:06:44 - [info] User directory : /home/wally/.node-red
13 Mar 02:06:44 - [warn] Projects disabled : editorTheme.projects.enabled=false
13 Mar 02:06:44 - [info] Flows file     : /home/wally/.node-red/flows_kahuna.json
13 Mar 02:06:44 - [info] Server now running at http://127.0.0.1:1880/
13 Mar 02:06:44 - [warn]
---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.
If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.
You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------
13 Mar 02:06:44 - [info] Starting flows
13 Mar 02:06:44 - [info] Started flows
13 Mar 02:06:44 - [info] [mqtt-broker:localhost:1883] Connected to broker: mqtt://localhost:1883
13 Mar 02:06:44 - [info] [mqtt-broker:localhost:1883] Connected to broker: mqtt://localhost:1883
13 Mar 02:06:44 - [info] [mqtt-broker:localhost:1883] Connected to broker: mqtt://localhost:1883

Nothing appeared to be happening until I noticed a flow in another tab was restarting, then I checked the log. Catch node did nothing.

I had hoped for more clarification of the properties figuring I didn't have the dropdown selections set correctly. Your example flow from the github had two more inject nodes which I didn't cut and paste above, and pressing any of them crashes. I had no further information until I discovered it was crashing instead of nothing happening.

I do hope that eventually you can get the "update" button to appear in Manage Pallet.

If I can get the "Get snapshot image" action to work, this could be the basis for a great front-end to my Python AI code by making the inject node be periodic. Right now I can use node-red as an input source by having the camera/DVR ftp the snapshots to node-red-contrib-ftp-server, but grabbing the snapshots directly in the python is more efficient than using ftp but generally much harder to setup.