I’m planning a temporary surveillance system for a house that’s still under construction (final stages), with 2-3 IP cameras and RPi3 as NVR. Using 4G to access internet.
The question here is about software, not hardware, please keep this in mind. I already have a Raspberry Pi 3, and if it can’t handle it – I have spare notebooks and stuff that I can reuse as a server. With all that I see no point in spending money on an NVR, especially since I like to tinker with linux and stuff like that anyway.
Hardware I already have:
– Raspberry Pi 3 with 32GB SD card
– USB HDD Drive
* 2-3 IP cams
* Motion detection, send alarm email and pushbullet
* Upload alarm videos to remote location: google drive, dropbox, owncloud, ftp, or something, ideally including a link in the email
* Ability to also trigger some sort of alarm on site, as in a loud sound, to scare bad guys off. Not yet sure no which hardware to use here, I don’t want to use zwave, so it has to be something else.
* Dynamic DNS (I’m thinking Cloudflare and using python script to change dynamic dns on specific subdomain, this looks like it’s already done anyway, checked the code, should pretty much just work for me out of the box. Could just change subdomain name: [https://github.com/nikhiljohn10/ddns-on-cloudflare](https://github.com/nikhiljohn10/ddns-on-cloudflare) )
I’m quite familiar with HomeAssistant, so I could use that to automate some tasks, like sending pushbullet notification and emails, if software itself does not support something. As well as triggering a sound alarm on site.
I also don’t think it’s a good idea to stream and process video both in NVR software (whichever that is) and HASS on RPi, as that’ll slow things down.
**I wonder which route should I go?** I tried ZoneMinder, but it looks outdated and a hassle to install, especially on RPi.
Second thing I stumbled upon was Shinobi and it looks cool. But has no integration with Hass. But it has Rest API, so maybe there’s a way around it. Or maybe it can do everything I need on it’s own?
And finally I saw MotionEye. It looks so simple but also kind of neat. Combined with hass it may probably do the trick.
So, any thoughts on which software combination could work best?
Thanks for your time and attention!
In the meantime I installed Shinobi and MotionEye on Raspberry Pi, and tested it with a USB camera.
Shinobi is a pain in the ass to set up, UI is not intuitive, documentation is lacking a lot. For email setup it just said “go there and check that out”. It looks like a cool thing, but takes lots of time to setup basic things. And it does not support USB cameras. I planned to use one too.
MotionEye on the other hand it very simple but looks quite powerful. It supports lots of cameras as well, including USB cameras. It has motion detection and can upload recordings to remote locations including FTP, Dropbox and Google Drive. And it has an easy SMTP email notification support. It does not have any other notifications built in, but it has two very flexible and powerful things that can be triggered by an alarm – webhook (HTTP request) and command. Command is any linux command, http request can pretty much do anything, including sending pushbullet notification.
So far it ticked all requirements. Not yet sure how well it stores videos, but it has a lot of options of encoding, including h264 and it uses ffmpeg which I compiled with Raspberry Pi’s hardware acceleration support.
Waiting for cameras to arrive to see how well it handles with those.
So, finally got my hands on those cameras. FalconEye FE-IPC-BL200P Eco POE and HIKVISION DS-2CD1148-I/BL200P
TLDR – managed to get it working at 640×480 and 15-20 fps with motion detection. Going higher it gets choppy and real FPS jumps anywhere from 10 to 30.
So far it seems to be working much better with mjpeg on HIKVISION camera. FalconEye does not seem to support mjpeg, so I’m stuck with rtsp h264 sub-stream (which is 640×480 or something), but I may try to tweak those settings to see if lower quality or something helps to speed up Pi’s processing of the feed and maybe allows to increase resolution.
I did compile ffmpeg with h264 hardware encoding support, so there’s that.
Anyway it seems to do quite decent job for how small and cheap RPi3 is.