New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ONVIF Integration: Tapo C320WS Motion Detection sensor not appearing #85902
Comments
Hey there @hunterjm, mind taking a look at this issue as it has been labeled with an integration ( Code owner commandsCode owners of
(message by CodeOwnersMention) onvif documentation |
I have exactly same issue. Camera Homeassistant |
same issue with different model: Camera Homeassistant |
Hi, The exception indicates that the camera responds with a generic error code: It would help if you would enable extra logging. Especially the "zeep.transports" will help to find the reason for the error. The logging of "zeep.transports" will result in the communication with the camera to be logged. In the log you should be able to find strings related to "Capabilities".
My camera does support PullPoint-subscription and i can see this snippet in the Capability-response of my camera:
Hope this helps... |
Hi, In my case (Tapo C320WS, version 1.0.4 Build 221031 Rel.40874n) it looks like the camera reports to support PullPoint:
But for me the method
Full |
I couldn't get this to work either, and re-adding the cameras didn't work. Today, it sprung to mind that I disabled Motion detection on the outside cameras via the Tapo app last week. I did this because my NAS runs Surveillance Station, which not only allows you to define zones / areas of interest, it has the ability to detect motion in those zones / areas. To verify that (me turning off motion detection on the camera using the Tapo app) caused the problem, I just enabled motion detection in the app for one of the outside cameras. And, lo and behold, the Cell Motion detection sensor instantly became available again in the ONVIF integration: I am still missing the PTZ controls via ONVIF, which is why I reverted to the custom component for Tapo Cameras. |
Camera: C320WS Homeassistant Same problem with #85902 (comment) Capabilities snippet
And the error
|
i have this problem.. after I disabled motion on camera it won't work in HA even after Enabling it again. all that time the tapo App is receiving the motion notifications though |
Unfortunately, nothing changed with 2023.3.5. |
I'm having the same issues with my 320ws cameras as well. I just installed them hoping to replace my current ring doorbell camera, but I need the motion sensor to work. If you need someone to provide logs or anything, I'm happy to do so. |
release is pending fixes #83524 fixes #45513 fixes #85902 changes hunterjm/python-onvif-zeep-async#11 hunterjm/python-onvif-zeep-async#12
Thanks for your effort! Is it just replacing the client.py? |
You need onvif-zeep-async 1.2.3 which isn't released yet |
Fix is now included in https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/releases/tag/5.0.0.beta.7. Thank you! |
@AndreiArdelean1 reported that the issue is still not fixed in onvif-zeep-async 1.2.3. |
I encountered the same issue with a Tapo C225 and discovered that the request fails if no It works for me if I change https://github.com/hunterjm/python-onvif-zeep-async/blob/async/onvif/client.py#L350 to pullpoint = await events.CreatePullPointSubscription(
{"InitialTerminationTime": "PT2H"}
) I'm willing to PR this but I don't know what a sensible default value should be. |
Fix for TP-Tapo Camera, see repports in home-assistant/core#85902 (comment)
Is it the same error? I have tried with Tapo C500, with the lastest HA version (2023.4.0), I have not the motion detection binary sensor too.
|
@pierrebateau: How can i test this? Is there a file where i can add these lines of code? i can't find the file with 'find -iname client.py' on my HA @bdraco: should we re-open this ticket? The new Version of onvif hasn't fix the error. |
Reopened it. Works for me now with the latest firmware in the camera. someone who can replicate will need to pick it up and fix it as I no longer have a valid test case |
@thomasramm It works for me if I change the line in /usr/local/lib/python3.10/site-packages/onvif/client.py |
i don't have the python3.10 folder, if i try to go for this folder in ha terminal. in the terminal it shows me core-ssh$ i guess im in the wrong docker conatiner. So i tried to connect to the core os via this tutorial: https://developers.home-assistant.io/docs/operating-system/debugging/. after i connected to the basic os, i found the script in the folder: /mnt/data/docker/overlay2/b725a088fa592f72edc7163b25228033fa1994580b2b006a8b897eed48cde389/diff/usr/local/lib/python3.10/site-packages/onvif |
From JurajNyiri/HomeAssistant-Tapo-Control#308 Errors log:
|
Today, I made a clean fresh install of HA on RPI for testing. Only with needed Add-on and Integrations: Hardware
Installation
HA configuration changes from default
There is an error 500 in the log if onvif try to register the motion sensor event. For further testing i do the following:
maybe the attached log with zeep.transport debugging help for further investigation (after my code change). It seems that there is no error message on registration, but still no motion message is recived by HA (I don't know how a good log looks like, but i can't find error or warn messages) First Log:part of the first log after clear installation:
Second Logsecond log after changing the onvif component:
|
These camera run out of subscriptions quickly. #91485 should help with that |
The problem
When adding a Tapo C320WS to HA via ONVIF integration or Tapo custom component, which uses ONVIF for motion detection, the motion detection binary sensor does not appear. A Tapo C110 works flawlessly.
What version of Home Assistant Core has the issue?
core-2023.1.1
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant Container
Integration causing the issue
ONVIF
Link to integration documentation on our website
https://www.home-assistant.io/integrations/onvif/
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
Logger: custom_components.tapo_control Source: components/onvif/event.py:82 Integration: Tapo: Kamerasteuerung (documentation, issues) First occurred: 13. Januar 2023 um 14:56:20 (2520 occurrences) Last logged: 10:03:48 Unexpected error fetching Tapo resource status data: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 192.168.20.108:2020\x00\x00Accept\x00 /\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZHTTP/1.1 500 Internal Server Error') Unexpected error fetching Tapo resource status data: All connection attempts failed Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions yield File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 188, in _receive_event event = self._h11_state.next_event() File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 487, in next_event exc._reraise_as_remote_protocol_error() File "/usr/local/lib/python3.10/site-packages/h11/_util.py", line 77, in _reraise_as_remote_protocol_error raise self File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 469, in next_event event = self._extract_next_receive_event() File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 411, in _extract_next_receive_event event = self._reader(self._receive_buffer) File "/usr/local/lib/python3.10/site-packages/h11/_readers.py", line 104, in maybe_read_from_SEND_RESPONSE_server matches = validate(status_line_re, lines[0], "illegal status line: {!r}", lines[0]) File "/usr/local/lib/python3.10/site-packages/h11/_util.py", line 91, in validate raise LocalProtocolError(msg) h11._util.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 192.168.20.108:2020\x00\x00Accept\x00 /\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZHTTP/1.1 500 Internal Server Error') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions yield File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request resp = await self._pool.handle_async_request(req) File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request raise exc File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request response = await connection.handle_async_request(request) File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request return await self._connection.handle_async_request(request) File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 112, in handle_async_request raise exc File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 91, in handle_async_request ) = await self._receive_response_headers(**kwargs) File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 155, in _receive_response_headers event = await self._receive_event(timeout=timeout) File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 187, in _receive_event with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions raise to_exc(exc) httpcore.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 192.168.20.108:2020\x00\x00Accept\x00 /\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZHTTP/1.1 500 Internal Server Error') The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 225, in _async_refresh self.data = await self._async_update_data() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 181, in _async_update_data return await self.update_method() File "/config/custom_components/tapo_control/init.py", line 210, in async_update_data await setupOnvif(hass, entry) File "/config/custom_components/tapo_control/utils.py", line 431, in setupOnvif hass.data[DOMAIN][entry.entry_id]["eventsSetup"] = await setupEvents( File "/config/custom_components/tapo_control/utils.py", line 441, in setupEvents if await events.async_start(): File "/usr/src/homeassistant/homeassistant/components/onvif/event.py", line 82, in async_start if await self.device.create_pullpoint_subscription(): File "/usr/local/lib/python3.10/site-packages/onvif/client.py", line 311, in create_pullpoint_subscription pullpoint = await events.CreatePullPointSubscription() File "/usr/local/lib/python3.10/site-packages/zeep/proxy.py", line 64, in call return await self._proxy._binding.send_async( File "/usr/local/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 156, in send_async response = await client.transport.post_xml( File "/usr/local/lib/python3.10/site-packages/zeep/transports.py", line 235, in post_xml response = await self.post(address, message, headers) File "/usr/local/lib/python3.10/site-packages/zeep/transports.py", line 220, in post response = await self.client.post( File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1848, in post return await self.request( File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send response = await self._send_handling_auth( File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth response = await self._send_handling_redirects( File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects response = await self._send_single_request(request) File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request response = await transport.handle_async_request(request) File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request with map_httpcore_exceptions(): File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions raise mapped_exc(message) from exc httpx.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 192.168.20.108:2020\x00\x00Accept\x00 /\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZHTTP/1.1 500 Internal Server Error')
Additional information
No response
The text was updated successfully, but these errors were encountered: