From 83d3653062badc59e5c0d74dce0f6cd907465ad5 Mon Sep 17 00:00:00 2001 From: Niklas Fondberg Date: Fri, 17 Jul 2020 19:50:54 +0200 Subject: [PATCH] Fix cast listing for 0.112 --- custom_components/spotcast/__init__.py | 37 +++++++++++++++++--------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/custom_components/spotcast/__init__.py b/custom_components/spotcast/__init__.py index 4b30083b..1ae16217 100644 --- a/custom_components/spotcast/__init__.py +++ b/custom_components/spotcast/__init__.py @@ -11,7 +11,7 @@ import homeassistant.helpers.config_validation as cv from homeassistant.components.cast.media_player import KNOWN_CHROMECAST_INFO_KEY -__VERSION__ = "3.3.3" +__VERSION__ = "3.3.4" DOMAIN = "spotcast" _LOGGER = logging.getLogger(__name__) @@ -209,17 +209,30 @@ def websocket_handle_castdevices(hass, connection, msg): """Handle to get cast devices for debug purposes""" _LOGGER.debug("websocket_handle_castdevices msg: %s", msg) known_devices = hass.data.get(KNOWN_CHROMECAST_INFO_KEY, []) - _LOGGER.debug("websocket_handle_castdevices -> known_devices: %s", known_devices) - resp = [ - { - "host": str(known_devices[k].host), - "port": known_devices[k].port, - "uuid": known_devices[k].uuid, - "model_name": known_devices[k].model_name, - "friendly_name": known_devices[k].friendly_name, - } - for k in known_devices - ] + if type(known_devices) == set: + # HA 0.112 + resp = [ + { + "host": str(k.host), + "port": k.port, + "uuid": k.uuid, + "model_name": k.model_name, + "friendly_name": k.friendly_name, + } + for k in known_devices + ] + else: + # HA > 0.112 + resp = [ + { + "host": str(known_devices[k].host), + "port": known_devices[k].port, + "uuid": known_devices[k].uuid, + "model_name": known_devices[k].model_name, + "friendly_name": known_devices[k].friendly_name, + } + for k in known_devices + ] connection.send_message(websocket_api.result_message(msg["id"], resp))