I've looked around and there are plenty of options for IP/Wi-Fi cameras with a tone of cool features, which can be accessed through a smartphone app, which, of course, is handled by the manufacturer (feed goes through its servers).
What I'd like is an IP camera that provides an API to which I can connect from my home server and let me see the feed only trough it. Motion sensing is also a cool, and useful feature, as it would allow me to send notifications.
How would you solve this or better yet, did you have this issue and already solved it?
Moved onto ZoneMinder and after hours of setup I felt the UI wasn't good enough for a non-tech person. I want others in my family access the feeds with ease, ZoneMinder does not cut it.
While I was experimenting with cameras, I was also getting into HomeAssistant which had motionEye as a supported service. It was easy to add cameras and almost any camera could be hacked to have RTSP support and motionEye.
Motion-detection could be enabled on the Raspberry Pi's motionEye, offloading compute off the cameras. This was important for me as many of my cheap Chinese cameras lag/hang/shutdown on load.
The Raspberry Pi also has Pi-Hole installed which I configured to block all IPs and domains being used by the IP cameras thereby limiting its access to local network only.
As I kept adding cameras (10+), performance on Raspberry Pi started getting affected, so I added another Raspberry Pi and installed motionEye on it. Setup MQTT on motionEye to send notifications to HomeAssistant on motion/human detection. Added multiple HDDs (4) so cameras can write with less conflicts.
I still haven't got some cameras (Xiaomi) into this setup as I don't want to hack them yet. (The open firmware(s) lack features). But they do backup recordings to the same Raspberry Pi NFS and I plan to find something which can show motionEye and Xiaomi videos in one interface.
You might have to be careful here. My understanding is that PiHole is just a domain lookup blocker so it won’t block a device which phones home with a straight IP address.
Happy to be corrected.
Sadly DNS over HTTPS takes this control away from you.
This is what I used to set up a home surveillance with notification alerts.
https://www.bouvet.no/bouvet-deler/utbrudd/building-a-motion...
====
I just wanted to add, while I have an Arlo Pro as well, I've found the Raspberry Pi Zero solution cheaper and more reliable. The Arlo's camera quality is better, but the software often fails to capture someone walking by. I'm also more skeptical about how safe my videos are on Arlo's servers.
motionEye can also be used directly on Raspberry Pi Zero along with the Raspberry Pi Camera but I don't use that setup as getting night vision to work on it a hassle and expensive, comparatively. It works though :).
The shares on the server are grouped so that each individual camera has a subdirectory of a parent directory, which is in turn shared by Syncthing to another local mirror and a remote mirror.
A python script runs on the server, using Pyinotify to detect new files, and using TensorFlow to do basic object detection, and adds bounding boxes to videos where it detects humans.
Finally a notification is sent through Pushover via MQTT (Mosquitto) when a person is detected, along with an image and a camera name and timestamp. It does presence detection by pinging our phones, so notifications are only sent if nobody is home.
If i should do it all again i would probably just buy a couple of Unifi cameras and a Cloudkey Gen 2 Plus and be done with it :)
Then buy whatever IP camera you like. I bought 4 of the Reolink cameras for $50 ish each. Rated for outdoor use, power over ethernet, motion detection (can edit the sensitive area if you like), can be streamed to any RTSP client (like say most security software), etc. Generally plays well with others and doesn't depend on a cloud for anything.
So cameras -> RTSP -> whatever software you want.
I tested out most of the non-commercial NVR software and landed on Blue Iris (the most recommended on ipcamtalk.com). Zoneminder and others were not as stable nor feature complete. My dad has the Blue Iris app on his phone so he can monitor remotely.
Blue Iris has motion detection and other common features.
Hikvision and Amcrest are often recommended for IP cameras.
ipcamtalk.com is an great resource for troubleshooting.
It's been a rock solid setup for 3+ years.
Edit: Price list - Blue Iris 5 (~$50) + Blue Iris App (~$10) - 4 Hikvision IP Cams off eBay ($280) - T20 Desktop Server ($330) - Desktop Server Upgrades (~$160) - Ethernet Cables ($50)
You could also use the IR camera and a good enough IR lamp to give you coverage at night as well. Use a PIR if you want motion sensing added on.
https://projects.raspberrypi.org/en/projects/infrared-bird-b...
A private youtube channel is "private" to you and alphabet/youtube employees. I guess using your channel to check up on your puppy is fine, but you shouldn't expect privacy in your private channel.
I know of zero stories in which these people's home security or guns prevented or helped resolve a break-in or other crime. In fact, unless I'm forgetting something, I don't know that I really know anybody that's had their house robbed at all (this is a privilege, I know)...
I do know other stories, though... Like somebody going downstairs in the middle of the night, gun-drawn because a relative got home from a trip a day early without telling anybody... Or somebody rushing home from work (armed again) because they got alerts from their home security system and couldn't access their cameras... only to find a Sheriff's deputy already in the house and... absolutely nothing amiss other than their kid leaving a door open.
And we haven't even started talking about privacy concerns.
Personally, I lock my doors at night and when I leave the house. If somebody wants to smash the glass in the french doors and walk right in, well, they're gonna be pretty disappointed in what I've got in there. I'm OK with that setup.
I know OP's question is about making the tech work in a safe way, but I can't help but wonder if all of the surveillance/security stuff is really necessary, unless you live in a high-crime area...
Great comparison to home gun ownership, it feels like a lot of money, technology, and energy put into protecting yourself from an extremely unlikely threat.
I did though once set up a timelapse cam to try & trace where a bush rat was getting in the house.
Even though I live in a new place outside of town, there is enough of a drug issue in our nearby small town that locking doors and running cameras makes sense. My brother-in-law laughed that we even lock doors until I showed him the theft stats in the area.
Poland resident here. Everyone locks the door here, even in the most remote areas.
The valley I live in (which is kind of a natural cul de sac with no through traffic) hasn't witnessed a crime in 50 years.
[Edit - I grew up near a country village in England. We never locked our doors there either. That was a few decades ago, but makes the point that my current Aus position isn't unique. There are pockets of sanity]
I started off with a couple of Chinese WiFi cameras. I needed to hack a perl script to get at its stream; https://gist.github.com/opless/d1effc2eefdf2dfe3b1a6418979bc...
Now I use eBay'd Axis POE cameras dumping continuous video to a samba share, and motion eye to capture a frame every second and video when motion triggered.
All very overkill but worthwhile as it's caught vandals, bike thieves and trespassing landlords.
A pfsense router with haproxy sorts out the SSL website to the docker containers part.
Raspberry PIs, other SBCs and usb webcams/noIR are an exercise in futility, as the inbuilt camera interface and v4l lags horribly at reasonable resolutions.
USB webcams can behave oddly if you stream constantly and are close to using the bandwidth of USB2
Zoneminder is memory hungry and will suck CPU like no tomorrow. But has a decent user interface, if you keep lots of data.
MotionEye can be configured to be unable to play back its captures which is a bug imho.
Cheap and chearful. Bash scripts over ssh to turn it on or off.
When I did have them (for monitoring a puppy) I put a camera on a physical switch so power could be completely cut when I was at home. For awhile I had this on a WiFi enabled switch, though I used a different switch brand than the camera to add layers that would need to be compromised.
It does not rely on any external cloud service or the like, but is based on a Raspberry PI and a IR cam, completely self-hosted. The stream is only available in the local network, but could be accessed from anywhere with a properly set up VPN (e.g. Wireguard).
It does not tick all your requirements but maybe you can use it as a foundation for building your own solution.
Also have a look at ZoneMinder: https://www.zoneminder.com/
We had some packages stolen, so I did put up a porch cam. It consists of:
- An old laptop propped up vertically behind the front door
- A USB web cam clipped to the door, looking out and down
- sudo apt-get install mocam, and a little fiddling with config files
I get about 7 days of motion-triggered videos, which I can rsync over to my main laptop, but only if I'm on the home network. No clouds involved.It seems like both an unenforceable crime, and a victimless crime.
"Yes police, hear's a package of my neighbor Gary stealing my package. I bet he's been the one stealing all the other packages on the block too, he's on disability or retired or something and is always home"
"Yes police, hear's the UPS carrier delivering one package and stealing one the USPS driver left".
"Yes police, here's video you can keep. In the event you catch this individual stealing another package from someone you have evidence of another instance".
>and a victimless crime.
If the shipper replaces it then the company is the victim and their shareholders. If the shipper doesn't replace it (perhaps it was a birthday gift from Aunt Milly in Topeka and she's on a fixed income and can't afford to make you another sweater right now) then the recipient is the victim.
Never mind the fact that it is a felony under federal law.
"Hello Amazon? Yes, I'd like to get a refund on the package that my mom sent me. Wh-- no, listen... did you hang up on me?"
Anyway, the plan was to print out the picture of the thief and tape it up as a warning to not steal again, or find out whether the package was in fact delivered in the first place. Luckily, though, we haven't had any more thefts.
(I did end up catching someone stealing my tomatoes, and I later (gently) confronted her about it. She explained and apologized, we made friends, and she gave me some tomatoes from her own garden.)
Was it a neighbor, who just hasn't told you yet?
Was it a malicious theft... by someone you know?
How often do such thieves go by? Which car do they use?
What's the risk? Should you pay for a pakmail/pmb/po box?
Raising the bar to package theft, vandalism, stealing cars and similar can help reduce the chances of it happening in the future.
https://wiki.zoneminder.com/index.php/Understanding_ZoneMind...?
gives some handy hints on zoning.
I’ve since switched to a dedicated machine running Blue Iris. It works a lot better for me than ZoneMinder did.
Network-wise, cameras get segregated onto their own VLAN and they aren’t allowed to initiate connections to anywhere. The Blue Iris machine is the only machine allowed to initiate connections into the camera VLAN.
I use Node-RED and PushOver to deliver motion detection notifications from the outdoor cameras. They get run through AWS Rekognition first to filter out things I’m not interested in (e.g., don’t tell me about neighbourhood cats at the door, but do tell me about humans at the door).
Remote access is via a VPN. Connect on demand makes remote access as seamless as local access.
Instead of trying to get a camera with the appropriate API and features, I recommend using “dumb” cameras and having all of the smarts on the NVR side. The big advantage of this is that you can upgrade the smarts of the system without replacing the cameras. Central management of alerts, recordings, etc is also very worthwhile.
What do you do for power sources to your cameras? I imagine with a setup like that you're not just using an AC cable to the nearest outlet plus some of those are outdoors.
You got some in wall wiring going direct to the cameras? How much time/cost investment would you say it would take for someone to replicate this setup?
Most of my cameras are WiFi and the wiring is not run in the walls. My front door camera, for example, is actually an indoor WiFi camera looking out a window with its power cord running through a nearby closet to an outlet near that closet. My living room camera is mounted on a piece of wood that's clamped to a bookcase, its power cord runs behind the bookcase to an outlet nearby. The nice thing about having WiFi cameras is that you can move them around really easily. If I'm worried that one of the cats isn't eating, I can just put a camera looking at the food dish so that I can see what's going on.
My driveway camera is unique in my setup though. It's my only wired camera and it's powered via PoE, so all I need is an ethernet cable. I used an existing hole in the house, where the cable and telephone comes in, and ran the ethernet through that to the outside. From there it goes into some conduit for protection, then gets stuffed behind a piece of siding and run to where the camera is mounted. The mounting is similar to this[0] YouTube video.
It's really hard to say what it would cost to replicate it. My cameras have been acquired piecemeal over the span of 10-ish years. My Blue Iris server is a refurbished Windows 10 Pro (Pro is required so that I can manage it via RDP) business-class desktop machine that cost about $300CAD, Blue Iris itself I think cost around $70CAD. The networking gear is UniFi, but really the only requirements are that the switches and APs are VLAN-capable and that there is some routing/firewall sitting between the VLANs.
Beyond hardware, Blue Iris, and AWS, the software involved all open source. The biggest cost is really time, and it's really hard to put a number on it.
Setting up Blue Iris, tuning the motion detection, and building the Node-RED flows that coordinate it all took quite a bit of time to get working to my satisfaction. Tweaking the motion detection to avoid triggering on shadows from trees in particular is something I spent a lot of time on. It wouldn't surprise me if I spent a total of 20+ hours just trying to cut down on the useless alerts before I gave up and started using AWS Rekognition to filter the alerts. Cost-wise, I estimate that I'll pay about $5/mo for Rekognition once I finish up my free 12-months.
The VPN duties are handled by StrongSwan, I built configuration profiles for MacOS and iOS (using Apple Configurator 2 plus hand-tweaking the resulting .mobileconfig file) to do the connect-on-demand magic. The whole thing is backed by a PKI (internal CA, etc), complete with machine and user certificates for authentication. This whole setup is probably 10-20 hours worth of time.
Typing this all out, it sounds fairly insane, but the knowledge I gained during this process is invaluable. It also took place over a fairly large timeframe, so it doesn't feel like I've invested a lot of time.
[0] https://digital-watchdog.com/spectrum-landingpage/
[1] https://apps.apple.com/us/app/dw-mobile-plus/id1454719539
Worked very well.
This was when their NVR software came as a Debian package, and was well supported. It meant I could run up syncthing against the local instance to (near) instantaneously share new videos across from my remote network, on a satellite connection, back to my home network.
Ubiquiti now appear to have abandoned support of the run-your-own NVR approach, and instead are pushing dedicated devices, which remove a lot of the flexibility to use them as you see fit. Their motion detection is also done within the NVR, not the camera module itself, so you need an NVR close to the camera(s).
I mention this as the price in Australia for the entry-level Unifi camera devices is about the same as a raspberry pi + camera + microSD card. Power consumption will be higher with the latter, but the tradeoff is that it's a proper GNU/Linux host, not just a blackbox appliance.
The Wyze cams are nice as they have audio, detection zones, etc.
The brand I got was VStar (https://www.vstarcam.com.sg), it allows broadcast, control as well as record to a MicroSD card simultaneously.
As long as you secure your own network and monitors the logs to make sure no one that is not supposed to is connecting to your network, it should be fine.
It also has access log to tell you who accessed using what credentials. I managed to write a script that automatically pulls the logs every second and if there's an unrecognized IP, it will send me a slack notification.
Most Cameras support RTSP which will allow you to monitor their streams from 3rd party software.
https://www.theregister.co.uk/2020/01/29/ubiquiti_data_colle...
My father in law has cheap Chinese cameras from Amazon that didn’t last 6 months. He also pays a monthly subscription for his Nest Cameras.
I’ll be installing a G3 Flex and an outdoor Mesh AP on the patio of a condo by the beach. We’ll see how long it lasts. Inside the USG and a Switch have been running fine.
I use NAT to expose my web interface, Orchid marks motion on the timeline like most good video servers, and Orchid uses ONVIF / RTSP so it can use any standard IP camera
[0] https://www.ipconfigure.com/products/orchid - free on Arm
[1] https://www.hardkernel.com/shop/odroid-hc1-home-cloud-one/ - 8 core A15 / A7, 2G ram + SATA, GBE
Hardware: raspberry pi zero running gstreamer rtsp streams. Didn't want to deal with all the terrible cameras phoning some random server.
Mobile App: zmNinja. $5.00. Worth it in my opinion. Motion notifications, event montage review, live streams, everything I need. HomeAssistant assists in enabling motion detection recording when our phones are not detected at home.
https://zoneminder.com/ looks good too.
I also have some Schlage locks and a few sensors on areas like my garage doors in case they are forcibly opened.
I was running Motion on the same machine and it continued to work without any problems.
Also me and my family members are socialists so I can trust them instead of having to monitor them.