Adding an IP camera to Home Assistant sounds simple — until you learn that every camera brand speaks its own dialect. The ONVIF integration provides a practical local path for compatible cameras: discover the device, connect its RTSP stream, and keep control on your LAN. This guide covers setup, Reolink troubleshooting, credentials, and the host choices that keep a privacy-first camera system maintainable.
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.

Choose a Home Assistant Host for Local Camera Control
Before you touch the ONVIF integration screen, match the Home Assistant host to the number of cameras, stream profiles, recording needs, and automations you plan to run. Native ONVIF viewing is lighter than continuous recording or video analysis, so size the host for the workload rather than for a product claim.
2.1 Match the host to camera count and stream workload
For one or two cameras, a supported Home Assistant host with reliable Ethernet can be sufficient. More cameras, continuous recording, or multiple high-resolution streams need additional CPU, memory, storage, and cooling headroom. Use sub-streams for dashboards and keep higher-resolution profiles for recordings or snapshots when your setup supports them.
2.2 Optional dashboard and local-control path
If you want a local display for camera views and room controls, LinknLink iSG Display Max is an optional dashboard and smart-home control path. It should not be treated as a universal ONVIF host, NVR, or video-inference appliance; confirm the camera and Home Assistant topology before choosing it.
2.3 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.4 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.
2.5 Camera admin credentials
Use a dedicated, non-default camera or ONVIF account where the camera supports it. Store credentials securely and avoid placing them in public screenshots, shared URLs, or source-controlled configuration.
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, wherever your Home Assistant instance is running:
- 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
If you need a separate local video pipeline, evaluate its resource requirements and compatibility independently from the native ONVIF integration.
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. 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 should I choose for local camera automation?
Choose a supported Home Assistant host that matches your camera count and stream workload. If you also want a local on-wall dashboard, iSG Display Max is an optional display and control path; verify the integration topology before purchase.
6. Conclusion: Build a Reliable Local ONVIF Setup
ONVIF is a practical path from an IP camera to local Home Assistant control when the camera, network, credentials, and stream profiles are configured together. Start with a stable LAN address, test the camera's ONVIF and RTSP paths, and use the sub stream for lightweight dashboard viewing.
Follow the setup and troubleshooting steps above, then add cameras incrementally so you can confirm discovery, live video, and event behavior before expanding the system.
Explore the optional iSG Display Max dashboard →