Adding an IP camera to Home Assistant sounds simple — until you learn that every camera brand speaks its own dialect. The ONVIF integration is the one standard that cuts through the noise: a single Home Assistant integration that works with Reolink, Amcrest, Dahua, Hikvision clones, and most "ONVIF-compatible" IP cameras sold since 2018. This guide walks you through the complete setup, the traps nobody mentions in forum threads, and the cheapest way to run it: a LinknLink iSG Box SE with Home Assistant preinstalled for $69.90.

1. What Is ONVIF and Why Home Assistant Users Need It
ONVIF (Open Network Video Interface Forum) is an open standard that defines how IP cameras, NVRs, and video clients talk to each other over a local network. Instead of needing a different app for every camera brand, any ONVIF-compatible device can discover, stream, and receive events from any other ONVIF-compatible device.
For Home Assistant users, that matters for three reasons:
- Privacy and local control. ONVIF runs entirely on your LAN. No video leaves your house, no account is required, no camera manufacturer can shut off your feed with a firmware update. This is the exact opposite of the Wyze, Ring, or Arlo model.
- Latency. A cloud-based camera feed typically round-trips 300–1200 ms through a vendor server before reaching Home Assistant. ONVIF over the local network is usually under 150 ms — fast enough to trigger Home Assistant automations (lights, HVAC, sirens) before the person walking into frame has finished taking two steps.
- No vendor lock-in. If your camera brand goes out of business or pivots to a subscription model, your system keeps working. ONVIF is a W3C-style open spec with thousands of compatible devices.
If you are still deciding whether a dedicated hub is worth it, we cover the fundamentals in What Is a Smart Home Hub. For ONVIF specifically, a hub with enough CPU headroom to handle multiple RTSP streams is non-negotiable — which is why the hardware choice in the next section matters.
Camera brands that work well with ONVIF + Home Assistant:
- Reolink (RLC, E1, Duo series) — excellent ONVIF profile exposure, main + sub stream out of the box
- Amcrest (IP4M, IP5M series) — Dahua OEM, very solid ONVIF events
- Dahua (IPC-HFW, IPC-HDW series) — native ONVIF, rock-solid motion events
- Hikvision and rebrands (Annke, LTS, LaView) — ONVIF works but enable it in the camera's web UI first
- Ubiquiti UniFi Protect G3/G4/G5 — ONVIF only via Protect export, most users skip this path
- Axis, Bosch, Vivotek — enterprise-grade, excellent ONVIF support
Camera brands to avoid for ONVIF: Wyze, Blink, Arlo, Ring, Google Nest. These are cloud-first products; their ONVIF exposure is either non-existent or unstable after firmware updates.

