Move imports in knx component (#28008)

* Move imports in knx component

* Fix pylint
This commit is contained in:
Diefferson Koderer Môro 2019-10-22 05:38:21 +00:00 committed by Paulus Schoutsen
parent 6c18bbcf04
commit ff17bb4a56
9 changed files with 29 additions and 55 deletions

View File

@ -2,6 +2,11 @@
import logging import logging
import voluptuous as vol import voluptuous as vol
from xknx import XKNX
from xknx.devices import ActionCallback, DateTime, DateTimeBroadcastType, ExposeSensor
from xknx.exceptions import XKNXException
from xknx.io import DEFAULT_MCAST_PORT, ConnectionConfig, ConnectionType
from xknx.knx import AddressFilter, DPTArray, DPTBinary, GroupAddress, Telegram
from homeassistant.const import ( from homeassistant.const import (
CONF_ENTITY_ID, CONF_ENTITY_ID,
@ -90,13 +95,10 @@ SERVICE_KNX_SEND_SCHEMA = vol.Schema(
async def async_setup(hass, config): async def async_setup(hass, config):
"""Set up the KNX component.""" """Set up the KNX component."""
from xknx.exceptions import XKNXException
try: try:
hass.data[DATA_KNX] = KNXModule(hass, config) hass.data[DATA_KNX] = KNXModule(hass, config)
hass.data[DATA_KNX].async_create_exposures() hass.data[DATA_KNX].async_create_exposures()
await hass.data[DATA_KNX].start() await hass.data[DATA_KNX].start()
except XKNXException as ex: except XKNXException as ex:
_LOGGER.warning("Can't connect to KNX interface: %s", ex) _LOGGER.warning("Can't connect to KNX interface: %s", ex)
hass.components.persistent_notification.async_create( hass.components.persistent_notification.async_create(
@ -157,8 +159,6 @@ class KNXModule:
def init_xknx(self): def init_xknx(self):
"""Initialize of KNX object.""" """Initialize of KNX object."""
from xknx import XKNX
self.xknx = XKNX( self.xknx = XKNX(
config=self.config_file(), config=self.config_file(),
loop=self.hass.loop, loop=self.hass.loop,
@ -198,8 +198,6 @@ class KNXModule:
def connection_config_routing(self): def connection_config_routing(self):
"""Return the connection_config if routing is configured.""" """Return the connection_config if routing is configured."""
from xknx.io import ConnectionConfig, ConnectionType
local_ip = self.config[DOMAIN][CONF_KNX_ROUTING].get(CONF_KNX_LOCAL_IP) local_ip = self.config[DOMAIN][CONF_KNX_ROUTING].get(CONF_KNX_LOCAL_IP)
return ConnectionConfig( return ConnectionConfig(
connection_type=ConnectionType.ROUTING, local_ip=local_ip connection_type=ConnectionType.ROUTING, local_ip=local_ip
@ -207,8 +205,6 @@ class KNXModule:
def connection_config_tunneling(self): def connection_config_tunneling(self):
"""Return the connection_config if tunneling is configured.""" """Return the connection_config if tunneling is configured."""
from xknx.io import ConnectionConfig, ConnectionType, DEFAULT_MCAST_PORT
gateway_ip = self.config[DOMAIN][CONF_KNX_TUNNELING].get(CONF_HOST) gateway_ip = self.config[DOMAIN][CONF_KNX_TUNNELING].get(CONF_HOST)
gateway_port = self.config[DOMAIN][CONF_KNX_TUNNELING].get(CONF_PORT) gateway_port = self.config[DOMAIN][CONF_KNX_TUNNELING].get(CONF_PORT)
local_ip = self.config[DOMAIN][CONF_KNX_TUNNELING].get(CONF_KNX_LOCAL_IP) local_ip = self.config[DOMAIN][CONF_KNX_TUNNELING].get(CONF_KNX_LOCAL_IP)
@ -224,8 +220,6 @@ class KNXModule:
def connection_config_auto(self): def connection_config_auto(self):
"""Return the connection_config if auto is configured.""" """Return the connection_config if auto is configured."""
# pylint: disable=no-self-use # pylint: disable=no-self-use
from xknx.io import ConnectionConfig
return ConnectionConfig() return ConnectionConfig()
def register_callbacks(self): def register_callbacks(self):
@ -234,8 +228,6 @@ class KNXModule:
CONF_KNX_FIRE_EVENT in self.config[DOMAIN] CONF_KNX_FIRE_EVENT in self.config[DOMAIN]
and self.config[DOMAIN][CONF_KNX_FIRE_EVENT] and self.config[DOMAIN][CONF_KNX_FIRE_EVENT]
): ):
from xknx.knx import AddressFilter
address_filters = list( address_filters = list(
map(AddressFilter, self.config[DOMAIN][CONF_KNX_FIRE_EVENT_FILTER]) map(AddressFilter, self.config[DOMAIN][CONF_KNX_FIRE_EVENT_FILTER])
) )
@ -274,8 +266,6 @@ class KNXModule:
async def service_send_to_knx_bus(self, call): async def service_send_to_knx_bus(self, call):
"""Service for sending an arbitrary KNX message to the KNX bus.""" """Service for sending an arbitrary KNX message to the KNX bus."""
from xknx.knx import Telegram, GroupAddress, DPTBinary, DPTArray
attr_payload = call.data.get(SERVICE_KNX_ATTR_PAYLOAD) attr_payload = call.data.get(SERVICE_KNX_ATTR_PAYLOAD)
attr_address = call.data.get(SERVICE_KNX_ATTR_ADDRESS) attr_address = call.data.get(SERVICE_KNX_ATTR_ADDRESS)
@ -304,9 +294,7 @@ class KNXAutomation:
script_name = "{} turn ON script".format(device.get_name()) script_name = "{} turn ON script".format(device.get_name())
self.script = Script(hass, action, script_name) self.script = Script(hass, action, script_name)
import xknx self.action = ActionCallback(
self.action = xknx.devices.ActionCallback(
hass.data[DATA_KNX].xknx, self.script.async_run, hook=hook, counter=counter hass.data[DATA_KNX].xknx, self.script.async_run, hook=hook, counter=counter
) )
device.actions.append(self.action) device.actions.append(self.action)
@ -325,8 +313,6 @@ class KNXExposeTime:
@callback @callback
def async_register(self): def async_register(self):
"""Register listener.""" """Register listener."""
from xknx.devices import DateTime, DateTimeBroadcastType
broadcast_type_string = self.type.upper() broadcast_type_string = self.type.upper()
broadcast_type = DateTimeBroadcastType[broadcast_type_string] broadcast_type = DateTimeBroadcastType[broadcast_type_string]
self.device = DateTime( self.device = DateTime(
@ -350,8 +336,6 @@ class KNXExposeSensor:
@callback @callback
def async_register(self): def async_register(self):
"""Register listener.""" """Register listener."""
from xknx.devices import ExposeSensor
self.device = ExposeSensor( self.device = ExposeSensor(
self.xknx, self.xknx,
name=self.entity_id, name=self.entity_id,

View File

@ -1,5 +1,6 @@
"""Support for KNX/IP binary sensors.""" """Support for KNX/IP binary sensors."""
import voluptuous as vol import voluptuous as vol
from xknx.devices import BinarySensor
from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorDevice from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorDevice
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
@ -70,9 +71,8 @@ def async_add_entities_discovery(hass, discovery_info, async_add_entities):
def async_add_entities_config(hass, config, async_add_entities): def async_add_entities_config(hass, config, async_add_entities):
"""Set up binary senor for KNX platform configured within platform.""" """Set up binary senor for KNX platform configured within platform."""
name = config[CONF_NAME] name = config[CONF_NAME]
import xknx
binary_sensor = xknx.devices.BinarySensor( binary_sensor = BinarySensor(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=name, name=name,
group_address_state=config[CONF_STATE_ADDRESS], group_address_state=config[CONF_STATE_ADDRESS],

View File

@ -1,20 +1,22 @@
"""Support for KNX/IP climate devices.""" """Support for KNX/IP climate devices."""
from typing import Optional, List from typing import List, Optional
import voluptuous as vol import voluptuous as vol
from xknx.devices import Climate as XknxClimate, ClimateMode as XknxClimateMode
from xknx.knx import HVACOperationMode
from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice
from homeassistant.components.climate.const import ( from homeassistant.components.climate.const import (
HVAC_MODE_AUTO,
HVAC_MODE_COOL,
HVAC_MODE_DRY, HVAC_MODE_DRY,
HVAC_MODE_FAN_ONLY, HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT, HVAC_MODE_HEAT,
HVAC_MODE_OFF, HVAC_MODE_OFF,
HVAC_MODE_COOL,
HVAC_MODE_AUTO,
PRESET_ECO,
PRESET_SLEEP,
PRESET_AWAY, PRESET_AWAY,
PRESET_COMFORT, PRESET_COMFORT,
PRESET_ECO,
PRESET_SLEEP,
SUPPORT_PRESET_MODE, SUPPORT_PRESET_MODE,
SUPPORT_TARGET_TEMPERATURE, SUPPORT_TARGET_TEMPERATURE,
) )
@ -135,9 +137,7 @@ def async_add_entities_discovery(hass, discovery_info, async_add_entities):
@callback @callback
def async_add_entities_config(hass, config, async_add_entities): def async_add_entities_config(hass, config, async_add_entities):
"""Set up climate for KNX platform configured within platform.""" """Set up climate for KNX platform configured within platform."""
import xknx climate_mode = XknxClimateMode(
climate_mode = xknx.devices.ClimateMode(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME] + " Mode", name=config[CONF_NAME] + " Mode",
group_address_operation_mode=config.get(CONF_OPERATION_MODE_ADDRESS), group_address_operation_mode=config.get(CONF_OPERATION_MODE_ADDRESS),
@ -165,7 +165,7 @@ def async_add_entities_config(hass, config, async_add_entities):
) )
hass.data[DATA_KNX].xknx.devices.add(climate_mode) hass.data[DATA_KNX].xknx.devices.add(climate_mode)
climate = xknx.devices.Climate( climate = XknxClimate(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME], name=config[CONF_NAME],
group_address_temperature=config[CONF_TEMPERATURE_ADDRESS], group_address_temperature=config[CONF_TEMPERATURE_ADDRESS],
@ -302,8 +302,6 @@ class KNXClimate(ClimateDevice):
elif self.device.supports_on_off and hvac_mode == HVAC_MODE_HEAT: elif self.device.supports_on_off and hvac_mode == HVAC_MODE_HEAT:
await self.device.turn_on() await self.device.turn_on()
elif self.device.mode.supports_operation_mode: elif self.device.mode.supports_operation_mode:
from xknx.knx import HVACOperationMode
knx_operation_mode = HVACOperationMode(OPERATION_MODES_INV.get(hvac_mode)) knx_operation_mode = HVACOperationMode(OPERATION_MODES_INV.get(hvac_mode))
await self.device.mode.set_operation_mode(knx_operation_mode) await self.device.mode.set_operation_mode(knx_operation_mode)
await self.async_update_ha_state() await self.async_update_ha_state()
@ -337,8 +335,6 @@ class KNXClimate(ClimateDevice):
This method must be run in the event loop and returns a coroutine. This method must be run in the event loop and returns a coroutine.
""" """
if self.device.mode.supports_operation_mode: if self.device.mode.supports_operation_mode:
from xknx.knx import HVACOperationMode
knx_operation_mode = HVACOperationMode(PRESET_MODES_INV.get(preset_mode)) knx_operation_mode = HVACOperationMode(PRESET_MODES_INV.get(preset_mode))
await self.device.mode.set_operation_mode(knx_operation_mode) await self.device.mode.set_operation_mode(knx_operation_mode)
await self.async_update_ha_state() await self.async_update_ha_state()

View File

@ -1,5 +1,6 @@
"""Support for KNX/IP covers.""" """Support for KNX/IP covers."""
import voluptuous as vol import voluptuous as vol
from xknx.devices import Cover as XknxCover
from homeassistant.components.cover import ( from homeassistant.components.cover import (
ATTR_POSITION, ATTR_POSITION,
@ -74,9 +75,7 @@ def async_add_entities_discovery(hass, discovery_info, async_add_entities):
@callback @callback
def async_add_entities_config(hass, config, async_add_entities): def async_add_entities_config(hass, config, async_add_entities):
"""Set up cover for KNX platform configured within platform.""" """Set up cover for KNX platform configured within platform."""
import xknx cover = XknxCover(
cover = xknx.devices.Cover(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME], name=config[CONF_NAME],
group_address_long=config.get(CONF_MOVE_LONG_ADDRESS), group_address_long=config.get(CONF_MOVE_LONG_ADDRESS),

View File

@ -2,6 +2,7 @@
from enum import Enum from enum import Enum
import voluptuous as vol import voluptuous as vol
from xknx.devices import Light as XknxLight
from homeassistant.components.light import ( from homeassistant.components.light import (
ATTR_BRIGHTNESS, ATTR_BRIGHTNESS,
@ -98,8 +99,6 @@ def async_add_entities_discovery(hass, discovery_info, async_add_entities):
@callback @callback
def async_add_entities_config(hass, config, async_add_entities): def async_add_entities_config(hass, config, async_add_entities):
"""Set up light for KNX platform configured within platform.""" """Set up light for KNX platform configured within platform."""
import xknx
group_address_tunable_white = None group_address_tunable_white = None
group_address_tunable_white_state = None group_address_tunable_white_state = None
group_address_color_temp = None group_address_color_temp = None
@ -111,7 +110,7 @@ def async_add_entities_config(hass, config, async_add_entities):
group_address_tunable_white = config.get(CONF_COLOR_TEMP_ADDRESS) group_address_tunable_white = config.get(CONF_COLOR_TEMP_ADDRESS)
group_address_tunable_white_state = config.get(CONF_COLOR_TEMP_STATE_ADDRESS) group_address_tunable_white_state = config.get(CONF_COLOR_TEMP_STATE_ADDRESS)
light = xknx.devices.Light( light = XknxLight(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME], name=config[CONF_NAME],
group_address_switch=config[CONF_ADDRESS], group_address_switch=config[CONF_ADDRESS],

View File

@ -1,5 +1,6 @@
"""Support for KNX/IP notification services.""" """Support for KNX/IP notification services."""
import voluptuous as vol import voluptuous as vol
from xknx.devices import Notification as XknxNotification
from homeassistant.components.notify import PLATFORM_SCHEMA, BaseNotificationService from homeassistant.components.notify import PLATFORM_SCHEMA, BaseNotificationService
from homeassistant.const import CONF_ADDRESS, CONF_NAME from homeassistant.const import CONF_ADDRESS, CONF_NAME
@ -42,9 +43,7 @@ def async_get_service_discovery(hass, discovery_info):
@callback @callback
def async_get_service_config(hass, config): def async_get_service_config(hass, config):
"""Set up notification for KNX platform configured within platform.""" """Set up notification for KNX platform configured within platform."""
import xknx notification = XknxNotification(
notification = xknx.devices.Notification(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME], name=config[CONF_NAME],
group_address=config[CONF_ADDRESS], group_address=config[CONF_ADDRESS],

View File

@ -1,5 +1,6 @@
"""Support for KNX scenes.""" """Support for KNX scenes."""
import voluptuous as vol import voluptuous as vol
from xknx.devices import Scene as XknxScene
from homeassistant.components.scene import CONF_PLATFORM, Scene from homeassistant.components.scene import CONF_PLATFORM, Scene
from homeassistant.const import CONF_ADDRESS, CONF_NAME from homeassistant.const import CONF_ADDRESS, CONF_NAME
@ -42,9 +43,7 @@ def async_add_entities_discovery(hass, discovery_info, async_add_entities):
@callback @callback
def async_add_entities_config(hass, config, async_add_entities): def async_add_entities_config(hass, config, async_add_entities):
"""Set up scene for KNX platform configured within platform.""" """Set up scene for KNX platform configured within platform."""
import xknx scene = XknxScene(
scene = xknx.devices.Scene(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME], name=config[CONF_NAME],
group_address=config[CONF_ADDRESS], group_address=config[CONF_ADDRESS],

View File

@ -1,5 +1,6 @@
"""Support for KNX/IP sensors.""" """Support for KNX/IP sensors."""
import voluptuous as vol import voluptuous as vol
from xknx.devices import Sensor as XknxSensor
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME, CONF_TYPE from homeassistant.const import CONF_NAME, CONF_TYPE
@ -44,9 +45,7 @@ def async_add_entities_discovery(hass, discovery_info, async_add_entities):
@callback @callback
def async_add_entities_config(hass, config, async_add_entities): def async_add_entities_config(hass, config, async_add_entities):
"""Set up sensor for KNX platform configured within platform.""" """Set up sensor for KNX platform configured within platform."""
import xknx sensor = XknxSensor(
sensor = xknx.devices.Sensor(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME], name=config[CONF_NAME],
group_address_state=config[CONF_STATE_ADDRESS], group_address_state=config[CONF_STATE_ADDRESS],

View File

@ -1,5 +1,6 @@
"""Support for KNX/IP switches.""" """Support for KNX/IP switches."""
import voluptuous as vol import voluptuous as vol
from xknx.devices import Switch as XknxSwitch
from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchDevice from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchDevice
from homeassistant.const import CONF_ADDRESS, CONF_NAME from homeassistant.const import CONF_ADDRESS, CONF_NAME
@ -41,9 +42,7 @@ def async_add_entities_discovery(hass, discovery_info, async_add_entities):
@callback @callback
def async_add_entities_config(hass, config, async_add_entities): def async_add_entities_config(hass, config, async_add_entities):
"""Set up switch for KNX platform configured within platform.""" """Set up switch for KNX platform configured within platform."""
import xknx switch = XknxSwitch(
switch = xknx.devices.Switch(
hass.data[DATA_KNX].xknx, hass.data[DATA_KNX].xknx,
name=config[CONF_NAME], name=config[CONF_NAME],
group_address=config[CONF_ADDRESS], group_address=config[CONF_ADDRESS],