diff --git a/homeassistant/components/binary_sensor/homematic.py b/homeassistant/components/binary_sensor/homematic.py index 980fab42487..1ae7fde706a 100644 --- a/homeassistant/components/binary_sensor/homematic.py +++ b/homeassistant/components/binary_sensor/homematic.py @@ -7,8 +7,7 @@ https://home-assistant.io/components/binary_sensor.homematic/ import logging from homeassistant.const import STATE_UNKNOWN from homeassistant.components.binary_sensor import BinarySensorDevice -from homeassistant.components.homematic import HMDevice -from homeassistant.loader import get_component +from homeassistant.components.homematic import HMDevice, ATTR_DISCOVER_DEVICES _LOGGER = logging.getLogger(__name__) @@ -29,18 +28,18 @@ SENSOR_TYPES_CLASS = { } -def setup_platform(hass, config, add_callback_devices, discovery_info=None): +def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the Homematic binary sensor platform.""" if discovery_info is None: return - homematic = get_component("homematic") - return homematic.setup_hmdevice_discovery_helper( - hass, - HMBinarySensor, - discovery_info, - add_callback_devices - ) + devices = [] + for config in discovery_info[ATTR_DISCOVER_DEVICES]: + new_device = HMBinarySensor(hass, config) + new_device.link_homematic() + devices.append(new_device) + + add_devices(devices) class HMBinarySensor(HMDevice, BinarySensorDevice): diff --git a/homeassistant/components/climate/homematic.py b/homeassistant/components/climate/homematic.py index 1563289a19d..66b50cd507d 100644 --- a/homeassistant/components/climate/homematic.py +++ b/homeassistant/components/climate/homematic.py @@ -6,10 +6,9 @@ https://home-assistant.io/components/climate.homematic/ """ import logging from homeassistant.components.climate import ClimateDevice, STATE_AUTO -from homeassistant.components.homematic import HMDevice +from homeassistant.components.homematic import HMDevice, ATTR_DISCOVER_DEVICES from homeassistant.util.temperature import convert from homeassistant.const import TEMP_CELSIUS, STATE_UNKNOWN, ATTR_TEMPERATURE -from homeassistant.loader import get_component DEPENDENCIES = ['homematic'] @@ -37,18 +36,18 @@ HM_HUMI_MAP = [ HM_CONTROL_MODE = 'CONTROL_MODE' -def setup_platform(hass, config, add_callback_devices, discovery_info=None): +def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the Homematic thermostat platform.""" if discovery_info is None: return - homematic = get_component("homematic") - return homematic.setup_hmdevice_discovery_helper( - hass, - HMThermostat, - discovery_info, - add_callback_devices - ) + devices = [] + for config in discovery_info[ATTR_DISCOVER_DEVICES]: + new_device = HMThermostat(hass, config) + new_device.link_homematic() + devices.append(new_device) + + add_devices(devices) class HMThermostat(HMDevice, ClimateDevice): diff --git a/homeassistant/components/cover/homematic.py b/homeassistant/components/cover/homematic.py index 3a215747eb9..8420b8b47e3 100644 --- a/homeassistant/components/cover/homematic.py +++ b/homeassistant/components/cover/homematic.py @@ -10,28 +10,26 @@ properly configured. import logging from homeassistant.const import STATE_UNKNOWN -from homeassistant.components.cover import CoverDevice,\ - ATTR_POSITION -from homeassistant.components.homematic import HMDevice -from homeassistant.loader import get_component +from homeassistant.components.cover import CoverDevice, ATTR_POSITION +from homeassistant.components.homematic import HMDevice, ATTR_DISCOVER_DEVICES _LOGGER = logging.getLogger(__name__) DEPENDENCIES = ['homematic'] -def setup_platform(hass, config, add_callback_devices, discovery_info=None): +def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the platform.""" if discovery_info is None: return - homematic = get_component("homematic") - return homematic.setup_hmdevice_discovery_helper( - hass, - HMCover, - discovery_info, - add_callback_devices - ) + devices = [] + for config in discovery_info[ATTR_DISCOVER_DEVICES]: + new_device = HMCover(hass, config) + new_device.link_homematic() + devices.append(new_device) + + add_devices(devices) class HMCover(HMDevice, CoverDevice): diff --git a/homeassistant/components/homematic.py b/homeassistant/components/homematic.py index d4065128757..09d27e70560 100644 --- a/homeassistant/components/homematic.py +++ b/homeassistant/components/homematic.py @@ -520,23 +520,6 @@ def _create_ha_name(name, channel, param, count): return "{} {} {}".format(name, channel, param) -def setup_hmdevice_discovery_helper(hass, hmdevicetype, discovery_info, - add_callback_devices): - """Helper to setup Homematic devices with discovery info.""" - devices = [] - for config in discovery_info[ATTR_DISCOVER_DEVICES]: - _LOGGER.debug("Add device %s from config: %s", - str(hmdevicetype), str(config)) - - # create object and add to HA - new_device = hmdevicetype(hass, config) - new_device.link_homematic() - devices.append(new_device) - - add_callback_devices(devices) - return True - - def _hm_event_handler(hass, proxy, device, caller, attribute, value): """Handle all pyhomematic device events.""" try: diff --git a/homeassistant/components/light/homematic.py b/homeassistant/components/light/homematic.py index f4076439d09..08d79b3245a 100644 --- a/homeassistant/components/light/homematic.py +++ b/homeassistant/components/light/homematic.py @@ -5,11 +5,10 @@ For more details about this platform, please refer to the documentation at https://home-assistant.io/components/light.homematic/ """ import logging -from homeassistant.components.light import (ATTR_BRIGHTNESS, - SUPPORT_BRIGHTNESS, Light) -from homeassistant.components.homematic import HMDevice +from homeassistant.components.light import ( + ATTR_BRIGHTNESS, SUPPORT_BRIGHTNESS, Light) +from homeassistant.components.homematic import HMDevice, ATTR_DISCOVER_DEVICES from homeassistant.const import STATE_UNKNOWN -from homeassistant.loader import get_component _LOGGER = logging.getLogger(__name__) @@ -23,13 +22,13 @@ def setup_platform(hass, config, add_devices, discovery_info=None): if discovery_info is None: return - homematic = get_component("homematic") - return homematic.setup_hmdevice_discovery_helper( - hass, - HMLight, - discovery_info, - add_devices - ) + devices = [] + for config in discovery_info[ATTR_DISCOVER_DEVICES]: + new_device = HMLight(hass, config) + new_device.link_homematic() + devices.append(new_device) + + add_devices(devices) class HMLight(HMDevice, Light): diff --git a/homeassistant/components/sensor/homematic.py b/homeassistant/components/sensor/homematic.py index 2f5137e6a5c..df2951feb3d 100644 --- a/homeassistant/components/sensor/homematic.py +++ b/homeassistant/components/sensor/homematic.py @@ -10,8 +10,7 @@ properly configured. import logging from homeassistant.const import STATE_UNKNOWN -from homeassistant.components.homematic import HMDevice -from homeassistant.loader import get_component +from homeassistant.components.homematic import HMDevice, ATTR_DISCOVER_DEVICES _LOGGER = logging.getLogger(__name__) @@ -45,18 +44,18 @@ HM_UNIT_HA_CAST = { } -def setup_platform(hass, config, add_callback_devices, discovery_info=None): +def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the platform.""" if discovery_info is None: return - homematic = get_component("homematic") - return homematic.setup_hmdevice_discovery_helper( - hass, - HMSensor, - discovery_info, - add_callback_devices - ) + devices = [] + for config in discovery_info[ATTR_DISCOVER_DEVICES]: + new_device = HMSensor(hass, config) + new_device.link_homematic() + devices.append(new_device) + + add_devices(devices) class HMSensor(HMDevice): diff --git a/homeassistant/components/switch/homematic.py b/homeassistant/components/switch/homematic.py index 0649833ab59..ecaae372f81 100644 --- a/homeassistant/components/switch/homematic.py +++ b/homeassistant/components/switch/homematic.py @@ -6,27 +6,26 @@ https://home-assistant.io/components/switch.homematic/ """ import logging from homeassistant.components.switch import SwitchDevice -from homeassistant.components.homematic import HMDevice +from homeassistant.components.homematic import HMDevice, ATTR_DISCOVER_DEVICES from homeassistant.const import STATE_UNKNOWN -from homeassistant.loader import get_component _LOGGER = logging.getLogger(__name__) DEPENDENCIES = ['homematic'] -def setup_platform(hass, config, add_callback_devices, discovery_info=None): +def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the Homematic switch platform.""" if discovery_info is None: return - homematic = get_component("homematic") - return homematic.setup_hmdevice_discovery_helper( - hass, - HMSwitch, - discovery_info, - add_callback_devices - ) + devices = [] + for config in discovery_info[ATTR_DISCOVER_DEVICES]: + new_device = HMSwitch(hass, config) + new_device.link_homematic() + devices.append(new_device) + + add_devices(devices) class HMSwitch(HMDevice, SwitchDevice):