* Fix onvif cameras that cannot parse relative time
The spec requires that the camera can parse relative or absolute timestamps
However there are many cameras that cannot parse time correctly.
Much of the event code has been offloaded to the library and
support to determine if the camera has broken time and switch
to absolute timestamps is now built into the library
* adjust verison
* fixes
* bump
* bump
* bump
* more fixes
* preen
* fix resume
* one more fix
* fix race in webhook setup
* bump to 3.1.3 which has more fixes for broken camera firmwares
* bump 3.1.4 for more fixes
* fix
* fix comment
* bump
* fix url limit
* bump
* more fixes
* old hik uses -s
We now let the PullPoint subscription expire instead of explicitly
unsubscribing when pausing the subscription. We will still unsubscribe
it if Home Assistant is shutdown or the integration is reloaded
Some cameras will cancel ALL subscriptions when we do an unsubscribe
so we want to let the PullPoint subscription expire instead
of explicitly cancelling it.
* Handle AttributeError from wrong port in ONVIF config flow
fixes
```
2023-04-29 19:17:22.289 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
resp = await request_handler(request)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/auth.py", line 235, in auth_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/view.py", line 146, in handle
result = await result
File "/Users/bdraco/home-assistant/homeassistant/components/config/config_entries.py", line 180, in post
return await super().post(request, flow_id)
File "/Users/bdraco/home-assistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
File "/Users/bdraco/home-assistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 271, in async_configure
result = await self._async_handle_step(
File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 367, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
File "/Users/bdraco/home-assistant/homeassistant/components/onvif/config_flow.py", line 233, in async_step_configure
errors, description_placeholders = await self.async_setup_profiles()
File "/Users/bdraco/home-assistant/homeassistant/components/onvif/config_flow.py", line 277, in async_setup_profiles
await device.update_xaddrs()
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/onvif/client.py", line 433, in update_xaddrs
capabilities = await devicemgmt.GetCapabilities({"Category": "All"})
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/proxy.py", line 64, in __call__
return await self._proxy._binding.send_async(
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 164, in send_async
return self.process_reply(client, operation_obj, response)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 204, in process_reply
doc = parse_xml(content, self.transport, settings=client.settings)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/loader.py", line 51, in parse_xml
docinfo = elementtree.getroottree().docinfo
AttributeError: NoneType object has no attribute getroottree
```
* port
* Revert "port"
This reverts commit 4693f3f33a.
* misfire
* Cleanup onvif topic before lookup
Some devices will append . and / to the path. We need
to strip it off to find the correct matcher
fixes#51870
* Update homeassistant/components/onvif/event.py
* Update homeassistant/components/onvif/event.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add dhcp ip update support to onvif
If we know the mac address of the camera we can
update the config entry when the ip changes
* fix lookup
* coverage
* remove unreachable
* remove unreachable
* remove unreachable