Closed AnthonyBe closed 2 years ago
I'm experiencing the same error, yet on a different Netgear device. Specifically, Netgear WAX214 access point.
Currently running the latest: Home Assistant OS 8.1 Home Assistant Core 2022.5.5 Home Assistant Supervisor 2022.05.2
This is the first time installing HASS for that setup, so I have no comparison with v2022.4.7.
Hey there @stevenlooman, @ehendrix23, mind taking a look at this issue as it has been labeled with an integration (upnp
) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
upnp documentation upnp source (message by IssueLinks)
Thank you for this issue @AnthonyBe. Lets do some more debugging. Can you add this to your configuration.yaml
file and restart home assistant?
logger:
default: info
logs:
homeassistant.components.ssdp: debug
homeassistant.components.upnp: debug
async_upnp_client: debug
async_upnp_client.traffic: error
This will enable more logging, hopefully giving more information why this is occurring.
When you've captured more logging, can you either mail it to me (in case it contains sensitive information or the file is too large), or post it here?
Thank you for this issue @AnthonyBe. Lets do some more debugging. Can you add this to your
configuration.yaml
file and restart home assistant?logger: default: info logs: homeassistant.components.ssdp: debug homeassistant.components.upnp: debug async_upnp_client: debug async_upnp_client.traffic: error
This will enable more logging, hopefully giving more information why this is occurring.
When you've captured more logging, can you either mail it to me (in case it contains sensitive information or the file is too large), or post it here?
I've updated to HA 2022.6.5 as I saw some UPnP related updates before I added the additional logging and captured the following - https://zerobin.net/?e02c4d73ffd3993e#+PBGo0iU0fEw4kO059dtFY5vwGDOzd9LDeMEdiV+XcY=
Let me know if you need anything else!
I think the current logging will do. The device called "RBR50 (AP)" is advertising/responding to searches it is a urn:schemas-upnp-org:device:InternetGatewayDevice:1
. However, when the device is actually queried, it is no longer that kind.
Normally a router is a kind of a device that provides services to get traffic statistics, get connection data, create (temporary) port forwards, etc. The services are provided over a protocol called Universal Plug n Play (upnp), the 'profile' (describing what a device should be able to do, thus providing actual router-related things) is called Internet Gateway Device (IGD.)
UPnP is supported by SSDP. SSDP is the discovery part which supports UPnP so devices can be found easily/automatically on your local network. This works by regularly broadcasting the device is alive (and what kind of device it is) and responding to search requests by things like home assistant.
And this is where it goes wrong. Both the UPnP and SSDP parts can be found on the same line in the logs. I've formatted the relevant line in the logs to make it a bit easier to read:
2022-06-12 19:50:28 DEBUG (MainThread) [homeassistant.components.upnp] async_step_ssdp: discovery_info:
SsdpServiceInfo(
upnp={
'deviceType': 'urn:schemas-upnp-org:device:WFADevice:1',
'friendlyName': 'RBR50 (AP)',
'firmwareVersion': 'V2.7.4.24',
'manufacturer': 'NETGEAR,Inc.',
'manufacturerURL': 'http://www.netgear.com',
'modelDescription': 'http://www.netgear.com/home/products/wirelessrouters',
'modelName': 'NETGEAR Orbi Desktop AC3000 Router',
'modelNumber': 'RBR50',
'modelURL': 'http://www.netgear.com/orbi',
'UDN': 'uuid:uuid:4d696e69-444c-164e-9d42-288088f48f81',
'UPC': 'RBR50',
'serviceList': {
'service': {
'serviceType': 'urn:schemas-upnp-org:service:Layer3Forwarding:1',
'serviceId': 'urn:upnp-org:serviceId:L3Forwarding1',
'SCPDURL': '/L3F.xml',
'controlURL': '/ctl/L3F',
'eventSubURL': '/evt/L3F'
}
},
'deviceList': {
'device': {
'deviceType': 'urn:schemas-upnp-org:device:WANDevice:1',
'friendlyName': 'WANDevice',
'manufacturer': 'NETGEAR,Inc.',
'manufacturerURL': 'http://www.netgear.com',
'modelDescription': 'WANDevice on NETGEAR RBR50 Orbi Router',
'modelName': 'NETGEAR Orbi Desktop AC3000 Router',
'modelNumber': 'RBR50',
'modelURL': 'http://www.netgear.com/orbi',
'UPC': '606449084528',
'UDN': 'uuid:uuid:4d696e69-444c-164e-9d43-288088f48f81',
'serviceList': {
'service': {
'serviceType': 'urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1',
'serviceId': 'urn:upnp-org:serviceId:WANCommonIFC1',
'SCPDURL': '/WANCfg.xml',
'controlURL': '/ctl/CmnIfCfg',
'eventSubURL': '/evt/CmnIfCfg'
}
},
'deviceList': {
'device': {
'deviceType': 'urn:schemas-upnp-org:device:WANConnectionDevice:1',
'friendlyName': 'WANConnectionDevice',
'manufacturer': 'NETGEAR,Inc.',
'manufacturerURL': 'http://www.netgear.com',
'modelDescription': 'WANConnectionDevice on NETGEAR RBR50 Orbi Router',
'modelName': 'NETGEAR Orbi Desktop AC3000 Router',
'modelNumber': 'RBR50',
'modelURL': 'http://www.netgear.com/orbi',
'UPC': '606449084528',
'UDN': 'uuid:uuid:4d696e69-444c-164e-9d44-288088f48f81',
'serviceList': {
'service': [
{
'serviceType': 'urn:schemas-upnp-org:service:WANEthernetLinkConfig:1',
'serviceId': 'urn:upnp-org:serviceId:WANEthLinkC1',
'SCPDURL': '/WanEth.xml',
'controlURL': '/ctl/WanEth',
'eventSubURL': '/evt/WanEth'
},
{
'serviceType': 'urn:schemas-upnp-org:service:WANIPConnection:1',
'serviceId': 'urn:upnp-org:serviceId:WANIPConn1',
'SCPDURL': '/WANIPCn.xml',
'controlURL': '/ctl/IPConn',
'eventSubURL': '/evt/IPConn'
}
]
}
}
}
}
},
'presentationURL': 'http://www.orbilogin.net'
},
ssdp_usn='uuid:uuid:4d696e69-444c-164e-9d42-288088f48f81::urn:schemas-upnp-org:device:InternetGatewayDevice:1',
ssdp_st='urn:schemas-upnp-org:device:InternetGatewayDevice:1',
ssdp_location='http://192.168.0.100:56688/rootDesc.xml',
ssdp_nt=None,
ssdp_udn='uuid:uuid:4d696e69-444c-164e-9d42-288088f48f81',
ssdp_ext='',
ssdp_server='Netgear_Router UPnP/1.1 MiniUPnPd/2.2.0-RC0',
ssdp_headers={
'CACHE-CONTROL': 'max-age=120',
'DATE': 'Sun, 12 Jun 2022 09:49:54 GMT',
'ST': 'urn:schemas-upnp-org:device:InternetGatewayDevice:1',
'USN': 'uuid:uuid:4d696e69-444c-164e-9d42-288088f48f81::urn:schemas-upnp-org:device:InternetGatewayDevice:1',
'EXT': '',
'SERVER': 'Netgear_Router UPnP/1.1 MiniUPnPd/2.2.0-RC0',
'LOCATION': 'http://192.168.0.100:56688/rootDesc.xml',
'OPT': '"http://schemas.upnp.org/upnp/1/0/"; ns=01',
'01-NLS': '1646123799',
'BOOTID.UPNP.ORG': '1646123799',
'CONFIGID.UPNP.ORG': '1337',
'_location_original': 'http://192.168.0.100:56688/rootDesc.xml',
'location': 'http://192.168.0.100:56688/rootDesc.xml',
'_timestamp': datetime.datetime(2022, 6, 12, 19, 49, 55, 332905),
'_host': '192.168.0.100',
'_port': 1900,
'_local_addr': ('192.168.0.155', 34626),
'_remote_addr': ('192.168.0.100', 1900),
'_udn': 'uuid:uuid:4d696e69-444c-164e-9d42-288088f48f81'
},
x_homeassistant_matching_domains={'upnp'})
The lines which start with ssdp_
are the SSDP (discovery) things. There you can see the Service Type (st
). It states it is a urn:schemas-upnp-org:device:InternetGatewayDevice:1
device.
ssdp_st='urn:schemas-upnp-org:device:InternetGatewayDevice:1',
Then, in the UPnP part, it states it is a urn:schemas-upnp-org:device:WFADevice:1
:
'deviceType': 'urn:schemas-upnp-org:device:WFADevice:1',
So home assistant discovers the device via SSDP and thinks it is a IGD. Then, when it actually wants to set up the component, it cannot find the IGD and responds with an error.
The fix here is not something that will help you in this case. Namely, the component should really check whether it is a usable device. If not, it should ignore it (albeit with a message in the logs.)
You can contact the manufacturer and report this/create a ticket. Feel free to include this issue if needed.
Another interesting thing is:
2022-06-12 19:49:54 DEBUG (MainThread) [async_upnp_client.search] Received advertisement, USN: uuid:aa2cfe3f-8f72-4a4f-9ea7-bd0b1d49d8ac::upnp:rootdevice, location: https://192.168.0.19:8888
...
2022-06-12 19:49:54 DEBUG (MainThread) [async_upnp_client.aiohttp] ClientConnectorCertificateError(ConnectionKey(host='192.168.0.19', port=8888, is_ssl=True, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=-2147952485513549264), SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1129)')) during request; retrying
Not related to this error, but will certainly pop up some time with some other issue.
I've created a PR for both these problems, see the mentions. As for the Netgear APs, these will no longer be discovered by the upnp
-component when the first PR is merged.
Please do be aware that the device will no longer be discovered. You still need to remove the configuration entries manually, or else this error will keep popping up.
The problem
Around 2-3 weeks (and a few versions of HA) ago, it looks like my UPnP integration stopped working. I have Netgear Orbi RBR50 (in Access Point mode) and Archer VR1600v router (a.k.a tp-link AC1600) on my network. I was successfuly pulling KBs received, WAN status and IP address stats from the Archer VR1600v router until this issue started.
I suspect the issue started around the time of HA 2022.5.0 and has persisted with each 2022.5.* release since.
I've tried deleting the UPnP integration and letting HA re-discover but I get the same errors/results.
What version of Home Assistant Core has the issue?
2022.5.4
What was the last working version of Home Assistant Core?
2022.4.7
What type of installation are you running?
Home Assistant OS
Integration causing the issue
UPnP
Link to integration documentation on our website
https://www.home-assistant.io/integrations/uPnP
Diagnostics information
Example YAML snippet
No response
Anything in the logs that might be useful for us?
Additional information
Netgear Orbi RBR50 is on firmware V2.7.4.24 (latest) Archer VR1600v is Firmware Version:0.1.0 0.9.1 v5006.0 Build 200810 Rel.53181n Hardware Version:Archer VR1600v v2 00000000 Home Assistant Core 2022.5.4 Home Assistant Supervisor 2022.05.2 Home Assistant OS 7.6 Kernel version 5.10.108 Agent version 1.2.1