I really like the frigate project, and the detection models it has are really really good, and that meant I could use really cheap Amcrest (I think) cameras because the brains was on the server end rather than camera end. Plus I kinda prefer the device side to be as dumb as possible as they can often have all sorts of vulnerabilities baked in the more IoT they are.
Though I also really hate Home Assistant so I use Frigate as a standalone app, and I manage notifications in a somewhat roundabout way (mqtt -> loki -> grafana -> pushover). I did that because I got heartily sick of how awful Home Assistant was at determining whether I was, or was not at home.
So now I use Unpoller to get my device states from the UDM, that gets stored in prometheus, and my Grafana alert rule works out if my partner or I are at home based on our device being connected to the WiFi or not; then each MQTT event for a detection it only sends a notification if both phones are away.
Its only recent releases of Unifi Network that have made it easy to setup local DNS entries - it used to be very kludgy or not possible back when I first deployed PiHole as DNS for me.