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

Upnp - Device not discovered #110216

Closed
bigfoot38 opened this issue Feb 10, 2024 · 10 comments · Fixed by #111487
Closed

Upnp - Device not discovered #110216

bigfoot38 opened this issue Feb 10, 2024 · 10 comments · Fixed by #111487
Assignees

Comments

@bigfoot38
Copy link

The problem

A Upnp device (Sagem F@ST3286) is shown as available in HomeAssistant "Integrations". I tried to add the corresponding integration to use it but HomeAssistant fails to configure the device with this message: "Configuration failed, trying again" (translated from french, the english wording may differ). When moving the mouse on the message, a tooltip states: "Device not discovered: uuid: 277F2473-1148-4B42-B509-435C99884FD2...".

I activated the log, but this message does not appears. The only message reported from the "upnp" component is:
[homeassistant.components.upnp] Setting up config entry: 9389736d1da1f230e5c1c5360f942529
There is no message after this one during 30 seconds. From the source code, I understand that something should happen within 10s. Tried to dig further, but without success.

What version of Home Assistant Core has the issue?

core-2023.12.3

What was the last working version of Home Assistant Core?

First time using HomeAssistant

What type of installation are you running?

Home Assistant Container

Integration causing the issue

Upnp

Link to integration documentation on our website

https://www.home-assistant.io/integrations/upnp

Diagnostics information

No response

Example YAML snippet

logger:
  default: info
  logs:
    homeassistant.components.ssdp: debug
    homeassistant.components.upnp: debug
    async_upnp_client.search: debug
    async_upnp_client.profiles.igd: debug
    async_upnp_client: debug
    async_upnp_client.traffic: debug

Anything in the logs that might be useful for us?