Best Local Gateway for Camera Automation
Before you touch the ONVIF integration screen, make sure you have these four things lined up:
2.1 A Home Assistant host powerful enough for RTSP streams
Home Assistant OS running on a Raspberry Pi 4 (4 GB) technically works for 1–2 cameras, but anything more — or the moment you add Frigate for AI detection — and the Pi starts dropping frames and overheating.
We recommend the LinknLink iSG Box SE for this setup. At $69.90 it is the cheapest Home Assistant host on the market with HA preinstalled, and it has meaningfully more compute than a Pi 4 — enough headroom for 8+ ONVIF cameras in native HA, or 2–4 cameras with Frigate NVR on the same box. Full hardware comparison is in our Home Assistant Hardware Guide.
Why iSG Box SE is the right default for an ONVIF build:
- Preinstalled Home Assistant — plug in power and Ethernet, open your browser, finish the setup wizard. No SD card imaging, no Proxmox, no Home Assistant Yellow supply-chain wait.
- Local-first architecture — 100% local control, no cloud account, no monthly fee.
- Enough CPU for Frigate — the §5 bonus on AI object detection works without adding a Coral USB accelerator for a 2–4 camera setup.
- Price — $69.90 vs. Home Assistant Green at $158.90 or a Raspberry Pi 5 kit that lands above $120 once you add an SSD and case.
2.2 An ONVIF-compatible IP camera on the same LAN
Check the camera's spec sheet or admin UI for the "ONVIF" toggle. Most cameras from the brands in §1 ship with ONVIF enabled but password-less — you will add credentials in §3.
2.3 A static IP reservation in your router
Home Assistant integrates cameras by IP address. If your router hands the camera a new IP next week, the integration breaks silently. In your router's DHCP settings, reserve a permanent LAN IP for each camera's MAC address (typically shown in the camera's admin UI).
2.4 Camera admin credentials
Not the factory default — change them first. ONVIF credentials are sent over the LAN in digest auth by default, and factory-default passwords are still the most-scanned surface in any home network.
Local RTSP Camera Setup
With hardware ready, the actual integration takes under ten minutes. Here are the exact five steps.
Step 1 — Enable ONVIF in the camera's web UI
Open the camera's IP in your browser (e.g. http://192.168.1.50), log in with admin credentials, and find the ONVIF section. Paths by brand:
- Reolink: Device Settings → Network → Advanced → Port Settings → tick "ONVIF"
- Amcrest/Dahua: Setup → Network → Connection → ONVIF → Authentication = "Digest" or "None"
- Hikvision: Configuration → Network → Advanced Settings → Integration Protocol → enable ONVIF and create a dedicated ONVIF user
Hikvision is the one brand that ships with ONVIF disabled by default and requires a separate ONVIF user account — set that up before continuing.
Step 2 — Note the RTSP stream URLs (optional but useful)
While you are in the web UI, copy the main and sub stream RTSP URLs. Home Assistant's ONVIF integration discovers these automatically, but having them handy makes debugging much faster if the discovery fails. Typical formats:
- Reolink main:
rtsp://admin:password@192.168.1.50:554/h264Preview_01_main - Reolink sub:
rtsp://admin:password@192.168.1.50:554/h264Preview_01_sub - Amcrest main:
rtsp://admin:password@192.168.1.50:554/cam/realmonitor?channel=1&subtype=0 - Amcrest sub:
rtsp://admin:password@192.168.1.50:554/cam/realmonitor?channel=1&subtype=1
Step 3 — Open Home Assistant and add the ONVIF integration
In the Home Assistant UI (whether running on iSG Box SE or elsewhere):
- Go to Settings → Devices & Services
- Click + Add Integration (bottom-right)
- Search for "ONVIF" and select it
Home Assistant will scan the local network via WS-Discovery. Most cameras appear automatically. If yours does not, you can add it manually by IP.
Step 4 — Enter IP, port, and credentials
The default ONVIF port is 80 (HTTP) on most cameras, not 554 (that is RTSP — a different port). If your camera uses a non-standard ONVIF port (2020, 8000, 8899 are common), it will be listed in the camera's web UI under the Network or ONVIF section.
Enter:
- Host: the camera's static LAN IP
- Port: usually 80; Hikvision often uses 80, Dahua 80, Reolink 8000
- Username/Password: the ONVIF credentials you set in §2.4 (Hikvision: the dedicated ONVIF user created in Step 1)
Step 5 — Pick the profiles (main + sub stream)
Home Assistant will expose every ONVIF "profile" the camera advertises — typically one for the main (high-res) stream and one for the sub (low-res) stream. Enable both:
- Main stream — used for recordings, snapshots, and high-quality viewing
- Sub stream — used for the Home Assistant Lovelace dashboard tile (so the dashboard loads fast even on mobile)
Click Submit. The camera now shows up under Devices & Services with entities for the live feed, motion sensor, and (if the camera supports it) binary sensors for any event the camera fires — line crossing, intrusion detection, human/vehicle classification, tampering.
Reolink ONVIF Troubleshooting
These are the four issues that generate 90% of the forum threads about Home Assistant ONVIF. Here is how to fix each in under two minutes.
4.1 "Camera not discovered" during Add Integration
WS-Discovery uses multicast DNS (mDNS). If your Home Assistant host and your camera are on different VLANs or different WiFi SSIDs, mDNS packets do not cross the boundary. Fixes, in order of effort:
- Put the camera on the same subnet as Home Assistant temporarily for discovery, then move it back.
- Add the camera manually by IP during the integration setup (WS-Discovery is a convenience, not a requirement).
- Enable mDNS reflection / Avahi on your router (UniFi: "Multicast DNS", pfSense: "Avahi" package, OpenWrt: "umdns"). This is the permanent fix.
4.2 Live stream keeps buffering or showing "Stream not available"
The main stream at 4K or 1440p + 30 fps is often too much for the Lovelace dashboard, especially on mobile. Switch the dashboard tile to the sub stream:
- Settings → Devices & Services → ONVIF integration → Configure → uncheck "Main Profile" for the Picture Entity Card
- Or directly in the camera card YAML: set
stream_sourceto the sub profile entity
Frigate NVR (covered in §5) is a cleaner solution here — it re-encodes the stream once and serves low-latency HLS/WebRTC to all clients.
4.3 Motion detection entities not firing events in Home Assistant
ONVIF motion events are optional in the spec — the camera must both (a) have motion detection enabled locally, and (b) be configured to publish ONVIF events. Steps:
- In the camera's web UI, enable motion detection (usually Event → Motion Detection → Enable)
- Find the ONVIF or "smart event" settings and enable "ONVIF Events" or "Push Events"
- In Home Assistant, restart the ONVIF integration: Settings → Devices & Services → ONVIF → three-dot menu → Reload
If you are on a Hikvision or Hikvision-OEM camera and events still do not fire, check that the ONVIF user you created in §3 Step 1 has the "Event" and "Media" permissions — by default the ONVIF user is read-only for User management, which is correct, but some firmware versions also restrict event subscription.
4.4 Camera works for a day, then goes offline until a reboot
This is almost always a DHCP lease expiration (no static reservation) or an RTSP keep-alive timeout. Confirm the static IP reservation from §2.3 is applied on the router, not just in the camera's own network settings. Some cameras honor both; some ignore their own static IP and take whatever the router assigns.
5. Bonus: Adding Frigate NVR for AI Object Detection
Native Home Assistant ONVIF motion is binary: "something moved" or "nothing moved." That triggers a lot of false positives from leaves blowing across the lawn or shadows at sunset.
Frigate is a free, open-source NVR that runs as a Home Assistant add-on and does local AI object detection on the camera feed — so instead of "motion," your automations fire on "person," "car," "package," or "dog." Everything runs on your Home Assistant host; no frames leave the LAN.
Why iSG Box SE is powerful enough to host Frigate:
- Frigate's default CPU detector handles 2–4 cameras at 5–7 fps each on the iSG Box SE without thermal throttling.
- If you scale to 6–8 cameras later, add a $60 Google Coral USB accelerator and Frigate offloads inference to the TPU — iSG Box SE has spare USB bandwidth for this.
- Setup takes ~15 minutes: install the Frigate add-on from the Home Assistant add-on store, paste your ONVIF RTSP URLs from §3 Step 2 into
frigate.yaml, reload.
Pair that with Home Assistant automations ("if Frigate detects a person at the front door between 10 PM and 6 AM, turn on the porch light and flash the living room lamp three times") and you have a smart security system that costs nothing to run beyond the electricity bill. The iSG Box SE is the lowest-friction starting point for exactly this stack.
Home Assistant ONVIF Integration FAQ
Can Home Assistant use ONVIF cameras without cloud access?
Yes. Home Assistant can connect to many ONVIF cameras on the local network using the camera IP address, ONVIF port, and local credentials.
Why does a Reolink camera need RTSP settings with ONVIF?
ONVIF handles discovery and control, while RTSP often carries the live video stream. If video fails, confirm the RTSP path, firmware, and LAN permissions.
Which LinknLink gateway is best for local camera automation?
Use iSG Box SE for a compact Home Assistant gateway, or iSG Display Max when you also want an on-wall screen for camera and room controls.
7. Conclusion: Start Your ONVIF Setup with iSG Box SE Today
The ONVIF integration is the shortest path from "I have an IP camera" to "my lights turn on when someone walks up the driveway, my HVAC changes when the living room is empty for 20 minutes, and my phone pings me when Frigate sees a delivery van instead of a stray cat." And the cheapest way to get there without weekend-long hardware tinkering is a LinknLink iSG Box SE ($69.90) — Home Assistant preinstalled, 100% local, ready to run ONVIF and Frigate the moment you open the box.
Follow the five steps in §3 and you will have your first camera streaming inside Home Assistant in under ten minutes. Add the §5 Frigate layer next weekend. Add the rest of your cameras whenever you want — the ONVIF integration scales to 8+ devices without any further configuration.