Hey, @argykaraz
Thank you so much for the idea of using my favourite Home Automation platform and my least disliked CCTV Framework (liked would be an overstatement). I had never thought of using them together but here’s what I’ve done with your idea…
I have set the ‘command’ to:
mosquitto_pub -h 192.168.0.3 -t cameras/motion/pats -u john -P mypassword -m ON
and my ‘end command’ to:
mosquitto_pub -h 192.168.0.3 -t cameras/motion/pats -u john -P mypassword -m OFF
I am not a fan of putting my password in things ie putting my mosquitto password in motioneye but needs must (a program that stores it’s own admin passwords etc in plain text).
In Home Assistant I have some binary_sensors set up eg
platform: mqtt
name: "motion (drive)"
state_topic: "cameras/motion/drive"
payload_on: "ON"
payload_off: "OFF"
device_class: "motion"
That obviously controls the binary_sensor and sets it up as a motion detector.
After that was done I changed my image settings in Motioneye to make sure that it was creating an image when motion was detected.
I then turn to Node-RED to do some jiggery-pokery. In Node-RED I now have this…
which is:
[{"id":"a44c8cc5.3106c","type":"mqtt in","z":"839343ea.c64e3","name":"Drive Camera","topic":"cameras/motion/drive","qos":"2","broker":"2c553bf7.b54c64","x":100,"y":100,"wires":[["351a3f7.b860ec"]]},{"id":"351a3f7.b860ec","type":"switch","z":"839343ea.c64e3","name":"Motion ON or OFF","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"ON","vt":"str"},{"t":"eq","v":"OFF","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":310,"y":100,"wires":[["963127ea.8d9638"],["cd591b63.543c88"]]},{"id":"cd591b63.543c88","type":"exec","z":"839343ea.c64e3","command":"find /CCTV/Drive -type f -iname '*.thumb' -printf \"%T@ %p\\n\" | sort -n | cut -d' ' -f 2- | tail -n 1","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"Get the final video thumbnail","x":580,"y":140,"wires":[["48645b4c.3d1714"],[],[]]},{"id":"1410272c.30db59","type":"fs-ops-copy","z":"839343ea.c64e3","name":"Copy to the HA dir","sourcePath":"","sourcePathType":"str","sourceFilename":"payload","sourceFilenameType":"msg","destPath":"/home/john/.homeassistant/www/assets/images/cctv","destPathType":"str","destFilename":"drive.jpg","destFilenameType":"str","link":false,"overwrite":true,"x":1200,"y":80,"wires":[[]]},{"id":"963127ea.8d9638","type":"exec","z":"839343ea.c64e3","command":"find /CCTV/Drive -type f -iname '*.jpg' -printf \"%T@ %p\\n\" | sort -n | cut -d' ' -f 2- | tail -n 1","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"Get the initial image","x":550,"y":60,"wires":[["48645b4c.3d1714"],[],[]]},{"id":"48645b4c.3d1714","type":"string","z":"839343ea.c64e3","name":"Get rid of the trailing newline","methods":[{"name":"trim","params":[]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":910,"y":80,"wires":[["1410272c.30db59"]]},{"id":"2c553bf7.b54c64","type":"mqtt-broker","z":"","name":"Main","broker":"192.168.0.3","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""}]
Let me know if need any help with the modules required etc.
So, that then copies the initial image to the www subdir of the HA filesystem and then the final thumbnail once the motion event has finished.
That means that I can then create a camera in HA with…
platform: local_file
name: "drive_motion"
file_path: "/home/homeassistant/.homeassistant/www/assets/images/cctv/drive.jpg"
What does that mean?
It basically means that I can delete the 5 or 6 cameras that I have on my HA overview and replace them with the up to date image. This should save on quite a few resources.
Watch out for a new video on this
Because of the advantages of this over having 5-6 cameras using the traditional method. I am pretty sure I will be doing a video on this on the HASSCASTS YouTube Channel tomorrow.
http://YouTube.com/hasscasts
OK: So if anybody has any questions about this then please don’t hesitate to give me a shout
John