From 43aec6e784646b6d77f53aa65be62c5ca1376d14 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 11 Jan 2022 17:29:39 +0100 Subject: [PATCH] Move list to dict in versasense discovery (#63809) * Move list to dict in versasense discovery * Adjust dictionnary key Co-authored-by: epenet --- homeassistant/components/versasense/__init__.py | 7 ++++--- homeassistant/components/versasense/sensor.py | 14 ++++++++++++-- homeassistant/components/versasense/switch.py | 14 ++++++++++++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/versasense/__init__.py b/homeassistant/components/versasense/__init__.py index 71ce25c11ad..9b1e90b698d 100644 --- a/homeassistant/components/versasense/__init__.py +++ b/homeassistant/components/versasense/__init__.py @@ -50,8 +50,8 @@ async def _configure_entities(hass, config, consumer): devices = await consumer.fetchDevices() _LOGGER.debug(devices) - sensor_info_list = [] - switch_info_list = [] + sensor_info_list = {} + switch_info_list = {} for mac, device in devices.items(): _LOGGER.info("Device connected: %s %s", device.name, mac) @@ -87,7 +87,8 @@ def _add_entity_info_to_list(peripheral, device, entity_info_list): KEY_PARENT_MAC: device.mac, } - entity_info_list.append(entity_info) + key = f"{entity_info[KEY_PARENT_MAC]}/{entity_info[KEY_IDENTIFIER]}/{entity_info[KEY_MEASUREMENT]}" + entity_info_list[key] = entity_info return entity_info_list diff --git a/homeassistant/components/versasense/sensor.py b/homeassistant/components/versasense/sensor.py index 50982e92d12..197ac9be250 100644 --- a/homeassistant/components/versasense/sensor.py +++ b/homeassistant/components/versasense/sensor.py @@ -1,7 +1,12 @@ """Support for VersaSense sensor peripheral.""" +from __future__ import annotations + import logging from homeassistant.components.sensor import SensorEntity +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import DOMAIN from .const import ( @@ -16,7 +21,12 @@ from .const import ( _LOGGER = logging.getLogger(__name__) -async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): +async def async_setup_platform( + hass: HomeAssistant, + config: ConfigType, + async_add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the sensor platform.""" if discovery_info is None: return None @@ -25,7 +35,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= sensor_list = [] - for entity_info in discovery_info: + for entity_info in discovery_info.values(): peripheral = hass.data[DOMAIN][entity_info[KEY_PARENT_MAC]][ entity_info[KEY_IDENTIFIER] ] diff --git a/homeassistant/components/versasense/switch.py b/homeassistant/components/versasense/switch.py index 78eadffea34..58181229ae8 100644 --- a/homeassistant/components/versasense/switch.py +++ b/homeassistant/components/versasense/switch.py @@ -1,7 +1,12 @@ """Support for VersaSense actuator peripheral.""" +from __future__ import annotations + import logging from homeassistant.components.switch import SwitchEntity +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import DOMAIN from .const import ( @@ -18,7 +23,12 @@ from .const import ( _LOGGER = logging.getLogger(__name__) -async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): +async def async_setup_platform( + hass: HomeAssistant, + config: ConfigType, + async_add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up actuator platform.""" if discovery_info is None: return None @@ -27,7 +37,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= actuator_list = [] - for entity_info in discovery_info: + for entity_info in discovery_info.values(): peripheral = hass.data[DOMAIN][entity_info[KEY_PARENT_MAC]][ entity_info[KEY_IDENTIFIER] ]