FalkTannhaeuser / python-onvif-zeep

ONVIF Client Implementation in Python 2+3 (using https://github.com/mvantellingen/python-zeep instead of suds as SOAP client)
MIT License
433 stars 144 forks source link

Error connecting to ip camera #6

Open alexbottoni opened 7 years ago

alexbottoni commented 7 years ago

I'm unable to talk with my ip camera using the CLI tool of python-onvif-zeep:

$ python3 onvif/cli.py -u 'admin' -a 'pwd' --host '192.168.1.10' --port 5000 ONVIF >>> cmd devicemgmt GetWsdlUrl False: Unknown error: ('Connection aborted.', BadStatusLine("''",)) ONVIF >>> cmd devicemgmt GetHostname False: Unknown error: ('Connection aborted.', BadStatusLine("''",))

Please note that at the moment of this test, the ip camera was working, was sending its video stream to its Android app and was accepting PTZ commands from it.

The ip camera used for this test is a Sricam SP017:

http://www.sricam.com/product/id/43125fd002d2427aae38f00420679b24.html

I'm able to use this small and cheap camera as a ONVIF-compliant camera using Onvifer on Android so it seems to be somehow compliant with the ONVIF standard.

Does anybody have any idea about the possible source of this error?

BTW: I tried to install python-onvif-zeep both cloning its GIT repository and installing it with PIP on my Linux Mint 17.1 with Python 2.7 and Python 3.4. In both cases, if I follow the instructions contained in the README, it does not work. I have to launch the cli.py in the way you can see in the example above to access the CLI interface.

jmiguel99 commented 6 years ago

Hello, did you solve this problem? I'm getting a similar error with the same hardware, I'm trying to connect but it says the connection was closed before getting a response:

File "/DeepPoint/env3/lib/python3.6/site-packages/onvif/client.py", line 26, in wrapped raise ONVIFError(err) Exception: Unknown error: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

gusarg81 commented 4 years ago

Hi, I have the same problem with this camera. One exception comes with creation of ONVIFCamera instance, partially solved with a try, except (3 times max):

onvif.exceptions.ONVIFError: Unknown error: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

Maybe connection problems?

Another exceptions comes (when passing the first one with success), when trying to exec commands like ptz:

onvif.exceptions.ONVIFError: Unknown error: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

Any idea?

ambr89 commented 3 years ago

@gusarg81 have you resolved 104 Connection reset by peer error?

gusarg81 commented 3 years ago

@ambr89 Nope, I gave up.

sespivak commented 2 years ago

Hi! I have similar problem with 50X10_32M cameras:

# onvif-cli --host 192.168.1.10 --port 8899 -u 'admin' -a '' --wsdl /etc/onvif/wsdl/ ONVIF >>> cmd devicemgmt GetHostname False: Unknown error: HTTPConnectionPool(host='192.168.1.10', port=8899): Max retries exceeded with url: /onvif/device_service (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x731fd4f0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Traffic analysis with Wireshark shows that camera hangs up after request to /onvif/Events. I found line in client.py that should create event pullpoint at camera interface init. When this line commented out, all works without errors.

Here is pull request: https://github.com/FalkTannhaeuser/python-onvif-zeep/pull/91

To disable event pullpoint create on camera init, new parameter of ONVIFCamera event_pullpoint should be set to False.

Example: ip_cam = ONVIFCamera( host, port, user, password, WSDL_PATH, event_pullpoint=False, )

y-runwal commented 1 month ago

Error performing zoom: Unknown error: HTTPConnectionPool(host='192.200.1.2', port=8080): Max retries exceeded with url: /onvif/PTZ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xb2c81d10>: Failed to establish a new connection: [Errno 113] No route to host'))

How can I increase the maximum retries?