ONVIF
onvif
The ONVIF integration allows you to use an ONVIF Profile S conformant device in Home Assistant. This requires the ffmpeg integration to be already configured.
In Apple Home through HomeKit Bridge
What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.
| Entity | Shows up as | Note |
|---|---|---|
switch | Switch or outlet | |
camera | Camera | Needs its own HomeKit Bridge in accessory mode |
binary_sensor | Sensor (motion, contact, leak, smoke…) | |
sensor | Sensor (temperature, humidity, air quality…) | |
button | Button (as a switch) |
2 reports below say how a device from this integration behaves in the Home app.
What people report
IP cameras and NVRs from Tapo, Hikvision, Reolink and others work locally. Camera firmware quirks and NVR regressions cause occasional event or setup failures.
- Works12
- Partly works3
- Not working1
- Requested1
| Device | In Home Assistant | In Apple Home | What they said | Source |
|---|---|---|---|---|
| Amcrest AD410 video doorbell | Works Local | ONVIF; works with Synology NVR and FrigateSaved copyI have the second version of the Amcrest unit, AD410. It has a great picture and is Onvif compatible so it works with my Synology NVR and Frigate just fine. Excerpt saved from the Arctic Shift Reddit archive on 2026-10-23. | Reddit comment · 2023-12 | |
| Dahua / Amcrest cameras | Works Local | Standards-compliant, 100% local; Loryta rebrands and Amcrest AD410 doorbell work wellSaved copyI second Dahua over Reolink. Dahua are standards-compliant and 100% local, whereas only some of Reolink cameras are ONVIF-compliant. Excerpt saved from the Arctic Shift Reddit archive on 2026-10-23. | Reddit comment · 2025-09 | |
| Dahua DH-IPC-HUM8441-E1-L4 pinhole camera | Works Local | Recommended: fully ONVIF compliant with edge AI featuresSaved copyLook into Dahua DH-IPC-HUM8441-E1-L4 and similar pinhole cameras. This particular model is WizMind series so pretty advanced edge ai features built in, and fully ONVIF compliant. Excerpt saved from the Arctic Shift Reddit archive on 2026-10-23. | Reddit comment · 2025-08 | |
| Reolink cameras | Works | Most reliable cameras in one user's Frigate setupSaved copyJust my curiosity, not an indictment of your project, but what about Frigate didn’t work for you? I get that the detection native to the cameras was good enough for you, but the inconsistent RTSP stream part is odd to me. I have Reolink cameras with Frigate and they’re easily the most reliable ones in my setup other than maybe a very dumb hardwired Dahua. Excerpt saved from the Arctic Shift Reddit archive on 2026-10-23. | Reddit comment · 2026-07 | |
| Reolink E1 Outdoor | Works | Used ONVIF for PTZ controlSaved copyJust got my first Reolink E1 Outdoor set up and deployed yesterday and now I know why so many HA users recommend them. I used ONVIF instead of the Reolink Integration because I wanted control over the PTZ. Very impressive and I definitely plan on replacing more of my cams with Reolinks! Excerpt saved from the Arctic Shift Reddit archive on 2026-10-23. | Reddit comment · 2024-12 | |
| Reolink NVR | Works Local | Unknown error after firmware 3.0.0.148 later clearedSaved copyThe problem After upgrading Reolink NVR for v3.0.0.148_21100909 firmware. Logger: aiohttp.server Source: components/onvif/config_flow.py:198 First occurred: 16:05:14 (1 occurrences) Last logged: 16:05:14 Error handling request Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 61, in map_httpcore_exceptions yield File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 281, in handle_async_request ) = await self._pool.handle_async_request( File … Excerpt saved from GitHub on 2026-10-23. | Issue #58702 · 2021-10 | |
| Reolink package detection and Hikvision alarm | Works Local | Parser support addedSaved copyProposed change Add onvif parser support for reolink package and hikvision alarm ## Type of change - [ ] Dependency upgrade - [ ] Bugfix (non-breaking change which fixes an issue) - [ ] New integration (thank you!) - [X] New feature (which adds functionality to an existing integration) - [ ] Deprecation (breaking change to happen in the future) - [ ] Breaking change (fix/feature causing existing functionality to break) - [ ] Code quality improvements to existing code or addition of tests ## Additional information - This PR fixes or closes issue: fixes #140585 - This PR is related to issue: … Excerpt saved from GitHub on 2026-10-23. | PR #140669 · 2025-03 | |
| Sricam camera | Works Local | Cameras without SnapshotUri fixedSaved copyFix Onvif Camera that does not have SnapshotUri such as Sricam ([@Minims] - [#33902]) ([onvif docs]) - Make homekit aware of DEVICE_CLASS_GATE ([@bdraco] - [#33936]) ([homekit docs]) - Fix powerwall units (kW) ([@bdraco] - [#33954]) ([powerwall docs]) - Fix turning off/on light groups in homekit ([@Knapoc] - [#33965]) ([homekit docs]) - Update pyipp to 0.9.2 ([@ctalkington] - [#33967]) ([ipp docs]) - Handle 304 http responses in nexia ([@bdraco] - [#33972]) ([nexia docs]) - Fix shutdown timeout and make it upstream with Supervisor ([@pvizeli] - [#33973]) - Cleanup ZHA group entity lifecycle … Excerpt saved from GitHub on 2026-10-23. | PR #33985 · 2020-04 | |
| TP-Link cameras person/vehicle detection | Works Local | Person and vehicle events parsedSaved copyProposed change Add parser support for tp-link person and vehicle detection. ## Type of change - [ ] Dependency upgrade - [ ] Bugfix (non-breaking change which fixes an issue) - [ ] New integration (thank you!) - [X] New feature (which adds functionality to an e Excerpt saved from GitHub on 2026-10-23. | PR #130769 · 2024-11 | |
| TP-Link Tapo C200 camera | Works Local | Motion events failed on newer firmware; fixed, issue closedSaved copyWorking firmware table : https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/issues/312#issue-1664283878 ### The problem Hello. I have 2 different cameras: 1 C200 running on 1.3.5 Build 230307 Rel.6847n(4555) contains string 'hol' in it's name 1 C210 running on 1.3.0 Build 220830 Rel.69909n(4555) contains string 'living' in it's name For some time, the motion sensor from C200 is not working. Usually when I had this issue, it was fixed after a restart of HA or reboot of the camera. The C210 one is still working as expected. I have enabled the debug on the two entities and got the attached … Excerpt saved from GitHub on 2026-10-23. | Issue #91661 · 2023-04 | |
| TP-Link Tapo C210 camera | Works Local | Motion events failed on fw 1.3.3; pull-point fix workedSaved copyWorking firmware table : https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/issues/312#issue-1664283878 ### The problem Hello. I have 2 different cameras: 1 C200 running on 1.3.5 Build 230307 Rel.6847n(4555) contains string 'hol' in it's name 1 C210 running on 1.3.0 Build 220830 Rel.69909n(4555) contains string 'living' in it's name For some time, the motion sensor from C200 is not working. Usually when I had this issue, it was fixed after a restart of HA or reboot of the camera. The C210 one is still working as expected. I have enabled the debug on the two entities and got the attached … Excerpt saved from GitHub on 2026-10-23. | Issue #91661 · 2023-04 | |
| TP-Link VIGI PoE cameras | Works Local | ONVIF integration exposes motion sensors; also Reolink via ONVIFSaved copyMy setup goes like this: * PoE cameras with ONVIF capabilities and added those cameras using the ONVIF HA integration if you need it's motion sensors exposed as entities. Reolink has ONVIF, I use TP-Link VIGI which also has ONVIF. Disabled it's camera entities. * For NVR, AgentDVR (freemium, running on a Debian VM) which I added as a Home Assistant Integration. Camera feed (which is smooth on LAN access) and arming controls are exposed to HA. They will recommend Frigate, but I don't have any experience using it. * PoE cameras and AgentDVR are on an internet-blocked VLAN. I did this just to … Excerpt saved from the Arctic Shift Reddit archive on 2026-10-23. | Reddit comment · 2024-05 | |
| Hikvision DS-7216HGHI-E1 DVR | Partly works Local | Old firmware has bad HTTP, logs errors; update firmwareSaved copyHi @bdraco Yes I have 2 hikvision dvr the one is DS-7216HGHI-E1 firmware V3.4.1 build 160325 and the config for every camera is as follow platform: generic name: "Kombuis" still_image_url: "http://192.168.xx.xx:8080/ISAPI/Streaming/channels/802/picture" stream_source: "rtsp://user:[email protected]:554/Streaming/Channels/801" verify_ssl: false username: !secret hik_username password: !secret hik_password authentication: digest the 2nd one is DS-7216HQHI-K2 firmware V4.21.100 build 200307 using the ONVIF integration If I can help to debug let me know Excerpt saved from GitHub on 2026-10-23. | Issue #92892 · 2023-05 | |
| ONVIF camera | Partly works | Partly in Home Camera should be paired in accessory mode, else shows as presence sensor | Camera exposed to HomeKit needs accessory mode pairingSaved copy… the only thing I did it was installing the HomeKit integration. Under Notifications, I found two HomeKit codes, one for the HASS Bridge and another for ONVIF S camera. HomeKit showed both devices and allowed me to enter both codes and the ONVIF S worked perfectly until it does didn’t. Deleting the camera and adding it back, it showed up as a presence device. It initially went so smooth that I didn’t think configuration was required. I will have a look at the documentation. Thanks, Paul > On May 23, 2021, at 6:28 AM, J. Nick Koston *@*.*> wrote: > > > Are you setting up the camera in … Excerpt saved from GitHub on 2026-10-23. | Issue #50950 · 2021-05 |
| ONVIF camera IP2M-841B | Partly works | Partly in Home Works on iPhone and Mac; Apple Watch stream shows Unavailable | Maintainer: Apple Watch not yet supported, needs multiple streams or lower resolutionsSaved copyThe problem I have an onvif camera configured via the Home Assistant UI (Model: IP2M-841B) and shared via the HomeKit integration, and so far, it works great from my MacBook Pro and iPhone! However, every time I try to view the stream from my Apple Watch, it almost always immediately says "Unavailable". The preview image, however, does always get updated. ## Environment - Home Assistant Core release with the issue: 0.110.1 - Last working Home Assistant Core release (if known): N/A - Operating environment (Home Assistant/Supervised/Docker/venv): `venv` in FreeBSD - Integration causing this … Excerpt saved from GitHub on 2026-10-23. | Issue #35992 · 2020-05 |
| Generic ONVIF NVR/XVR | Not working Local | Setup failed after 2025.7.1 for NVRs/XVRs; closed staleSaved copyThe problem Hi, after latest update I always recive this message error: Registratore: homeassistant Fonte: components/onvif/event.py:377 Prima occorrenza: 09:50:21 (6496 occorrenze) Ultimo accesso: 10:17:26 Error doing job: Task exception was never retrieved (None) Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/onvif/event.py", line 377, in _async_pull_messages response = await service.PullMessages( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... ... ) ^ File "/usr/local/lib/python3.13/site-packages/zeep/proxy.py", line 64, in call return await … Excerpt saved from GitHub on 2026-10-23. | Issue #148392 · 2025-07 | |
| ONVIF DeviceIO relay outputs | Requested Local | Relay output PR closed without mergeSaved copyDescription This PR adds support for ONVIF DeviceIO relay outputs, enabling Home Assistant to detect and control camera relay-connected devices like IR LEDs and IR cut filters. ## What this PR does - Relay Detection: Automatically discovers relay outputs via DeviceIO `GetRelayOutputs` - Switch Entities: Creates switch entities for each detected relay - Relay Control: Enables on/off control via `SetRelayOutputState` ## Use Cases Control camera relay-connected devices: - IR LEDs (night vision illumination) - IR Cut Filter (day/night mode switching) - External lights, sirens, or other … Excerpt saved from GitHub on 2026-10-23. | PR #161480 · 2026-01 |
Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.
How it connects
Local push
Talks to the device on your network, and the device tells Home Assistant the moment something changes.
Found automatically over
- DHCP
Details
| Installs (analytics) | 29,173 (4.12%) |
|---|---|
| Added in | Home Assistant 0.47 |
| Set up in the UI | Yes |
| Maintainers | @jterrace |
Devices listed in its documentation
- Topic(s)
- Motion alarm
- Field detection
- Cell motion detection
- Human shape detection
- Motion region detector
- Detected sound
- Digital input
- Relay triggered
- Image too blurry
- Image too dark
- Image too bright
- Global scene change
- Tamper detector
- Storage failure
- Recording job state
- Processor usage
- Last reboot
- Last reset
- Last Clock Synchronization
- Last Backup
In ReReHome
Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.
Bridges get their own settings page listing the accessories behind them.