diff --git a/homeassistant/components/ssdp/websocket_api.py b/homeassistant/components/ssdp/websocket_api.py index 747d8f0b007..5342ec8035b 100644 --- a/homeassistant/components/ssdp/websocket_api.py +++ b/homeassistant/components/ssdp/websocket_api.py @@ -10,7 +10,10 @@ import voluptuous as vol from homeassistant.components import websocket_api from homeassistant.core import HassJob, HomeAssistant, callback 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 .scanner import Scanner, SsdpChange @@ -47,7 +50,13 @@ async def ws_subscribe_discovery( @callback def _async_on_data(info: SsdpServiceInfo, change: SsdpChange) -> None: 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 remove_msg = { FIELD_SSDP_ST: info.ssdp_st, diff --git a/tests/components/ssdp/test_websocket_api.py b/tests/components/ssdp/test_websocket_api.py index 124dfc534d5..eb71c33a690 100644 --- a/tests/components/ssdp/test_websocket_api.py +++ b/tests/components/ssdp/test_websocket_api.py @@ -29,6 +29,7 @@ async def test_subscribe_discovery( Paulus + Bedroom TV """, @@ -80,7 +81,12 @@ async def test_subscribe_discovery( "ssdp_st": "mock-st", "ssdp_udn": "uuid:mock-udn", "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": [], } ] @@ -119,7 +125,12 @@ async def test_subscribe_discovery( "ssdp_st": "upnp:rootdevice", "ssdp_udn": "uuid:mock-udn", "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"], } ]