Skip to content
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

[Camera Support]: IPD-E2A5L18 Strange Onvif error #7218

Closed
exalented opened this issue Jul 19, 2023 · 17 comments
Closed

[Camera Support]: IPD-E2A5L18 Strange Onvif error #7218

exalented opened this issue Jul 19, 2023 · 17 comments

Comments

@exalented
Copy link

exalented commented Jul 19, 2023

Describe the problem you are having

  1. I am trying to get PTZ working
  2. Video streams work fine.
  3. My camera is on a different subnet (however I've used a tcp/udp proxy as well as iptables to communicate over a VPN)
  4. Frigate hangs the webui when I try to use ptz buttons and throws this weird error from the docker container regarding OnvifVersion?
  5. Onvier on Android works fine for controlling PTZ.
  6. I wrote my own 'pan.sh' which POSTs to 'http://'$addr':'$port'/form/setPTZCfg' in order to achieve PTZ.
  7. Behaves just like this: https://www.reddit.com/r/ShinobiCCTV/comments/qxmv9e/ptz_control_soapform_data_support/

Version(s)

0.13.0-83006ee
image: ghcr.io/blakeblackshear/frigate:dev-83006ee-tensorrt
image: ghcr.io/blakeblackshear/frigate:0.13.0-beta1

Relevant Frigate config file keys

onvif:                                                        
    host: 10.66.66.20                                       
    port: 8999                                                
    user: admin                                            
    password: ""

logger:                                                                              # 
    Optional: default log level (default: shown below)                               
    default: debug                                                                     # Optional: module by module log level configuration                               
    logs:                                                                                
        frigate.mqtt: debug

Relevant log output

frigate  | time time  [time] zeep.xsd.schema
DEBUG   : register_type('{http://www.onvif.org/ver10/schema}OnvifVersion', <zeep.xsd.dynamic_types.OnvifVersion object at 0x7f4830c71bb0>)

FFprobe output from your camera

[{"return_code":0,"stderr":"","stdout":{"programs":[],"streams":[{"avg_frame_rate":"25/1","codec_long_name":"H.264/AVC/MPEG-4AVC/MPEG-4part10","height":480,"width":640},{"avg_frame_rate":"0/0","codec_long_name":"AAC(AdvancedAudioCoding)"}]}}]

Frigate stats

{"IPD-E2A5L18":{"camera_fps":5.0,"capture_pid":754,"detection_enabled":1,"detection_fps":0.0,"ffmpeg_pid":759,"pid":751,"process_fps":5.0,"skipped_fps":0.0},"ELP-1881":{"camera_fps":0.0,"capture_pid":757,"detection_enabled":1,"detection_fps":0.0,"ffmpeg_pid":1406,"pid":752,"process_fps":0.0,"skipped_fps":0.0},"cpu_usages":{"%Cpu(s):":{"cpu":"id,","mem":"0.1"},"1":{"cpu":"0.0","mem":"0.0"},"110":{"cpu":"0.0","mem":"0.1"},"139":{"cpu":"0.0","mem":"0.0"},"1394":{"cpu":"0.0","mem":"0.0"},"140":{"cpu":"0.0","mem":"0.0"},"141":{"cpu":"0.0","mem":"0.0"},"1411":{"cpu":"0.0","mem":"0.0"},"1413":{"cpu":"0.0","mem":"0.0"},"142":{"cpu":"0.0","mem":"0.0"},"15":{"cpu":"0.0","mem":"0.0"},"155":{"cpu":"0.0","mem":"0.0"},"16":{"cpu":"0.0","mem":"0.0"},"177":{"cpu":"0.0","mem":"0.0"},"211":{"cpu":"0.0","mem":"0.0"},"24":{"cpu":"0.0","mem":"0.0"},"247":{"cpu":"0.0","mem":"0.0"},"25":{"cpu":"0.0","mem":"0.0"},"26":{"cpu":"0.0","mem":"0.0"},"27":{"cpu":"0.0","mem":"0.0"},"28":{"cpu":"0.0","mem":"0.0"},"29":{"cpu":"0.0","mem":"0.0"},"292":{"cpu":"0.0","mem":"0.0"},"30":{"cpu":"0.0","mem":"0.0"},"31":{"cpu":"0.0","mem":"0.0"},"32":{"cpu":"0.0","mem":"0.0"},"341":{"cpu":"0.0","mem":"0.0"},"378":{"cpu":"0.0","mem":"0.0"},"41":{"cpu":"0.0","mem":"0.0"},"415":{"cpu":"0.0","mem":"0.0"},"42":{"cpu":"0.0","mem":"0.0"},"436":{"cpu":"0.0","mem":"0.0"},"458":{"cpu":"0.0","mem":"0.0"},"495":{"cpu":"0.0","mem":"0.0"},"531":{"cpu":"0.0","mem":"0.0"},"720":{"cpu":"0.0","mem":"1.1"},"732":{"cpu":"0.0","mem":"1.3"},"741":{"cpu":"0.0","mem":"0.1"},"742":{"cpu":"0.0","mem":"1.3"},"747":{"cpu":"0.0","mem":"1.3"},"750":{"cpu":"0.0","mem":"0.3"},"751":{"cpu":"0.0","mem":"1.2"},"752":{"cpu":"0.0","mem":"1.2"},"753":{"cpu":"0.0","mem":"0.1"},"754":{"cpu":"0.3","mem":"1.2"},"757":{"cpu":"0.0","mem":"1.2"},"759":{"cpu":"3.7","mem":"0.2"},"762":{"cpu":"0.0","mem":"0.1"},"80":{"cpu":"0.0","mem":"0.0"},"81":{"cpu":"0.0","mem":"0.0"},"82":{"cpu":"0.0","mem":"0.0"},"89":{"cpu":"0.0","mem":"0.1"},"97":{"cpu":"0.0","mem":"0.0"},"98":{"cpu":"0.0","mem":"2.7"},"MiB":{"cpu":"6705.3","mem":"avail"},"PID":{"cpu":"%CPU","mem":"%MEM"},"Tasks:":{"cpu":"stopped,","mem":"0"},"top":{"cpu":"users,","mem":"load"}},"detection_fps":0.0,"detectors":{"coral":{"detection_start":0.0,"inference_speed":24.79,"pid":742}},"service":{"last_updated":1689751385,"latest_version":"0.12.1","storage":{"/dev/shm":{"free":64.7,"mount_type":"tmpfs","total":67.1,"used":2.4},"/media/frigate/clips":{"free":99472.3,"mount_type":"ext4","total":983206.4,"used":833715.0},"/media/frigate/recordings":{"free":99472.3,"mount_type":"ext4","total":983206.4,"used":833715.0},"/tmp/cache":{"free":1000.0,"mount_type":"tmpfs","total":1000.0,"used":0.0}},"temperatures":{},"uptime":718,"version":"0.13.0-83006ee"}}

Operating system

Other Linux

Install method

Docker Compose

Coral version

USB

Network connection

Wired

Camera make and model

Jidtech IPD-E2A5L18 PTZ POE 20X (don't buy this camera)

Any other information that may be helpful

No response

@NickM-27
Copy link
Sponsor Collaborator

The onvif library doesn't like something about the network setup or the camera, the error doesn't really give much to go off of

@exalented
Copy link
Author

exalented commented Jul 19, 2023

I've been looking for a sort of command line tool for a while to further debug since the error is too ambiguous. Do you have a suggestion as to what might work to see which line causes the error?

@NickM-27
Copy link
Sponsor Collaborator

If the failure doesn't occur until you press a button then the failure will be when the move action is sent.

@exalented
Copy link
Author

exalented commented Jul 19, 2023

This is not the case. The buttons don't show and I get an infinite spinner under the control panel.

@NickM-27
Copy link
Sponsor Collaborator

Okay, that seems inconsistent with what was said previously

Frigate hangs the webui when I try to use ptz buttons and throws this weird error from the docker container regarding OnvifVersion?

In any case, the onvif zeep library could be used in python to follow the code in ptz/coordinator.py

@exalented
Copy link
Author

I apologize. I was trying to convey the msg that the buttons don't yet exist.

@exalented
Copy link
Author

exalented commented Jul 19, 2023

Sorry, but where is coordinator.py?

Here's some evidence of the camera responding correctly event though it's on a different network.

zeep.transports                DEBUG   : HTTP Post to http://10.0.0.5:8999/onvif/device_service:
zeep.transports                DEBUG   : HTTP Response from http://10.0.0.5:8999/onvif/device_service (status: 200):

Here's what I've gathered so far following frigate/ptz/onvif.py using this tool (installed through AUR) https://github.com/FalkTannhaeuser/python-onvif-zeep:

$ onvif-cli --user 'admin' --password 'password' --host '10.0.0.5' --port 8999 --wsdl /usr/lib/python3.11/site-packages/wsdl/ devicemgmt GetWsdlUrl
True: www.onvif.org
$ onvif-cli ... devicemgmt GetHostname
True: OrderedDict([('FromDHCP', False), ('Name', None), ('Extension', None), ('_attr_1', None)])
$ onvif-cli ... devicemgmt GetDeviceInformation
True: OrderedDict([('Manufacturer', None), ('Model', 'IPD-E2A5L18'), ('FirmwareVersion', 'V1.04.11-190722'), ('SerialNumber', '071D3E46F324'), ('HardwareId', '1.0')])
$ onvif-cli ... devicemgmt GetCapabilities
True: OrderedDict([('Analytics', OrderedDict([('XAddr', 'http://192.168.0.254:8999/onvif/analytics_service'), ('RuleSupport', True), ('AnalyticsModuleSupport', True), ('_value_1', None), ('_attr_1', None)])), ('Device', OrderedDict([('XAddr', 'http://192.168.0.254:8999/onvif/device_service'), ('Network', OrderedDict([('IPFilter', False), ('ZeroConfiguration', False), ('IPVersion6', False), ('DynDNS', False), ('Extension', None), ('_attr_1', None)])), ('System', OrderedDict([('DiscoveryResolve', True), ('DiscoveryBye', True), ('RemoteDiscovery', False), ('SystemBackup', False), ('SystemLogging', True), ('FirmwareUpgrade', True), ('SupportedVersions', [OrderedDict([('Major', 2), ('Minor', 40)]), OrderedDict([('Major', 2), ('Minor', 20)]), OrderedDict([('Major', 2), ('Minor', 10)]), OrderedDict([('Major', 2), ('Minor', 0)])]), ('Extension', None), ('_attr_1', None)])), ('IO', OrderedDict([('InputConnectors', 1), ('RelayOutputs', 1), ('Extension', None), ('_attr_1', None)])), ('Security', OrderedDict([('TLS1.1', False), ('TLS1.2', False), ('OnboardKeyGeneration', False), ('AccessPolicyConfig', False), ('X.509Token', False), ('SAMLToken', False), ('KerberosToken', False), ('RELToken', False), ('_value_1', None), ('Extension', None), ('_attr_1', None)])), ('Extension', None), ('_attr_1', None)])), ('Events', OrderedDict([('XAddr', 'http://192.168.0.254:8999/onvif/event_service'), ('WSSubscriptionPolicySupport', True), ('WSPullPointSupport', True), ('WSPausableSubscriptionManagerInterfaceSupport', False), ('_value_1', None), ('_attr_1', None)])), ('Imaging', OrderedDict([('XAddr', 'http://192.168.0.254:8999/onvif/image_service'), ('_attr_1', None)])), ('Media', OrderedDict([('XAddr', 'http://192.168.0.254:8999/onvif/media_service'), ('StreamingCapabilities', OrderedDict([('RTPMulticast', True), ('RTP_TCP', True), ('RTP_RTSP_TCP', True), ('Extension', None), ('_attr_1', None)])), ('_value_1', [<Element {http://www.onvif.org/ver10/schema}Extension at 0x7fa0a4231000>]), ('Extension', None), ('_attr_1', None)])), ('PTZ', OrderedDict([('XAddr', 'http://192.168.0.254:8999/onvif/ptz_service'), ('_value_1', None), ('_attr_1', None)])), ('Extension', OrderedDict([('_value_1', [<Element {http://www.onvif.org/ver10/schema}DeviceIO at 0x7fa0a4233940>, <Element {http://www.onvif.org/ver10/schema}AnalyticsDevice at 0x7fa0a4233900>]), ('DeviceIO', None), ('Display', None), ('Recording', None), ('Search', None), ('Replay', None), ('Receiver', None), ('AnalyticsDevice', None), ('Extensions', None)])), ('_attr_1', None)])

", object_pairs_hook=OrderedDict https://stackoverflow.com/questions/6921699/can-i-get-json-to-load-into-an-ordereddict

@exalented exalented changed the title [Camera Support]: Strange Onvif error [Camera Support]: IPD-E2A5L18 Strange Onvif error Jul 19, 2023
@exalented
Copy link
Author

exalented commented Jul 19, 2023

Ok frigate is hanging here expecting information from :8999/onvif/media_service: https://github.com/blakeblackshear/frigate/blob/ab50d0b00623297f6d2e32b9add16925b670d85e/frigate/ptz.py#L216C60-L216C60

Traceback (most recent call last):
    File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 2529, in wsgi_app
      response = self.full_dispatch_request()
    File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 1825, in full_dispatch_request
      rv = self.handle_user_exception(e)
    File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 1823, in full_dispatch_request
      rv = self.dispatch_request()
    File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 1799, in dispatch_request
      return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
    File "/opt/frigate/frigate/http.py", line 1003, in camera_ptz_info
      return jsonify(current_app.onvif.get_camera_info(camera_name))
    File "/opt/frigate/frigate/ptz.py", line 217, in get_camera_info
      "features": self.cams[camera_name]["features"],
  KeyError: 'features'

The camera responds with Document Error: site or page not found ... Cannot open URL (404). Not sure what kind of information is supposed to be provided here that would end up in features

Onvier confirms that http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl#op.GetPresets is working properly

@NickM-27
Copy link
Sponsor Collaborator

The media service provides the token needed to request PTZ and other information. It sounds like your camera does not correctly conform to the Onvif standard

@exalented
Copy link
Author

exalented commented Jul 19, 2023

Tokens like the following seem to be exposed here http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl#op.GetProfiles:
VIDEO_CH0
AUDIOSRC_CH0
H264_MAJOR_CH0
H264_MINOR_CH0
AUDIOENC_CH0
VideoAnalyticsToken
PTZCFG_CH0
METADATA_CH0
MainStream
SubStream

Do you see a way of this being implemented? Instead of breaking the Onvif standard could frigate make it possible to control PTZ with a 'different service' (example: hikvison)

@NickM-27
Copy link
Sponsor Collaborator

Tokens like the following seem to be exposed here

No, those are not the tokens I am referring to. The camera returns a specific token that it knows. For example my amcrest camera returns 00000 as the token for PTZConfiguration.token.

Do you see a way of this being implemented? Instead of breaking the Onvif standard could frigate make it possible to control PTZ with a 'different service' (example: hikvison)

I don't think it is worth the effort to support proprietary standards. also not sure what you mean about hikvision, their cameras implement onvif per the standard from what I have seen.

@exalented
Copy link
Author

not sure what you mean about hikvision

Forgive me. I'm not as knowledgeable as you when it comes to these standards. What I meant is some sort of way to exec a command from the command line. I understand this is a pretty hacky solution. I made this pan.sh because that was the intended direction of Zoneminder. I would understand if you disagreed with this direction for the project.

#7228

I'll give this a test drive.

@exalented
Copy link
Author

exalented commented Jul 19, 2023

Not sure where to put this.
I built the handle-ptz-error branch into a docker image. Seems like dev branch work still needs attending. Perhaps I'll wait for CI to build an image?

docker/rootfs/usr/local/go2rtc/create_config.py

frigate-handle-ptz-error  | [INFO] Preparing go2rtc config...
frigate-handle-ptz-error  | Traceback (most recent call last):
frigate-handle-ptz-error  |   File "/usr/local/go2rtc/create_config.py", line 10, in <module>
frigate-handle-ptz-error  |     from frigate.const import BIRDSEYE_PIPE  # noqa: E402
frigate-handle-ptz-error  | ModuleNotFoundError: No module named 'frigate'
frigate-handle-ptz-error  | time  [INFO] The go2rtc service exited with code 1 (by signal 0)

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Aug 19, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Aug 22, 2023
@exalented
Copy link
Author

I tried the 0.13 Beta 1 with the docker image. The webui no longer hangs and I can click a different camera and whatnot, but PTZ is still not working.

Frigate api:
$ curl -sL "http://10.0.0.10:5000/api/meme/ptz/info"

<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.25.2</center>
</body>
</html>

Here is how the camera is responding:

frigate  | ~~~ ~~  zeep.transports                DEBUG   : HTTP Post to http://10.66.66.20:8999/onvif/device_service:
frigate  | ~~~ ~~  <?xml version='1.0' encoding='utf-8'?>
frigate  | ~~~ ~~  <soap-env:Envelope xmlns:soap-env="http://www.w3.org/2003/05/soap-envelope"><soap-env:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:Usern
ameToken><wsse:Username>admin</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">jZyyIoZC7YwKMBf6SN+tyI3qq5c=</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-ope
n.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">ox6Rg7TbuyM4XsC9Jia4Ew==</wsse:Nonce><wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2023-09-15T01:33:52+00:00</wsu:Creat
ed></wsse:UsernameToken></wsse:Security></soap-env:Header><soap-env:Body><ns0:GetCapabilities xmlns:ns0="http://www.onvif.org/ver10/device/wsdl"><ns0:Category>All</ns0:Category></ns0:GetCapabilities></soap-env:Body></soap-env:Envelope>
frigate  | ~~~ ~~ urllib3.connectionpool         DEBUG   : Starting new HTTP connection (1): 10.66.66.20:8999
frigate  | ~~~ ~~ urllib3.connectionpool         DEBUG   : http://10.66.66.20:8999 "POST /onvif/device_service HTTP/1.1" 200 5404
frigate  | ~~~ ~~ zeep.transports                DEBUG   : HTTP Response from http://10.66.66.20:8999/onvif/device_service (status: 200):
frigate  | ~~~ ~~  <?xml version="1.0" encoding="UTF-8"?>
frigate  | ~~~ ~~  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.or
g/2001/XMLSchema" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:c14n="http://www.w3.org/20
01/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xmime5="http://www.w3.org/2005/05/xmlmime" xmlns:xop="http://www.w3.org/2004/08/xop/incl
ude" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wsrf="http://docs.oasis-open.org/wsrf/r-
2" xmlns:cpp="http://www.onvif.org/ver10/events/wsdl/CreatePullPointBinding" xmlns:dl="http://www.onvif.org/ver10/network/wsdl/DiscoveryLookupBinding" xmlns:eve="http://www.onvif.org/ver10/events/wsdl/EventBinding" xmlns:nc="http://www.onvif.org/ver10/even
ts/wsdl/NotificationConsumerBinding" xmlns:np="http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding" xmlns:pp="http://www.onvif.org/ver10/events/wsdl/PullPointBinding" xmlns:pps="http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBin
ding" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:psm="http://www.onvif.org/ver10/events/wsdl/PausableSubscriptionManagerBinding" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:rd="http://www.onvif.org/ver10/network/wsdl/RemoteDiscovery
Binding" xmlns:dn="http://www.onvif.org/ver10/network/wsdl" xmlns:sm="http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tmd="http
://www.onvif.org/ver10/deviceIO/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:bf2="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ter="http://www.o
nvif.org/ver10/error" xmlns:tan="http://www.onvif.org/ver20/analytics/wsdl"><SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body><tds:GetCapabilitiesResponse><tds:Capabilities><tt:Analytics><tt:XAddr>http://192.168.0.254:8999/onvif/analytics_service</tt:XAddr
><tt:RuleSupport>true</tt:RuleSupport><tt:AnalyticsModuleSupport>true</tt:AnalyticsModuleSupport></tt:Analytics><tt:Device><tt:XAddr>http://192.168.0.254:8999/onvif/device_service</tt:XAddr><tt:Network><tt:IPFilter>false</tt:IPFilter><tt:ZeroConfiguration>
false</tt:ZeroConfiguration><tt:IPVersion6>false</tt:IPVersion6><tt:DynDNS>false</tt:DynDNS></tt:Network><tt:System><tt:DiscoveryResolve>true</tt:DiscoveryResolve><tt:DiscoveryBye>true</tt:DiscoveryBye><tt:RemoteDiscovery>false</tt:RemoteDiscovery><tt:Syst
emBackup>false</tt:SystemBackup><tt:SystemLogging>true</tt:SystemLogging><tt:FirmwareUpgrade>true</tt:FirmwareUpgrade><tt:SupportedVersions><tt:Major>2</tt:Major><tt:Minor>40</tt:Minor></tt:SupportedVersions><tt:SupportedVersions><tt:Major>2</tt:Major><tt:
Minor>20</tt:Minor></tt:SupportedVersions><tt:SupportedVersions><tt:Major>2</tt:Major><tt:Minor>10</tt:Minor></tt:SupportedVersions><tt:SupportedVersions><tt:Major>2</tt:Major><tt:Minor>0</tt:Minor></tt:SupportedVersions></tt:System><tt:IO><tt:InputConnect
ors>1</tt:InputConnectors><tt:RelayOutputs>1</tt:RelayOutputs></tt:IO><tt:Security><tt:TLS1.1>false</tt:TLS1.1><tt:TLS1.2>false</tt:TLS1.2><tt:OnboardKeyGeneration>false</tt:OnboardKeyGeneration><tt:AccessPolicyConfig>false</tt:AccessPolicyConfig><tt:X.509
Token>false</tt:X.509Token><tt:SAMLToken>false</tt:SAMLToken><tt:KerberosToken>false</tt:KerberosToken><tt:RELToken>false</tt:RELToken></tt:Security></tt:Device><tt:Events><tt:XAddr>http://192.168.0.254:8999/onvif/event_service</tt:XAddr><tt:WSSubscription
PolicySupport>true</tt:WSSubscriptionPolicySupport><tt:WSPullPointSupport>true</tt:WSPullPointSupport><tt:WSPausableSubscriptionManagerInterfaceSupport>false</tt:WSPausableSubscriptionManagerInterfaceSupport></tt:Events><tt:Imaging><tt:XAddr>http://192.168
.0.254:8999/onvif/image_service</tt:XAddr></tt:Imaging><tt:Media><tt:XAddr>http://192.168.0.254:8999/onvif/media_service</tt:XAddr><tt:StreamingCapabilities><tt:RTPMulticast>true</tt:RTPMulticast><tt:RTP_TCP>true</tt:RTP_TCP><tt:RTP_RTSP_TCP>true</tt:RTP_R
TSP_TCP></tt:StreamingCapabilities><tt:Extension><tt:ProfileCapabilities><tt:MaximumNumberOfProfiles>2</tt:MaximumNumberOfProfiles></tt:ProfileCapabilities></tt:Extension></tt:Media><tt:PTZ><tt:XAddr>http://192.168.0.254:8999/onvif/ptz_service</tt:XAddr></
tt:PTZ><tt:Extension><tt:DeviceIO><tt:XAddr>http://192.168.0.254:8999/onvif/deviceio_service</tt:XAddr><tt:VideoSources>1</tt:VideoSources><tt:VideoOutputs>0</tt:VideoOutputs><tt:AudioSources>1</tt:AudioSources><tt:AudioOutputs>1</tt:AudioOutputs><tt:Relay
Outputs>1</tt:RelayOutputs></tt:DeviceIO><tt:AnalyticsDevice><tt:XAddr>http://192.168.0.254:8999/onvif/display_service</tt:XAddr><tt:RuleSupport>true</tt:RuleSupport></tt:AnalyticsDevice></tt:Extension></tds:Capabilities></tds:GetCapabilitiesResponse></SOA
P-ENV:Body></SOAP-ENV:Envelope>
..
frigate  | ~~~ ~~ zeep.wsdl.wsdl                 DEBUG   : Adding service: EventService
frigate  | ~~~ ~~ zeep.transports                DEBUG   : HTTP Post to http://192.168.0.254:8999/onvif/event_service:
<?xml version='1.0' encoding='utf-8'?>
frigate  | ~~~ ~~ <soap-env:Envelope xmlns:soap-env="http://www.w3.org/2003/05/soap-envelope"><soap-env:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>http://www.onvif.org/ver10/events/wsdl/EventPortType/CreateP
ullPointSubscriptionRequest</wsa:Action><wsa:MessageID>urn:uuid:21623cd2-e4fc-4318-b104-34900ae5ba25</wsa:MessageID><wsa:To>http://192.168.0.254:8999/onvif/event_service</wsa:To><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken><wsse:Username>admin</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">2FVcBYS2fUlwgX9qCTnuP1hRQ7I=</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">A2wtOMsYHvif03+vIasnlw==</wsse:Nonce><wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2023-09-15T01:33:53+00:00</wsu:Created></wsse:UsernameToken></wsse:Security></soap-env:Header><soap-env:Body><ns0:CreatePullPointSubscription xmlns:ns0="http://www.onvif.org/ver10/events/wsdl"/></soap-env:Body></soap-env:Envelope>
frigate  | ~~~ ~~ urllib3.connectionpool         DEBUG   : Starting new HTTP connection (1): 192.168.0.254:8999
..
<zeep.xsd.dynamic_types.OnvifVersion object at 0x7f7595c6b7c0>)
frigate.ptz.onvif              ERROR   : Unable to connect to camera: meme: Unknown error: HTTPConnectionPool(host='192.168.0.254', port=8999): Max retries exceeded with url: /onvif/media_service (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f51e00ac280>: Failed to establish a new connection: [Errno 110] Connection timed out'))
frigate  | ~~~ ~~ [error] 549#549: *47 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 10.0.0.47, server: , request: "GET /api/meme/ptz/info HTTP/1.1", upstream: "http://127.0.0.1:5001/meme/ptz/info", host: "10.0.0.10:5000"

Continues to loop

@NickM-27
Copy link
Sponsor Collaborator

but PTZ is still not working.

right, I did not expect this to fix that. Some cameras that don't fully follow the ONVIF standard won't be supported in this release. Once we have a more comprehensive of what cameras that includes, the docs will be updated to reflect that

@exalented
Copy link
Author

Hey thanks so much Nick

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants