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

[onvif] Unable to setup a Hikvision DS-HD1 doorbell camera #35947

Closed
dkulchinsky opened this issue May 21, 2020 · 11 comments · Fixed by #35932 or #36006
Closed

[onvif] Unable to setup a Hikvision DS-HD1 doorbell camera #35947

dkulchinsky opened this issue May 21, 2020 · 11 comments · Fixed by #35932 or #36006
Assignees

Comments

@dkulchinsky
Copy link

The problem

I'm trying to add the Hikvision DS-HD1 doorbell camera to Home Assistant using the new UI integration, Discovery works just fine however setup fails with an error:

May 21 16:00:31 adl01 home-assistant[25979]: 2020-05-21 20:00:31 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry DS-HD1 - 80:91:33:88:7c:49 for onvif

Full traceback (with debug level logging) below, if more information is needed - please let me know.

Environment

  • Home Assistant Core release with the issue: 0.110.1
  • Last working Home Assistant Core release (if known): unknown
  • Operating environment (Home Assistant/Supervised/Docker/venv): Docker + venv
  • Integration causing this issue: onvif
  • Link to integration documentation on our website: https://www.home-assistant.io/integrations/onvif/

Problem-relevant configuration.yaml

N/A

Traceback/Error logs

May 21 15:59:45 adl01 home-assistant[25979]: 2020-05-21 19:59:45 DEBUG (MainThread) [homeassistant.components.onvif] Starting ONVIF discovery...
May 21 15:59:48 adl01 home-assistant[25979]: 2020-05-21 19:59:48 DEBUG (MainThread) [homeassistant.components.onvif] Discovered ONVIF devices [{'deviceid': None, 'host': 'x.x.x.x', 'name': 'DS-HD1', 'port': 80}]
May 21 16:00:29 adl01 home-assistant[25979]: 2020-05-21 20:00:29 DEBUG (MainThread) [homeassistant.components.onvif] Fetching profiles from ONVIF device {'host': 'x.x.x.x',
May 21 16:00:29 adl01 home-assistant[25979]:  'name': 'DS-HD1',
May 21 16:00:29 adl01 home-assistant[25979]:  'password': '**********',
May 21 16:00:29 adl01 home-assistant[25979]:  'port': 80,
May 21 16:00:29 adl01 home-assistant[25979]:  'username': '**********'}
May 21 16:00:30 adl01 home-assistant[25979]: 2020-05-21 20:00:30 DEBUG (MainThread) [homeassistant.components.onvif] Setting up the ONVIF device management service
May 21 16:00:30 adl01 home-assistant[25979]: 2020-05-21 20:00:30 DEBUG (MainThread) [homeassistant.components.onvif] Retrieving current device date/time
May 21 16:00:30 adl01 home-assistant[25979]: 2020-05-21 20:00:30 DEBUG (MainThread) [homeassistant.components.onvif] Device date/time: 2020-05-21 21:00:29+00:00 | System date/time: 2020-05-21 20:00:30.715286+00:00
May 21 16:00:30 adl01 home-assistant[25979]: 2020-05-21 20:00:30 WARNING (MainThread) [homeassistant.components.onvif] The date/time on the device (UTC) is '2020-05-21 21:00:29+00:00', which is different from the system '2020-05-21 20:00:30.715286+00:00', this could lead to authentication issues
May 21 16:00:31 adl01 home-assistant[25979]: 2020-05-21 20:00:31 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry DS-HD1 - 80:91:33:88:7c:49 for onvif
May 21 16:00:31 adl01 home-assistant[25979]: Traceback (most recent call last):
May 21 16:00:31 adl01 home-assistant[25979]:   File "/usr/src/homeassistant/homeassistant/config_entries.py", line 217, in async_setup
May 21 16:00:31 adl01 home-assistant[25979]:     hass, self
May 21 16:00:31 adl01 home-assistant[25979]:   File "/usr/src/homeassistant/homeassistant/components/onvif/__init__.py", line 73, in async_setup_entry
May 21 16:00:31 adl01 home-assistant[25979]:     if not await device.async_setup():
May 21 16:00:31 adl01 home-assistant[25979]:   File "/usr/src/homeassistant/homeassistant/components/onvif/device.py", line 100, in async_setup
May 21 16:00:31 adl01 home-assistant[25979]:     self.profiles = await self.async_get_profiles()
May 21 16:00:31 adl01 home-assistant[25979]:   File "/usr/src/homeassistant/homeassistant/components/onvif/device.py", line 254, in async_get_profiles
May 21 16:00:31 adl01 home-assistant[25979]:     if onvif_profile.VideoEncoderConfiguration.Encoding != "H264":
May 21 16:00:31 adl01 home-assistant[25979]: AttributeError: 'NoneType' object has no attribute 'Encoding'

Additional information

I couldn't find a proper Onvif registration for Hikvision, but I have seen some reports that they have been suspended from Onvif organization due to some sanctions by the US govt.

I can confirm though that this same camera works just fine with my Synology Surveillance Station (I'm using it intercept motion detection events, which fires a webhook to Home Assistant to start an automation script).

@probot-home-assistant
Copy link

Hey there @hunterjm, mind taking a look at this issue as its been labeled with a integration (onvif) you are listed as a codeowner for? Thanks!
(message by CodeOwnersMention)

@hunterjm
Copy link
Member

Yeah, I accidently broke it in 0.110.1. Should work if you roll back to 0.110.0, and also when #35932 comes out.

@hunterjm hunterjm mentioned this issue May 22, 2020
20 tasks
@hunterjm
Copy link
Member

@dkulchinsky - Actually, I didn't get that exact error on my doorbell cam. Can you update to the latest firmware and check again if you are still having issues on 0.110.0?

@dkulchinsky
Copy link
Author

@hunterjm, I already have the latest firmware v5.2.4 Build 200321 and pretty sure I had the same issue on 1.110.0, but I will double check.

@dkulchinsky
Copy link
Author

@hunterjm confirmed, getting the same exact error with v0.110.0

@hunterjm
Copy link
Member

Weird, I'm on the exact same firmware and it's working fine for me on 0.110.0.
Screenshot from 2020-05-21 21-42-45

@dannyk81
Copy link

wow, that is strange...

I've had this camera setup using the generic platform and it works fine:

camera:
- platform: generic
  name: Front Door Bell
  stream_source: !secret front_door_bell_rtsp
  still_image_url: http://<address>/onvif/snapshot

@dannyk81
Copy link

@hunterjm anything I can do on my end to help debug this?

@hunterjm
Copy link
Member

This looks like the same issue as #35968. I've got a branch that fixes this by ignoring any video profiles that don't return an encoder configuration, but that means you probably won't get your doorbell feed in HA, which is less than ideal.

Can one of you update your logger config to the one below and share the last couple lines starting at [zeep.asyncio.transport] HTTP Post to http:// right after you get that error on setup?

logger:
default: critical
logs:
homeassistant.components.onvif: debug
zeep: debug

@dkulchinsky
Copy link
Author

There you go, this is with 0.110.1 though (let me know if I should try the same with 0.110.0)

p.s. sorry for replying from different github accounts... 😉

May 22 15:59:26 adl01 home-assistant[1413]: 2020-05-22 19:59:26 DEBUG (MainThread) [zeep.asyncio.transport] HTTP Post to http://x.x.x.x/onvif/Media:
May 22 15:59:26 adl01 home-assistant[1413]: b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<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: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">*********</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">**********</wsse:Nonce><wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2020-05-22T19:59:26+00:00</wsu:Created></wsse:UsernameToken></wsse:Security></soap-env:Header><soap-env:Body><ns0:GetProfiles xmlns:ns0="http://www.onvif.org/ver10/media/wsdl"/></soap-env:Body></soap-env:Envelope>'

May 22 15:59:26 adl01 home-assistant[1413]: 2020-05-22 19:59:26 DEBUG (MainThread) [zeep.asyncio.transport] HTTP Response from http://x.x.x.x/onvif/Media (status: 200):
May 22 15:59:26 adl01 home-assistant[1413]: b'<?xml version="1.0" encoding="UTF-8"?>\r\n<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenc="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:tan="http://www.onvif.org/ver20/analytics/wsdl" xmlns:tst="http://www.onvif.org/ver10/storage/wsdl" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:dn="http://www.onvif.org/ver10/network/wsdl" xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl" xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12" xmlns:http="http://schemas.xmlsoap.org/wsdl/http" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:wsadis="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2" xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsrf-r="http://docs.oasis-open.org/wsrf/r-2" xmlns:trc="http://www.onvif.org/ver10/recording/wsdl" xmlns:tse="http://www.onvif.org/ver10/search/wsdl" xmlns:trp="http://www.onvif.org/ver10/replay/wsdl" xmlns:tnsn="http://www.eventextension.com/2011/event/topics"><env:Body><trt:GetProfilesResponse><trt:Profiles token="Profile_1" fixed="true"><tt:Name>mainStream</tt:Name>\r\n<tt:VideoSourceConfiguration token="VideoSourceToken"><tt:Name>VideoSourceConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:SourceToken>VideoSource_1</tt:SourceToken>\r\n<tt:Bounds x="0" y="0" width="2048" height="1536"></tt:Bounds>\r\n</tt:VideoSourceConfiguration>\r\n<tt:AudioSourceConfiguration token="AudioSourceConfigToken"><tt:Name>AudioSourceConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:SourceToken>AudioSourceChannel1</tt:SourceToken>\r\n</tt:AudioSourceConfiguration>\r\n<tt:VideoEncoderConfiguration token="VideoEncoderToken_1"><tt:Name>VideoEncoder_1</tt:Name>\r\n<tt:UseCount>1</tt:UseCount>\r\n<tt:Encoding>H264</tt:Encoding>\r\n<tt:Resolution><tt:Width>800</tt:Width>\r\n<tt:Height>600</tt:Height>\r\n</tt:Resolution>\r\n<tt:Quality>5.000000</tt:Quality>\r\n<tt:RateControl><tt:FrameRateLimit>10</tt:FrameRateLimit>\r\n<tt:EncodingInterval>1</tt:EncodingInterval>\r\n<tt:BitrateLimit>2048</tt:BitrateLimit>\r\n</tt:RateControl>\r\n<tt:H264><tt:GovLength>10</tt:GovLength>\r\n<tt:H264Profile>Main</tt:H264Profile>\r\n</tt:H264>\r\n<tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type>\r\n<tt:IPv4Address>0.0.0.0</tt:IPv4Address>\r\n</tt:Address>\r\n<tt:Port>8600</tt:Port>\r\n<tt:TTL>1</tt:TTL>\r\n<tt:AutoStart>false</tt:AutoStart>\r\n</tt:Multicast>\r\n<tt:SessionTimeout>PT5S</tt:SessionTimeout>\r\n</tt:VideoEncoderConfiguration>\r\n<tt:AudioEncoderConfiguration token="MainAudioEncoderToken"><tt:Name>AudioEncoderConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:Encoding>AAC</tt:Encoding>\r\n<tt:Bitrate>64</tt:Bitrate>\r\n<tt:SampleRate>16</tt:SampleRate>\r\n<tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type>\r\n<tt:IPv4Address>0.0.0.0</tt:IPv4Address>\r\n</tt:Address>\r\n<tt:Port>8600</tt:Port>\r\n<tt:TTL>1</tt:TTL>\r\n<tt:AutoStart>false</tt:AutoStart>\r\n</tt:Multicast>\r\n<tt:SessionTimeout>PT5S</tt:SessionTimeout>\r\n</tt:AudioEncoderConfiguration>\r\n<tt:VideoAnalyticsConfiguration token="VideoAnalyticsToken"><tt:Name>VideoAnalyticsName</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:AnalyticsEngineConfiguration><tt:AnalyticsModule Name="MyCellMotionModule" Type="tt:CellMotionEngine"><tt:Parameters><tt:SimpleItem Name="Sensitivity" Value="60"/>\r\n<tt:ElementItem Name="Layout"><tt:CellLayout Columns="22" Rows="15"><tt:Transformation><tt:Translate x="-1.000000" y="-1.000000"/>\r\n<tt:Scale x="0.002500" y="0.003333"/>\r\n</tt:Transformation>\r\n</tt:CellLayout>\r\n</tt:ElementItem>\r\n</tt:Parameters>\r\n</tt:AnalyticsModule>\r\n</tt:AnalyticsEngineConfiguration>\r\n<tt:RuleEngineConfiguration><tt:Rule Name="MyMotionDetectorRule" Type="tt:CellMotionDetector"><tt:Parameters><tt:SimpleItem Name="MinCount" Value="5"/>\r\n<tt:SimpleItem Name="AlarmOnDelay" Value="100"/>\r\n<tt:SimpleItem Name="AlarmOffDelay" Value="100"/>\r\n<tt:SimpleItem Name="ActiveCells" Value="2P8AwA=="/>\r\n</tt:Parameters>\r\n</tt:Rule>\r\n</tt:RuleEngineConfiguration>\r\n</tt:VideoAnalyticsConfiguration>\r\n<tt:MetadataConfiguration  token="MetaDataToken"><tt:Name>metaData</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:PTZStatus><tt:Status>false</tt:Status>\r\n<tt:Position>false</tt:Position>\r\n</tt:PTZStatus>\r\n<tt:Analytics>false</tt:Analytics>\r\n<tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type>\r\n<tt:IPv4Address>0.0.0.0</tt:IPv4Address>\r\n</tt:Address>\r\n<tt:Port>8600</tt:Port>\r\n<tt:TTL>1</tt:TTL>\r\n<tt:AutoStart>false</tt:AutoStart>\r\n</tt:Multicast>\r\n<tt:SessionTimeout>PT5S</tt:SessionTimeout>\r\n<tt:AnalyticsEngineConfiguration></tt:AnalyticsEngineConfiguration>\r\n</tt:MetadataConfiguration >\r\n<tt:Extension><tt:AudioOutputConfiguration token="AudioOutputConfigToken"><tt:Name>AudioOutputConfigName</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:OutputToken>AudioOutputToken</tt:OutputToken>\r\n<tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Server</tt:SendPrimacy>\r\n<tt:OutputLevel>45</tt:OutputLevel>\r\n</tt:AudioOutputConfiguration>\r\n<tt:AudioDecoderConfiguration token="AudioDecoderConfigToken"><tt:Name>AudioDecoderConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n</tt:AudioDecoderConfiguration>\r\n</tt:Extension>\r\n</trt:Profiles>\r\n<trt:Profiles token="Profile_2" fixed="true"><tt:Name>subStream</tt:Name>\r\n<tt:VideoSourceConfiguration token="VideoSourceToken"><tt:Name>VideoSourceConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:SourceToken>VideoSource_1</tt:SourceToken>\r\n<tt:Bounds x="0" y="0" width="2048" height="1536"></tt:Bounds>\r\n</tt:VideoSourceConfiguration>\r\n<tt:AudioSourceConfiguration token="AudioSourceConfigToken"><tt:Name>AudioSourceConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:SourceToken>AudioSourceChannel1</tt:SourceToken>\r\n</tt:AudioSourceConfiguration>\r\n<tt:VideoEncoderConfiguration token="VideoEncoderToken_2"><tt:Name>VideoEncoder_2</tt:Name>\r\n<tt:UseCount>1</tt:UseCount>\r\n<tt:Encoding>H264</tt:Encoding>\r\n<tt:Resolution><tt:Width>352</tt:Width>\r\n<tt:Height>240</tt:Height>\r\n</tt:Resolution>\r\n<tt:Quality>5.000000</tt:Quality>\r\n<tt:RateControl><tt:FrameRateLimit>10</tt:FrameRateLimit>\r\n<tt:EncodingInterval>1</tt:EncodingInterval>\r\n<tt:BitrateLimit>128</tt:BitrateLimit>\r\n</tt:RateControl>\r\n<tt:H264><tt:GovLength>10</tt:GovLength>\r\n<tt:H264Profile>Main</tt:H264Profile>\r\n</tt:H264>\r\n<tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type>\r\n<tt:IPv4Address>0.0.0.0</tt:IPv4Address>\r\n</tt:Address>\r\n<tt:Port>8600</tt:Port>\r\n<tt:TTL>1</tt:TTL>\r\n<tt:AutoStart>false</tt:AutoStart>\r\n</tt:Multicast>\r\n<tt:SessionTimeout>PT5S</tt:SessionTimeout>\r\n</tt:VideoEncoderConfiguration>\r\n<tt:AudioEncoderConfiguration token="MainAudioEncoderToken"><tt:Name>AudioEncoderConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:Encoding>AAC</tt:Encoding>\r\n<tt:Bitrate>64</tt:Bitrate>\r\n<tt:SampleRate>16</tt:SampleRate>\r\n<tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type>\r\n<tt:IPv4Address>0.0.0.0</tt:IPv4Address>\r\n</tt:Address>\r\n<tt:Port>8600</tt:Port>\r\n<tt:TTL>1</tt:TTL>\r\n<tt:AutoStart>false</tt:AutoStart>\r\n</tt:Multicast>\r\n<tt:SessionTimeout>PT5S</tt:SessionTimeout>\r\n</tt:AudioEncoderConfiguration>\r\n<tt:VideoAnalyticsConfiguration token="VideoAnalyticsToken"><tt:Name>VideoAnalyticsName</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:AnalyticsEngineConfiguration><tt:AnalyticsModule Name="MyCellMotionModule" Type="tt:CellMotionEngine"><tt:Parameters><tt:SimpleItem Name="Sensitivity" Value="60"/>\r\n<tt:ElementItem Name="Layout"><tt:CellLayout Columns="22" Rows="15"><tt:Transformation><tt:Translate x="-1.000000" y="-1.000000"/>\r\n<tt:Scale x="0.002500" y="0.003333"/>\r\n</tt:Transformation>\r\n</tt:CellLayout>\r\n</tt:ElementItem>\r\n</tt:Parameters>\r\n</tt:AnalyticsModule>\r\n</tt:AnalyticsEngineConfiguration>\r\n<tt:RuleEngineConfiguration><tt:Rule Name="MyMotionDetectorRule" Type="tt:CellMotionDetector"><tt:Parameters><tt:SimpleItem Name="MinCount" Value="5"/>\r\n<tt:SimpleItem Name="AlarmOnDelay" Value="100"/>\r\n<tt:SimpleItem Name="AlarmOffDelay" Value="100"/>\r\n<tt:SimpleItem Name="ActiveCells" Value="2P8AwA=="/>\r\n</tt:Parameters>\r\n</tt:Rule>\r\n</tt:RuleEngineConfiguration>\r\n</tt:VideoAnalyticsConfiguration>\r\n<tt:MetadataConfiguration  token="MetaDataToken"><tt:Name>metaData</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:PTZStatus><tt:Status>false</tt:Status>\r\n<tt:Position>false</tt:Position>\r\n</tt:PTZStatus>\r\n<tt:Analytics>false</tt:Analytics>\r\n<tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type>\r\n<tt:IPv4Address>0.0.0.0</tt:IPv4Address>\r\n</tt:Address>\r\n<tt:Port>8600</tt:Port>\r\n<tt:TTL>1</tt:TTL>\r\n<tt:AutoStart>false</tt:AutoStart>\r\n</tt:Multicast>\r\n<tt:SessionTimeout>PT5S</tt:SessionTimeout>\r\n<tt:AnalyticsEngineConfiguration></tt:AnalyticsEngineConfiguration>\r\n</tt:MetadataConfiguration >\r\n<tt:Extension><tt:AudioOutputConfiguration token="AudioOutputConfigToken"><tt:Name>AudioOutputConfigName</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n<tt:OutputToken>AudioOutputToken</tt:OutputToken>\r\n<tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Server</tt:SendPrimacy>\r\n<tt:OutputLevel>45</tt:OutputLevel>\r\n</tt:AudioOutputConfiguration>\r\n<tt:AudioDecoderConfiguration token="AudioDecoderConfigToken"><tt:Name>AudioDecoderConfig</tt:Name>\r\n<tt:UseCount>2</tt:UseCount>\r\n</tt:AudioDecoderConfiguration>\r\n</tt:Extension>\r\n</trt:Profiles>\r\n<trt:Profiles token="Profile_845600744" fixed="false"><tt:Name>SynoTestProfile</tt:Name>\r\n<tt:Extension></tt:Extension>\r\n</trt:Profiles>\r\n</trt:GetProfilesResponse>\r\n</env:Body>\r\n</env:Envelope>\r\n'

@hunterjm
Copy link
Member

Got it, your Synology added a test ONVIF profile at the end with no configuration... sneaky sneaky:

            <trt:Profiles token="Profile_845600744" fixed="false">
                <tt:Name>SynoTestProfile</tt:Name>
                <tt:Extension></tt:Extension>
            </trt:Profiles>

Opening a new PR to close this now.

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