I’ve been happy with my HAOS installation on my dedicated server (Dell Optiplex 3050M Micro). After almost a year, realize that I am barely using the server capability and want to add more applications to that machine.
For example … I want to add a couple large SSDs and use the system as network shared storage and backup solution (NAS). I would also like to add a surveillance camera (or two) and play with either Blue Iris or Frigate (NVR).
Now … the questions for this community… how best do I do that?
Can I expect HA to handle my network storage and backup, as well as my camera NVR? Or would it be better to start over with a fresh Windows 10 install and Docker. (I don’t have a huge investment in my HA system, so a restart would not be too painful.) I could then create containers for my HA install, my storage install, and NVR camera install. Would there be a way to migrate my HA work so I didn’t need to start completely over?
I would just say to be aware of the bandwidth required for the cameras, especially at higher resolution and frame rate … sooner or later you will be making compromises.
Consider that for security a high quality picture is desirable (to give a wide field of view, and particularly if you might want to zoom in to see a suspects face); high frame rate is desirable to see smooth motion; and wi-fi means the camera can be placed where it gets the best angle. Sounds great, but don’t spend your money until you do the math …
A modern good quality camera might have an image resolution of 1280 pixels (dots) wide by 1024 pixels high = 3,310,720 pixels. True colour is 24 bits (3 bytes) per pixel giving 31,457,280 bits (plus some framing and overhead) per frame of the image. If you record at 30 frames/second that’s 943Mbps … and maybe your camera doesn’t support wi-fi 6 or even wi-fi 5.
Even 800x600 resolution x 16-bit color x 10fps is still 77Mbps; and in the real world you would be lucky to get 32Mbps actual data throughput from a 2.4GHz Wifi Access Point which is rated at 54Mbps.
I am not trying to discourage you … just suggesting that you consider your objectives and be aware of bandwidth requirements.
1gbit connection is more than capable of handling all the cameras you could probably throw at frigate in a residential scenario.
I personally run 14 cameras most are 4k with upwards of 16mbit/s per stream. But I use all three streams from my Dahua cameras. The issue isn’t bandwidth. You’ll want your machine running frigate on the same switch as your cameras, as you’ll just be overwhelming your switching capacity for other VLANs if your frigate host is on another switch/upstream switch. My setup has 45 streams running on a intel J4125 with dual coral TPU. But if if want all 45 streams running properly and not dropping packets(dropped frames) you need to ensure your switches have the switching capacity for it. There’s a big difference when traversing L2 vs L3 switching load on your switches CPU.
I dont use any vm’s and run docker over Ubuntu as the OS on a dell optiplex. I use Home assistant container- you lose the addons, but almost all of the addons have an equivalent docker container you can install yourself. Frigate has a docker image you can install instead of the addon. All docker images can be manged with portainer, which has a nice UI. I run shinobi on the Ubuntu bare metal as an nvr. It’s an older program but is handling 3 cameras recording 24/7 to an external HD drive well for me.
The biggest pain point with a docker install will be managing the loss of the addons. What other addons are you using?
I never used it, but the proxmox install mentioned above sounds like a nice alternative to keep the addons.
Id avoid supervised- you’re not supposed to run other software with supervised and it restricts you to Debian as the OS.
I decided to just use another spare PC as my server and keep the machine dedicate to home assistant. I have a bad taste in my mouth trying to run HA on a VM. Issues with USB passthrough and zigbee/zwave sticks.
Actually, I just built a new PC and dedicated my Dell XPS 8940(I7 10700, 16gb RAM) as my Home Assistant server. Overkill, yes…but it handles Frigate well with a USB coral. I have an M.2 coral coming.
I took the machine that was running Home Assistant and turned into my server/NAS. Probably going to install Plex and a few other things on it.
Thanks to everyone for their inputs. It’s always good to come back to this community of users before I set out on a new path. What I’ve concluded from the various inputs is:
don’t try to make a NAS out of my HA server because HAOS doesn’t support multiple disks. (Thanks Tinkerer)
beware of bandwidth requirements for surveillance cameras. I might play with a single camera and an HA add-on of Frigate, but eventually run the IP cameras with POE to a dedicated NVR server. (Thanks Don Burch & SparkyDave)
When I want to add a new capability to my server, I’ll probably install ProxMox OS and create a new VM for HA and the new thing. (Thanks PecosKidd)
No IP camera will stream uncompressed raw video. All IP cameras have onboard video compression and will deliver a h264 or h265 stream. In practice, a 16mbps stream is perfectly fine for 4k cameras (3840 x 2160), which is pretty much the mid level standard these days. Higher end cameras go much higher resolution wise.
My best advice for this is… dont touch it at all, it works fine why bother complicate things.
But if you wanna still continue, go ahead by I recommend doing that stuff on your extra hardware first before deploying it.
And I dont really recommend this stuff being utilized closed to 100% all the time. I used to do this but damn, I manage to break one of my dell micro due to overheating. the poor fan just cant keep up with the 24/7 heavy load I guess. If you wanna consolidate everything on single box, I recommend getting the matx model instead.
Also dont use USB as your main way of connecting extra storage, if you go that way, your just asking for heacache.
I’d rather have a whole lot of 5-20watt SBC for microservices running HAOS as a make shift Ubuntu/Docker server. Running several add ons on each. Than a large server consuming more energy… I don’t have to worry about Linux package updates.
You want your SBC’s to be about 20-30% cpu, and 40-60% memory utilization. At peak load of your services end up around 60-80% CPU utilization which leaves cycle times to keep everything running smoothly.