2024-02-10 18:48:41.463 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08\r\nUSN: uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.463 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.463 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08)>, dst: uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.464 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:uuid:upnp-WANDevice-1_0-4065a3e4ad08\r\nUSN: uuid:upnp-WANDevice-1_0-4065a3e4ad08\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.465 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-WANDevice-1_0-4065a3e4ad08, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.465 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-WANDevice-1_0-4065a3e4ad08)>, dst: uuid:upnp-WANDevice-1_0-4065a3e4ad08, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.466 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:urn:schemas-upnp-org:device:InternetGatewayDevice:1\r\nUSN: uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:InternetGatewayDevice:1\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.467 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:InternetGatewayDevice:1, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.467 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08)>, dst: urn:schemas-upnp-org:device:InternetGatewayDevice:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.468 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:urn:schemas-upnp-org:device:WANDevice:1\r\nUSN: uuid:upnp-WANDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:WANDevice:1\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.468 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-WANDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:WANDevice:1, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.469 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-WANDevice-1_0-4065a3e4ad08)>, dst: urn:schemas-upnp-org:device:WANDevice:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.470 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:urn:schemas-upnp-org:device:WANConnectionDevice:1\r\nUSN: uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:WANConnectionDevice:1\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.471 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:WANConnectionDevice:1, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.471 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08)>, dst: urn:schemas-upnp-org:device:WANConnectionDevice:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.472 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:urn:schemas-upnp-org:service:Layer3Forwarding:1\r\nUSN: uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:service:Layer3Forwarding:1\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.472 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:service:Layer3Forwarding:1, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.472 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08)>, dst: urn:schemas-upnp-org:service:Layer3Forwarding:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.474 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1\r\nUSN: uuid:upnp-WANDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.474 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-WANDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.475 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-WANDevice-1_0-4065a3e4ad08)>, dst: urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.475 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=1900\r\nLocation: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml\r\nServer: UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0\r\nST:urn:schemas-upnp-org:service:WANIPConnection:1\r\nUSN: uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:service:WANIPConnection:1\r\nEXT:\r\n\r\n'
2024-02-10 18:48:41.476 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:service:WANIPConnection:1, location: http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml
2024-02-10 18:48:41.476 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:upnp-WANConnectionDevice-1_0-4065a3e4ad08)>, dst: urn:schemas-upnp-org:service:WANIPConnection:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.480 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: urn:schemas-wifialliance-org:device:WFADevice:1\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:device:WFADevice:1\r\n\r\n'
2024-02-10 18:48:41.480 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:device:WFADevice:1, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.481 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: urn:schemas-wifialliance-org:device:WFADevice:1, source: SsdpSource.SEARCH_CHANGED
2024-02-10 18:48:41.482 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2\r\n\r\n'
2024-02-10 18:48:41.482 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.483 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2, source: SsdpSource.SEARCH_CHANGED
2024-02-10 18:48:41.484 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: upnp:rootdevice\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::upnp:rootdevice\r\n\r\n'
2024-02-10 18:48:41.485 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::upnp:rootdevice, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.485 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: upnp:rootdevice, source: SsdpSource.SEARCH_CHANGED
2024-02-10 18:48:41.486 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:41.487 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:41.487 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: UUID:795D2E60-F467-4870-8092-D85C2671BEF2, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.489 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:41.489 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:41.489 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: urn:home-assistant.io:device:HomeAssistant:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.490 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: urn:schemas-wifialliance-org:service:WFAWLANConfig:1\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:service:WFAWLANConfig:1\r\n\r\n'
2024-02-10 18:48:41.491 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:service:WFAWLANConfig:1, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.491 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: urn:schemas-wifialliance-org:service:WFAWLANConfig:1, source: SsdpSource.SEARCH_CHANGED
2024-02-10 18:48:41.493 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: urn:schemas-wifialliance-org:device:WFADevice:1\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:device:WFADevice:1\r\n\r\n'
2024-02-10 18:48:41.493 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:device:WFADevice:1, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.494 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: urn:schemas-wifialliance-org:device:WFADevice:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.495 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2\r\n\r\n'
2024-02-10 18:48:41.496 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.496 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.497 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: upnp:rootdevice\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::upnp:rootdevice\r\n\r\n'
2024-02-10 18:48:41.497 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::upnp:rootdevice, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.498 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: upnp:rootdevice, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.500 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.1', 1900): b'HTTP/1.1 200 OK\r\nCache-Control: max-age=30\r\nDate: Sat, 10 Feb 2024 18:48:40 GMT\r\nExt: \r\nLocation: http://192.168.0.1:1900/WFADevice.xml\r\nServer: POSIX UPnP/1.0 UPnP Stack/6.37.14.87\r\nST: urn:schemas-wifialliance-org:service:WFAWLANConfig:1\r\nUSN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:service:WFAWLANConfig:1\r\n\r\n'
2024-02-10 18:48:41.500 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.1', 1900), USN: uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2::urn:schemas-wifialliance-org:service:WFAWLANConfig:1, location: http://192.168.0.1:1900/WFADevice.xml
2024-02-10 18:48:41.501 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(uuid:e5dcb454-b967-8351-5f3d-d0319e5a90f2)>, dst: urn:schemas-wifialliance-org:service:WFAWLANConfig:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.720 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Sending SSDP packets, target: ('172.17.0.1', 41245), data: [b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:upnp:rootdevice\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n', b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n', b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n']
2024-02-10 18:48:41.721 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:upnp:rootdevice\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:41.721 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:41.721 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: upnp:rootdevice, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.722 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:41.722 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:41.722 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: UUID:795D2E60-F467-4870-8092-D85C2671BEF2, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:41.723 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:41.723 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:41.723 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: urn:home-assistant.io:device:HomeAssistant:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:43.010 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Sending SSDP packets, target: ('192.168.0.21', 41245), data: [b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:upnp:rootdevice\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n', b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n', b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n']
2024-02-10 18:48:43.011 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:upnp:rootdevice\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:43.012 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:43.012 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: upnp:rootdevice, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:43.013 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:43.013 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:43.013 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: UUID:795D2E60-F467-4870-8092-D85C2671BEF2, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:43.013 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('192.168.0.21', 38493): b'HTTP/1.1 200 OK\r\nCACHE-CONTROL:max-age=1800\r\nDATE:Sat, 10 Feb 2024 17:48:41 GMT\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nST:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\nEXT:\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\n\r\n'
2024-02-10 18:48:43.013 DEBUG (MainThread) [async_upnp_client.search] Received search response, _remote_addr: ('192.168.0.21', 38493), USN: UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1, location: http://172.17.0.1:40000/device.xml
2024-02-10 18:48:43.014 DEBUG (MainThread) [homeassistant.components.ssdp] SSDP: ssdp_device: <SsdpDevice(UUID:795D2E60-F467-4870-8092-D85C2671BEF2)>, dst: urn:home-assistant.io:device:HomeAssistant:1, source: SsdpSource.SEARCH_ALIVE
2024-02-10 18:48:54.638 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Sending SSDP packet, target: ('239.255.255.250', 1900), data: b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\n\r\n'
2024-02-10 18:48:54.640 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\n\r\n'
2024-02-10 18:48:54.642 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\n\r\n'
2024-02-10 18:49:24.641 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Sending SSDP packet, target: ('239.255.255.250', 1900), data: b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\n\r\n'
2024-02-10 18:49:24.643 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\n\r\n'
2024-02-10 18:49:24.645 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:urn:home-assistant.io:device:HomeAssistant:1\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::urn:home-assistant.io:device:HomeAssistant:1\r\n\r\n'
2024-02-10 18:49:54.643 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Sending SSDP packet, target: ('239.255.255.250', 1900), data: b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:upnp:rootdevice\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice\r\n\r\n'
2024-02-10 18:49:54.645 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:upnp:rootdevice\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice\r\n\r\n'
2024-02-10 18:49:54.646 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:upnp:rootdevice\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2::upnp:rootdevice\r\n\r\n'
2024-02-10 18:50:24.646 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Sending SSDP packet, target: ('239.255.255.250', 1900), data: b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\n\r\n'
2024-02-10 18:50:24.647 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\n\r\n'
2024-02-10 18:50:24.648 DEBUG (MainThread) [async_upnp_client.traffic.ssdp] Received packet from ('172.17.0.1', 54316): b'NOTIFY * HTTP/1.1\r\nNTS:ssdp:alive\r\nHOST:239.255.255.250:1900\r\nCACHE-CONTROL:max-age=1800\r\nSERVER:async-upnp-client/0.36.2 UPnP/2.0 Server/1.0\r\nBOOTID.UPNP.ORG:1707388648\r\nCONFIGID.UPNP.ORG:1\r\nLOCATION:http://172.17.0.1:40000/device.xml\r\nNT:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\nUSN:UUID:795D2E60-F467-4870-8092-D85C2671BEF2\r\n\r\n'

Additional information

No response

@home-assistant
Copy link

Hey there @StevenLooman, 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!

Code owner commands

Code owners of upnp can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign upnp Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


upnp documentation
upnp source
(message by IssueLinks)

@bigfoot38
Copy link
Author

Hello, I did some investigations and managed to make my device work by making some changes in the source code.
Please find enclosed the corresponding patch.

Basically the modifications searches the device in the ssdp cache before trying the formerly designed solution.

alternative_upnp_device_setup.zip

@StevenLooman
Copy link
Contributor

Thank you for the issue @bigfoot38, investigating and providing a potential fix! I'll take a look at it shortly.

@StevenLooman
Copy link
Contributor

Again @bigfoot38, thank you for investing time into investigating this.

Let's look at the changes. The next code listing contains the part you've changed. Feel free to create a PR in the future! This makes reviewing and commenting also a bit easier.

async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
    ...
    async with asyncio.timeout(10):
        LOGGER.debug("Searching in cache: %s, at: %s", udn, st)
        discovery_info = await ssdp.async_get_discovery_info_by_udn_st(hass, udn, st)
        if discovery_info is None:
            for di in await ssdp.async_get_discovery_info_by_st(hass, st):
                LOGGER.debug("udn for st: %s : %s", st, di.ssdp_udn)
                LOGGER.debug("di : %s", di)
                if di.upnp['UDN'] == udn:
                    usn = f"{di.ssdp_udn}::{st}"
                    discovery_info = di
                    break
    if discovery_info is not None:
        LOGGER.debug("Device from cache: %s, at: %s", udn, discovery_info)
    else:
        LOGGER.debug("Device not in cache.")

        async def device_discovered(
            headers: ssdp.SsdpServiceInfo, change: ssdp.SsdpChange
        ) -> None:
            if change == ssdp.SsdpChange.BYEBYE:
                return

            nonlocal discovery_info
            LOGGER.debug("Device discovered: %s, at: %s", usn, headers.ssdp_all_locations)
            discovery_info = headers
            device_discovered_event.set()

        cancel_discovered_callback = await ssdp.async_register_callback(
            hass,
            device_discovered,
            {
                "usn": usn,
            },
        )

        try:
            async with asyncio.timeout(10):
                await device_discovered_event.wait()
        except asyncio.TimeoutError as err:
            raise ConfigEntryNotReady(f"Device not discovered: {usn}") from err
        finally:
            cancel_discovered_callback()
    ...

Basically the modifications searches the device in the ssdp cache before trying the formerly designed solution.

By this part you most likely mean the block in the first with-statement (i.e., async with asyncio.timeout(10)). The functions ssdp.async_get_discovery_info_by_udn_st() and ssdp.async_get_discovery_info_by_st() are called. These indeed do search the ssdp-"cache".

A bit of explanation about the ssdp-component. The cache you mention is not really a cache. Rather, it is the actual list of devices the ssdp-component has seen. Whenever a new device is seen, this device is added to this list. Also, whenever a device is no longer seen (or notifies that it will be going offline), the device is purged from this list. Any interaction from components such as this upnp component, is on this list. This is a bit of a simplification though, but it

The function does await ssdp.async_register_callback(). In the original function this was the only interaction with the ssdp-component, in your changed function this is done after the searched device cannot be found in the device-list maintained by the ssdp-component. This function registers the callback, which will be called when the match-criteria match with the device then seen. However, this function (indirectly) also processes the list of seen devices and calls the callback when needed:

# Make sure any entries that happened
# before the callback was registered are fired
for ssdp_device in self._ssdp_devices:
for headers in ssdp_device.all_combined_headers.values():
if _async_headers_match(headers, lower_match_dict):
await _async_process_callbacks(
[callback],
await self._async_headers_to_discovery_info(
ssdp_device, headers
),
SsdpChange.ALIVE,
)

In essence, the new changes does duplicate work by first trying to match manually, and later on the matching is done "in" the register-callback mechanism. However, why does your change match the Sagem router, why the original does code not?

The UPnP Device Architecture 2.0 document describes the UPnP architecture and the messages sent between devices. Chapter 1 describes the discovery process, what we are using here.

The document states that a USN (Unique Service Name) identifies a unique instance of a device or a service. It is a combination of the UDN (Unique Device Name) and optionally the ST (Search Target). I think you are familiar with both, given the changes you've done. An example of a USN the upnp component uses is uuid:A37351C5-8521-4c24-A43E-546751B8137B::urn:schemas-upnp-org:device:InternetGatewayDevice:1 (specifically, this is a USN my router replies with on searches.) You can see the UDN and ST, joined together by a ::.

In your logs (thank you for providing those!), the USN is logged as uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:InternetGatewayDevice:1. It does look a bit off, the UDN does not look like a device-UUID ("MANDATORY UUID format" in the UPnP architecture document), the numbers should be something as described at section 1.1.4. Yet, the upnp component (and the library used for communicating with UPnP devices) should be able to handle this.

The UDN is found (via the USN) in the search mechanism, and also in the device description part. An XML file describes the device and the capabilities of this device. You can see this when you point your browser to http://192.168.0.1:80/uuid:277F2473-1148-4B42-B509-435C99884FD2/RootDevice.xml. This device description also provides a UDN. Note that these UDNs do have to be equal. The UDN - seen in the URL - does seem to be different though: uuid:277F2473-1148-4B42-B509-435C99884FD2 vs uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08.

I do think the UDN found in the device description differs from the UDN found in the search responses and that this is the reason why the device is never matched. When the config entry is created the UDN from the device description is used. Then, when initializing the component from the config entry, the UDN is different and thus not matched. Your change uses the UDN from the device description which is why it works for you.

Sorry for the lengthy reply. This goes very deep very fast and I hope this is comprehensible for you.

To investigate a bit further, please provide the logging including your change. This reports the UDN and ST and the discovery_info.

In the end though, I do think your router does not conform to the UPnP specification and is the reason why the Sagem router isn't detected.

@bigfoot38
Copy link
Author

Thanks for the explanations,

They makes things much clearer. My intention was mainly to try to make my device working with the idea that it may help for debugging. My knowledge in that field are almost zero, I was like, well, trying to open a can with a screwdriver. Please find enclosed the log you requested.

Regards

@StevenLooman
Copy link
Contributor

StevenLooman commented Feb 26, 2024

Thank you for the logging @bigfoot38. As expected, it seems the UDN the router reports via SSDP/search is different than it reports via the device description/XML.

A part of the logging:

2024-02-25 21:02:25.262 DEBUG (MainThread) [homeassistant.components.ssdp] Discovered upnp at http://192.168.0.1:80/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/RootDevice.xml
2024-02-25 21:02:25.262 DEBUG (MainThread) [homeassistant.components.upnp] udn for st: urn:schemas-upnp-org:device:InternetGatewayDevice:1 : uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08
2024-02-25 21:02:25.262 DEBUG (MainThread) [homeassistant.components.upnp] Device from cache: uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592, at:
SsdpServiceInfo(
	ssdp_usn='uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:InternetGatewayDevice:1',
	ssdp_udn='uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08',
	ssdp_st='urn:schemas-upnp-org:device:InternetGatewayDevice:1',
	ssdp_location='http://192.168.0.1:80/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/RootDevice.xml',
	ssdp_all_locations={
		'http://192.168.0.1:80/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/RootDevice.xml'
	},
	ssdp_nt=None,
	ssdp_ext='',
	ssdp_server='UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0',
	ssdp_headers={
		'Cache-Control': 'max-age=1900',
		'Location': 'http://192.168.0.1:80/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/RootDevice.xml',
		'Server': 'UPnP/1.0 UPnP/1.0 UPnP-Device-Host/1.0',
		'ST': 'urn:schemas-upnp-org:device:InternetGatewayDevice:1',
		'USN': 'uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:InternetGatewayDevice:1',
		'EXT': '',
		'_host': '192.168.0.1',
		'_udn': 'uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08',
		'_location_original': 'http://192.168.0.1:80/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/RootDevice.xml',
		'location': 'http://192.168.0.1:80/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/RootDevice.xml',
		'_timestamp': datetime.datetime(2024, 2, 25, 21, 2, 25, 115574),
		'_remote_addr': ('192.168.0.1', 1900),
		'_port': 1900,
		'_local_addr': ('0.0.0.0', 0),
		'_source': <SsdpSource.SEARCH: 'search'>
	},
	upnp={
		'deviceType': 'urn:schemas-upnp-org:device:InternetGatewayDevice:1',
		'friendlyName': 'SAGEM F@ST3286',
		'manufacturer': 'SAGEM',
		'manufacturerURL': 'http://www.broadcom.com',
		'modelDescription': 'F@ST3286',
		'modelName': 'F@ST3286',
		'modelNumber': 'F@ST3286',
		'modelURL': 'http://www.broadcom.com',
		'serialNumber': '(unimplemented)',
		'UDN': 'uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592',
		'UPC': '(unimplemented)',
		'serviceList': {
			'service': {
				'serviceType': 'urn:schemas-upnp-org:service:Layer3Forwarding:1',
				'serviceId': 'urn:upnp-org:serviceId:L3Forwarding1',
				'SCPDURL': '/Layer3Forwarding.xml',
				'controlURL': '/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/Layer3Forwarding',
				'eventSubURL': '/uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592/Layer3Forwarding'
			}
		},
		'deviceList': {
			'device': {
				'deviceType': 'urn:schemas-upnp-org:device:WANDevice:1',
				'friendlyName': 'SAGEM F@ST3286',
				'manufacturer': 'SAGEM',
				'manufacturerURL': 'http://www.broadcom.com',
				'modelDescription': 'F@ST3286',
				'modelName': 'F@ST3286',
				'modelNumber': 'F@ST3286',
				'modelURL': 'http://www.broadcom.com',
				'serialNumber': '(unimplemented)',
				'UDN': 'uuid:8BCD2389-903F-4A52-BCFB-92DE02C919C4',
				'UPC': '(unimplemented)',
				'serviceList': {
					'service': {
						'serviceType': 'urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1',
						'serviceId': 'urn:upnp-org:serviceId:WANCommonIFC1',
						'SCPDURL': '/WANCommonInterfaceConfig.xml',
						'controlURL': '/uuid:8BCD2389-903F-4A52-BCFB-92DE02C919C4/WANCommonInterfaceConfig',
						'eventSubURL': '/uuid:8BCD2389-903F-4A52-BCFB-92DE02C919C4/WANCommonInterfaceConfig'
					}
				},
				'deviceList': {
					'device': {
						'deviceType': 'urn:schemas-upnp-org:device:WANConnectionDevice:1',
						'friendlyName': 'SAGEM F@ST3286',
						'manufacturer': 'SAGEM',
						'manufacturerURL': 'http://www.broadcom.com',
						'modelDescription': 'F@ST3286',
						'modelName': 'F@ST3286',
						'modelNumber': 'F@ST3286',
						'modelURL': 'http://www.broadcom.com',
						'serialNumber': '(unimplemented)',
						'UDN': 'uuid:89103C39-DFA9-46A9-98AB-24BCEFF23EB2',
						'UPC': '(unimplemented)',
						'serviceList': {
							'service': {
								'serviceType': 'urn:schemas-upnp-org:service:WANIPConnection:1',
								'serviceId': 'urn:upnp-org:serviceId:WANIPConn1',
								'SCPDURL': '/WANIPConnection.xml',
								'controlURL': '/uuid:89103C39-DFA9-46A9-98AB-24BCEFF23EB2/WANIPConnection',
								'eventSubURL': '/uuid:89103C39-DFA9-46A9-98AB-24BCEFF23EB2/WANIPConnection'
							}
						}
					}
				}
			}
		},
		'presentationURL': '/'
	},
	x_homeassistant_matching_domains=set()
)

Above lists the discovery info/SsdpServiceInfo. As you can see the ssdp_usn is uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08::urn:schemas-upnp-org:device:InternetGatewayDevice:1. From this, the ssdp_udn is extracted (uuid:upnp-InternetGatewayDevice-1_0-4065a3e4ad08). This is UDN is found via the SSDP discovery mechanism. The device description provided by the the router states it has UDN uuid:05ECE3AB-8D1E-4F06-818D-6CF33F78B592, as seen at upnp.UDN.

These values differ and as a result, the discovery info is not used (regularly, your patch changes this and thus is working for you).

However, the question is perhaps why is the stored UDN taken from the device description and not from the SSDP traffic? Using this consistently should have prevented the problem. The Sagem router should have implemented this properly, but the world isn't perfect.

I'll see if the used UDN can be changed from the device description to the SSDP discovery without too much impact.

@StevenLooman
Copy link
Contributor

@bigfoot38 is it possible for you to test the mentioned PR?

@bigfoot38
Copy link
Author

Tried it out, it works well.
I joined the corresponding logs just in case.

@StevenLooman
Copy link
Contributor

Thank you for testing and providing the logs. I don't see anything off in the logs, except for the Device Description-UDN used here and there.

I'd like to make one change to make sure existing entries don't break. This searches for both the Device Description-UDN (such as it is now) and the SSDP-UDN for the DeviceEntry in the home assistant device registry. Can you test this as well?

If you want to, you could file a bug with Sagem, stating the UDNs are different and point to this issue. Hopefully they can fix the mismatch and prevent future errors (in systems other than Home Assistant). Though I do understand you do not want to do this and/or Sagem won't even corporate.

@bigfoot38
Copy link
Author

Your welcome, thank you for making my device working with home assistant.

I tested your latest changes and it still work:

  • Adding the device to the integration
  • Reading the sensors

I will try to fill up a bug with Sagem. However, this device is the property of my internet provider who may has modified the firmware since its logo is on the router's web interface.

@github-actions github-actions bot locked and limited conversation to collaborators Apr 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
2 participants