mirror of
https://github.com/home-assistant/core.git
synced 2025-07-08 05:47:10 +00:00
Make name a top-level key for SSDP discovery WebSocket API (#143923)
This commit is contained in:
parent
c562cba030
commit
4b6fa12925
@ -10,7 +10,10 @@ import voluptuous as vol
|
|||||||
from homeassistant.components import websocket_api
|
from homeassistant.components import websocket_api
|
||||||
from homeassistant.core import HassJob, HomeAssistant, callback
|
from homeassistant.core import HassJob, HomeAssistant, callback
|
||||||
from homeassistant.helpers.json import json_bytes
|
from homeassistant.helpers.json import json_bytes
|
||||||
from homeassistant.helpers.service_info.ssdp import SsdpServiceInfo
|
from homeassistant.helpers.service_info.ssdp import (
|
||||||
|
ATTR_UPNP_FRIENDLY_NAME,
|
||||||
|
SsdpServiceInfo,
|
||||||
|
)
|
||||||
|
|
||||||
from .const import DOMAIN, SSDP_SCANNER
|
from .const import DOMAIN, SSDP_SCANNER
|
||||||
from .scanner import Scanner, SsdpChange
|
from .scanner import Scanner, SsdpChange
|
||||||
@ -47,7 +50,13 @@ async def ws_subscribe_discovery(
|
|||||||
@callback
|
@callback
|
||||||
def _async_on_data(info: SsdpServiceInfo, change: SsdpChange) -> None:
|
def _async_on_data(info: SsdpServiceInfo, change: SsdpChange) -> None:
|
||||||
if change is not SsdpChange.BYEBYE:
|
if change is not SsdpChange.BYEBYE:
|
||||||
_async_event_message({"add": [asdict(info)]})
|
_async_event_message(
|
||||||
|
{
|
||||||
|
"add": [
|
||||||
|
{"name": info.upnp.get(ATTR_UPNP_FRIENDLY_NAME), **asdict(info)}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)
|
||||||
return
|
return
|
||||||
remove_msg = {
|
remove_msg = {
|
||||||
FIELD_SSDP_ST: info.ssdp_st,
|
FIELD_SSDP_ST: info.ssdp_st,
|
||||||
|
@ -29,6 +29,7 @@ async def test_subscribe_discovery(
|
|||||||
<root>
|
<root>
|
||||||
<device>
|
<device>
|
||||||
<deviceType>Paulus</deviceType>
|
<deviceType>Paulus</deviceType>
|
||||||
|
<friendlyName>Bedroom TV</friendlyName>
|
||||||
</device>
|
</device>
|
||||||
</root>
|
</root>
|
||||||
""",
|
""",
|
||||||
@ -80,7 +81,12 @@ async def test_subscribe_discovery(
|
|||||||
"ssdp_st": "mock-st",
|
"ssdp_st": "mock-st",
|
||||||
"ssdp_udn": "uuid:mock-udn",
|
"ssdp_udn": "uuid:mock-udn",
|
||||||
"ssdp_usn": "uuid:mock-udn::mock-st",
|
"ssdp_usn": "uuid:mock-udn::mock-st",
|
||||||
"upnp": {"UDN": "uuid:mock-udn", "deviceType": "Paulus"},
|
"upnp": {
|
||||||
|
"UDN": "uuid:mock-udn",
|
||||||
|
"deviceType": "Paulus",
|
||||||
|
"friendlyName": "Bedroom TV",
|
||||||
|
},
|
||||||
|
"name": "Bedroom TV",
|
||||||
"x_homeassistant_matching_domains": [],
|
"x_homeassistant_matching_domains": [],
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -119,7 +125,12 @@ async def test_subscribe_discovery(
|
|||||||
"ssdp_st": "upnp:rootdevice",
|
"ssdp_st": "upnp:rootdevice",
|
||||||
"ssdp_udn": "uuid:mock-udn",
|
"ssdp_udn": "uuid:mock-udn",
|
||||||
"ssdp_usn": "uuid:mock-udn::mock-st",
|
"ssdp_usn": "uuid:mock-udn::mock-st",
|
||||||
"upnp": {"UDN": "uuid:mock-udn", "deviceType": "Paulus"},
|
"upnp": {
|
||||||
|
"UDN": "uuid:mock-udn",
|
||||||
|
"deviceType": "Paulus",
|
||||||
|
"friendlyName": "Bedroom TV",
|
||||||
|
},
|
||||||
|
"name": "Bedroom TV",
|
||||||
"x_homeassistant_matching_domains": ["mock-domain"],
|
"x_homeassistant_matching_domains": ["mock-domain"],
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user