Smart Home Journal: June 8th 2020
Kerberos is out and Motion Eye is in.
Honestly, I think both solutions are really about on par. The 3 things which set Motion Eye apart were: community support, motion detection settings, all cameras in one place.
Community support I threw in because one of the options was probably attainable using Kerberos. And probably in the exact same fashion. But, I simply never found the information because no one in the Home Assistant community seems to be using Kerberos.
That piece was pointing Home Assistant at the feed generated by that, rather than adding more services pointing directly to the device. So, in my setup Kerberos setup, both Kerberos and HA were trying to access the feeds directly. And, I think this contributed to some of the choppy images I was seeing in HA. These cameras aren't exactly processing powerhouses.
As I said though, I think this was just a lack of community knowledge though. When I go to the stream URL in motion eye, it looks identical to what Kerberos was putting out. So, it isn't this specific feature which I would count against Kerberos.
Motion detection settings is the next area. Motion Eye is still fairly basic here. But, there are more configuration options. And, the options are more transparent. While I don't love pixel change based detection, at least I understand the effects of tweaking the sensitivity. And the masking feature is a little more flexible than the one used in Kerberos.
Lastly is an ideological thing. Kerberos prides itself on being as "micro" of a microservice as possible. As such, you must spin up a separate container for each container. Which makes viewing and managing a bit more painful.
Personally, I have no problem with the ideology. But, I would say that the implementation is flawed then. Viewing and administration is a thing which would bring all of the cameras into one place. I can fully accept that the actual "guts" of the image processing, storing, etc... can make sense as a container per camera. But, the act of monitoring or administering those cameras is a something which happens at a layer above and brings those together.
Other shared benefits: lightweight, MQTT integration and Docker images. I'm running this on my main server at the moment, and it can handle the load. But, I ultimately want to offload this to one or more smaller computers. Like perhaps a small cluster of raspberry pi devices. And, I also really like the MQTT integration. Though, I stopped using tensorflow and thus stopped using it for my cameras. I may still use it for logging however.
Other pluses for Motion eye; continuous recording, pre/post detection recording, snapshots with a symlink to the latest, automatic purging, scheduleable and Google Drive integration.
I have so far eschewed continuous recording. But, this is more of an inherited thing. To support it, I needed support for other features motion eye brings to the table. I need it to be schedule-able. Two of my cameras are indoors, facing out. They are useless at night. I may rectify that at some point. But, for the moment, recording 24/7 would be useless on those devices. The next problem is storage. I don't really want to need to be actively purging files, and I don't want my drives filled. I generally want, at most, 3-7 days of recordings.
Another feature Kerberos was missing was the ability to include a certain number of frame pre/post detection in the recordings. Generally, a true detection will hit a pretty high threshold. But, waiting until that threshold is reached may also leave out key information/data. So, with Kerberos I was almost forced to use settings which resulted in either too many false positives, or potentially lost information.
Having symlinks to the latest detected image allowed me to cut out Tensorflow which has reduced my server load as I just feed this link in as my latest detection in HA.
And lastly, once I have the sensitivity nailed down, I can upload video to Google. At which point I also have free offsite storage.
My conclusion however is that both solutions are good. Kerberos is a better entry level one I think. Without that exposure first I may not have been able to get into Motion Eye, or appreciate it as much.
The end result of all of this is that my HA instance now starts up lightning fast again. I think it was the Tensorflow integrations which slowed it down ultimately. So, the symlinks to the latest image may be the real hero for me, and it also eliminates extra processing.
Shinobi and Zone Minder are other bigger projects. But, for my needs they are too bulky and add too much extra crap into their Docker images. However, they may fit other people's needs.
Comments
Post a Comment