TL;DR: They're a damn good choice, and I don't know how offline they can be.
I use Proxmox, Reolink 810s, and I have AgentDVR logged into the cameras via https (443) to get info, and ONVIF (8000) for the stream. It takes a little tweaking via the camera app or web GUI if you want the onboard AI to omit large or small objects for screenshots or notifications, which I have controlled by HA. I use the AgentDVR and Reolink integrations. Here are the features I've got:
- AgentDVR logged in to the cameras' admin account (definitely no Reolink account)
- Reolink cam rolling footage based on motion, on onboard MicroSD
- AgentDVR 24/7 footage saving directly to a mounted high-capacity HDD
- Reolink cam, with detection, sends a screenshot with a configured naming format via FTP directly to Home Assistant's www folder (but this and notifications can be handled by either piece of the setup)
- Home Assistant monitors the folder with folder_watcher and an automation prepares to send my phone a notification (Fdroid - not Google) once the image has 'closed')
- I've saved my automation script in which HA does the screenshots instead of the Reolink cam. I've kept the clickAction to the Reolink app in there because it's very complicated
- My cameras are connected to my home WiFi but they can also connect to an NVR or a PC for a completely isolated link (you'll need a PoE injector, I use this for up to 4 cameras).
If you use the Reolink app, then it will use the Reolink servers via several domains. I haven't checked traffic on the cameras yet. It can be fully offline but I choose not to for a better remote experience using the app.
I set them up a long time ago, scanning a QR code on the camera using the Reolink app. I don't know if it can be handled another way.