diff --git a/homeassistant/components/samsungtv/bridge.py b/homeassistant/components/samsungtv/bridge.py index 6ad2d6eb8bff..39f6a5e4f36c 100644 --- a/homeassistant/components/samsungtv/bridge.py +++ b/homeassistant/components/samsungtv/bridge.py @@ -4,7 +4,7 @@ from __future__ import annotations from abc import ABC, abstractmethod from asyncio.exceptions import TimeoutError as AsyncioTimeoutError import contextlib -from typing import Any +from typing import Any, cast from samsungctl import Remote from samsungctl.exceptions import AccessDenied, ConnectionClosed, UnhandledResponse @@ -313,10 +313,12 @@ class SamsungTVWSBridge(SamsungTVBridge): """Get installed app list.""" if self._app_list is None: if remote := self._get_remote(): - raw_app_list: list[dict[str, str]] = remote.app_list() + raw_app_list = remote.app_list() self._app_list = { app["name"]: app["appId"] - for app in sorted(raw_app_list, key=lambda app: app["name"]) + for app in sorted( + raw_app_list or [], key=lambda app: cast(str, app["name"]) + ) } return self._app_list @@ -355,8 +357,8 @@ class SamsungTVWSBridge(SamsungTVBridge): host=self.host, port=self.port, token=self.token, - timeout=config[CONF_TIMEOUT], - name=config[CONF_NAME], + timeout=TIMEOUT_REQUEST, + name=VALUE_CONF_NAME, ) as remote: remote.open() self.token = remote.token @@ -379,6 +381,7 @@ class SamsungTVWSBridge(SamsungTVBridge): async def async_device_info(self) -> dict[str, Any] | None: """Try to gather infos of this TV.""" if self._rest_api is None: + assert self.port self._rest_api = SamsungTVAsyncRest( host=self.host, session=async_get_clientsession(self.hass), @@ -423,7 +426,7 @@ class SamsungTVWSBridge(SamsungTVBridge): # Different reasons, e.g. hostname not resolveable pass - def _get_remote(self) -> SamsungTVWS: + def _get_remote(self) -> SamsungTVWS | None: """Create or return a remote control instance.""" if self._remote is None: # We need to create a new instance to reconnect. @@ -431,6 +434,7 @@ class SamsungTVWSBridge(SamsungTVBridge): LOGGER.debug( "Create SamsungTVWSBridge for %s (%s)", CONF_NAME, self.host ) + assert self.port self._remote = SamsungTVWS( host=self.host, port=self.port, diff --git a/homeassistant/components/samsungtv/manifest.json b/homeassistant/components/samsungtv/manifest.json index dd014fab97d9..a536169de90e 100644 --- a/homeassistant/components/samsungtv/manifest.json +++ b/homeassistant/components/samsungtv/manifest.json @@ -5,7 +5,7 @@ "requirements": [ "getmac==0.8.2", "samsungctl[websocket]==0.7.1", - "samsungtvws[async]==2.0.0", + "samsungtvws[async]==2.1.0", "wakeonlan==2.0.1" ], "ssdp": [ diff --git a/requirements_all.txt b/requirements_all.txt index 7cfd3f3242a3..7b208fc56664 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2093,7 +2093,7 @@ rxv==0.7.0 samsungctl[websocket]==0.7.1 # homeassistant.components.samsungtv -samsungtvws[async]==2.0.0 +samsungtvws[async]==2.1.0 # homeassistant.components.satel_integra satel_integra==0.3.4 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index f46e0adf646c..a44c5c3772f9 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1330,7 +1330,7 @@ rxv==0.7.0 samsungctl[websocket]==0.7.1 # homeassistant.components.samsungtv -samsungtvws[async]==2.0.0 +samsungtvws[async]==2.1.0 # homeassistant.components.dhcp scapy==2.4.5