Move dyson imports at top-level (#29047)

This commit is contained in:
Quentame 2019-11-25 14:06:39 +01:00 committed by Pascal Vizeli
parent 193769c791
commit 752a4d7221
6 changed files with 28 additions and 64 deletions

View File

@ -1,11 +1,12 @@
"""Support for Dyson Pure Cool Link devices."""
import logging
from libpurecool.dyson import DysonAccount
import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.const import CONF_DEVICES, CONF_PASSWORD, CONF_TIMEOUT, CONF_USERNAME
from homeassistant.helpers import discovery
import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__)
@ -43,8 +44,6 @@ def setup(hass, config):
if DYSON_DEVICES not in hass.data:
hass.data[DYSON_DEVICES] = []
from libpurecool.dyson import DysonAccount
dyson_account = DysonAccount(
config[DOMAIN].get(CONF_USERNAME),
config[DOMAIN].get(CONF_PASSWORD),

View File

@ -1,7 +1,11 @@
"""Support for Dyson Pure Cool Air Quality Sensors."""
import logging
from homeassistant.components.air_quality import AirQualityEntity, DOMAIN
from libpurecool.dyson_pure_cool import DysonPureCool
from libpurecool.dyson_pure_state_v2 import DysonEnvironmentalSensorV2State
from homeassistant.components.air_quality import DOMAIN, AirQualityEntity
from . import DYSON_DEVICES
ATTRIBUTION = "Dyson purifier air quality sensor"
@ -15,7 +19,6 @@ ATTR_VOC = "volatile_organic_compounds"
def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the Dyson Sensors."""
from libpurecool.dyson_pure_cool import DysonPureCool
if discovery_info is None:
return
@ -47,8 +50,6 @@ class DysonAirSensor(AirQualityEntity):
def on_message(self, message):
"""Handle new messages which are received from the fan."""
from libpurecool.dyson_pure_state_v2 import DysonEnvironmentalSensorV2State
_LOGGER.debug(
"%s: Message received for %s device: %s", DOMAIN, self.name, message
)

View File

@ -1,20 +1,20 @@
"""Support for Dyson Pure Hot+Cool link fan."""
import logging
from libpurecool.const import HeatMode, HeatState, FocusMode, HeatTarget
from libpurecool.dyson_pure_state import DysonPureHotCoolState
from libpurecool.const import FocusMode, HeatMode, HeatState, HeatTarget
from libpurecool.dyson_pure_hotcool_link import DysonPureHotCoolLink
from libpurecool.dyson_pure_state import DysonPureHotCoolState
from homeassistant.components.climate import ClimateDevice
from homeassistant.components.climate.const import (
CURRENT_HVAC_COOL,
CURRENT_HVAC_HEAT,
CURRENT_HVAC_IDLE,
FAN_DIFFUSE,
FAN_FOCUS,
HVAC_MODE_COOL,
HVAC_MODE_HEAT,
SUPPORT_FAN_MODE,
FAN_FOCUS,
FAN_DIFFUSE,
SUPPORT_TARGET_TEMPERATURE,
)
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS

View File

@ -5,18 +5,24 @@ https://home-assistant.io/components/fan.dyson/
"""
import logging
from libpurecool.const import FanMode, FanSpeed, NightMode, Oscillation
from libpurecool.dyson_pure_cool import DysonPureCool
from libpurecool.dyson_pure_cool_link import DysonPureCoolLink
from libpurecool.dyson_pure_state import DysonPureCoolState
from libpurecool.dyson_pure_state_v2 import DysonPureCoolV2State
import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.components.fan import (
SPEED_HIGH,
SPEED_LOW,
SPEED_MEDIUM,
SUPPORT_OSCILLATE,
SUPPORT_SET_SPEED,
FanEntity,
SPEED_LOW,
SPEED_MEDIUM,
SPEED_HIGH,
)
from homeassistant.const import ATTR_ENTITY_ID
import homeassistant.helpers.config_validation as cv
from . import DYSON_DEVICES
_LOGGER = logging.getLogger(__name__)
@ -88,8 +94,6 @@ SET_DYSON_SPEED_SCHEMA = vol.Schema(
def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the Dyson fan components."""
from libpurecool.dyson_pure_cool_link import DysonPureCoolLink
from libpurecool.dyson_pure_cool import DysonPureCool
if discovery_info is None:
return
@ -197,7 +201,6 @@ class DysonPureCoolLinkDevice(FanEntity):
def on_message(self, message):
"""Call when new messages received from the fan."""
from libpurecool.dyson_pure_state import DysonPureCoolState
if isinstance(message, DysonPureCoolState):
_LOGGER.debug("Message received for fan device %s: %s", self.name, message)
@ -215,8 +218,6 @@ class DysonPureCoolLinkDevice(FanEntity):
def set_speed(self, speed: str) -> None:
"""Set the speed of the fan. Never called ??."""
from libpurecool.const import FanSpeed, FanMode
_LOGGER.debug("Set fan speed to: %s", speed)
if speed == FanSpeed.FAN_SPEED_AUTO.value:
@ -227,8 +228,6 @@ class DysonPureCoolLinkDevice(FanEntity):
def turn_on(self, speed: str = None, **kwargs) -> None:
"""Turn on the fan."""
from libpurecool.const import FanSpeed, FanMode
_LOGGER.debug("Turn on fan %s with speed %s", self.name, speed)
if speed:
if speed == FanSpeed.FAN_SPEED_AUTO.value:
@ -244,15 +243,11 @@ class DysonPureCoolLinkDevice(FanEntity):
def turn_off(self, **kwargs) -> None:
"""Turn off the fan."""
from libpurecool.const import FanMode
_LOGGER.debug("Turn off fan %s", self.name)
self._device.set_configuration(fan_mode=FanMode.OFF)
def oscillate(self, oscillating: bool) -> None:
"""Turn on/off oscillating."""
from libpurecool.const import Oscillation
_LOGGER.debug("Turn oscillation %s for device %s", oscillating, self.name)
if oscillating:
@ -275,8 +270,6 @@ class DysonPureCoolLinkDevice(FanEntity):
@property
def speed(self) -> str:
"""Return the current speed."""
from libpurecool.const import FanSpeed
if self._device.state:
if self._device.state.speed == FanSpeed.FAN_SPEED_AUTO.value:
return self._device.state.speed
@ -295,8 +288,6 @@ class DysonPureCoolLinkDevice(FanEntity):
def set_night_mode(self, night_mode: bool) -> None:
"""Turn fan in night mode."""
from libpurecool.const import NightMode
_LOGGER.debug("Set %s night mode %s", self.name, night_mode)
if night_mode:
self._device.set_configuration(night_mode=NightMode.NIGHT_MODE_ON)
@ -310,8 +301,6 @@ class DysonPureCoolLinkDevice(FanEntity):
def set_auto_mode(self, auto_mode: bool) -> None:
"""Turn fan in auto mode."""
from libpurecool.const import FanMode
_LOGGER.debug("Set %s auto mode %s", self.name, auto_mode)
if auto_mode:
self._device.set_configuration(fan_mode=FanMode.AUTO)
@ -321,8 +310,6 @@ class DysonPureCoolLinkDevice(FanEntity):
@property
def speed_list(self) -> list:
"""Get the list of available speeds."""
from libpurecool.const import FanSpeed
supported_speeds = [
FanSpeed.FAN_SPEED_AUTO.value,
int(FanSpeed.FAN_SPEED_1.value),
@ -365,8 +352,6 @@ class DysonPureCoolDevice(FanEntity):
def on_message(self, message):
"""Call when new messages received from the fan."""
from libpurecool.dyson_pure_state_v2 import DysonPureCoolV2State
if isinstance(message, DysonPureCoolV2State):
_LOGGER.debug("Message received for fan device %s: %s", self.name, message)
self.schedule_update_ha_state()
@ -392,8 +377,6 @@ class DysonPureCoolDevice(FanEntity):
def set_speed(self, speed: str) -> None:
"""Set the speed of the fan."""
from libpurecool.const import FanSpeed
if speed == SPEED_LOW:
self._device.set_fan_speed(FanSpeed.FAN_SPEED_4)
elif speed == SPEED_MEDIUM:
@ -408,8 +391,6 @@ class DysonPureCoolDevice(FanEntity):
def set_dyson_speed(self, speed: str = None) -> None:
"""Set the exact speed of the purecool fan."""
from libpurecool.const import FanSpeed
_LOGGER.debug("Set exact speed for fan %s", self.name)
fan_speed = FanSpeed("{0:04d}".format(int(speed)))
@ -487,8 +468,6 @@ class DysonPureCoolDevice(FanEntity):
@property
def speed(self):
"""Return the current speed."""
from libpurecool.const import FanSpeed
speed_map = {
FanSpeed.FAN_SPEED_1.value: SPEED_LOW,
FanSpeed.FAN_SPEED_2.value: SPEED_LOW,
@ -508,8 +487,6 @@ class DysonPureCoolDevice(FanEntity):
@property
def dyson_speed(self):
"""Return the current speed."""
from libpurecool.const import FanSpeed
if self._device.state:
if self._device.state.speed == FanSpeed.FAN_SPEED_AUTO.value:
return self._device.state.speed
@ -563,8 +540,6 @@ class DysonPureCoolDevice(FanEntity):
@property
def dyson_speed_list(self) -> list:
"""Get the list of available dyson speeds."""
from libpurecool.const import FanSpeed
return [
int(FanSpeed.FAN_SPEED_1.value),
int(FanSpeed.FAN_SPEED_2.value),

View File

@ -1,8 +1,12 @@
"""Support for Dyson Pure Cool Link Sensors."""
import logging
from libpurecool.dyson_pure_cool import DysonPureCool
from libpurecool.dyson_pure_cool_link import DysonPureCoolLink
from homeassistant.const import STATE_OFF, TEMP_CELSIUS
from homeassistant.helpers.entity import Entity
from . import DYSON_DEVICES
SENSOR_UNITS = {
@ -27,8 +31,6 @@ _LOGGER = logging.getLogger(__name__)
def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the Dyson Sensors."""
from libpurecool.dyson_pure_cool_link import DysonPureCoolLink
from libpurecool.dyson_pure_cool import DysonPureCool
if discovery_info is None:
return

View File

@ -1,6 +1,9 @@
"""Support for the Dyson 360 eye vacuum cleaner robot."""
import logging
from libpurecool.const import Dyson360EyeMode, PowerMode
from libpurecool.dyson_360_eye import Dyson360Eye
from homeassistant.components.vacuum import (
SUPPORT_BATTERY,
SUPPORT_FAN_SPEED,
@ -38,8 +41,6 @@ SUPPORT_DYSON = (
def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the Dyson 360 Eye robot vacuum platform."""
from libpurecool.dyson_360_eye import Dyson360Eye
_LOGGER.debug("Creating new Dyson 360 Eye robot vacuum")
if DYSON_360_EYE_DEVICES not in hass.data:
hass.data[DYSON_360_EYE_DEVICES] = []
@ -86,8 +87,6 @@ class Dyson360EyeDevice(VacuumDevice):
@property
def status(self):
"""Return the status of the vacuum cleaner."""
from libpurecool.const import Dyson360EyeMode
dyson_labels = {
Dyson360EyeMode.INACTIVE_CHARGING: "Stopped - Charging",
Dyson360EyeMode.INACTIVE_CHARGED: "Stopped - Charged",
@ -110,8 +109,6 @@ class Dyson360EyeDevice(VacuumDevice):
@property
def fan_speed(self):
"""Return the fan speed of the vacuum cleaner."""
from libpurecool.const import PowerMode
speed_labels = {PowerMode.MAX: "Max", PowerMode.QUIET: "Quiet"}
return speed_labels[self._device.state.power_mode]
@ -128,8 +125,6 @@ class Dyson360EyeDevice(VacuumDevice):
@property
def is_on(self) -> bool:
"""Return True if entity is on."""
from libpurecool.const import Dyson360EyeMode
return self._device.state.state in [
Dyson360EyeMode.FULL_CLEAN_INITIATED,
Dyson360EyeMode.FULL_CLEAN_ABORTED,
@ -149,8 +144,6 @@ class Dyson360EyeDevice(VacuumDevice):
@property
def battery_icon(self):
"""Return the battery icon for the vacuum cleaner."""
from libpurecool.const import Dyson360EyeMode
charging = self._device.state.state in [Dyson360EyeMode.INACTIVE_CHARGING]
return icon_for_battery_level(
battery_level=self.battery_level, charging=charging
@ -158,8 +151,6 @@ class Dyson360EyeDevice(VacuumDevice):
def turn_on(self, **kwargs):
"""Turn the vacuum on."""
from libpurecool.const import Dyson360EyeMode
_LOGGER.debug("Turn on device %s", self.name)
if self._device.state.state in [Dyson360EyeMode.FULL_CLEAN_PAUSED]:
self._device.resume()
@ -178,16 +169,12 @@ class Dyson360EyeDevice(VacuumDevice):
def set_fan_speed(self, fan_speed, **kwargs):
"""Set fan speed."""
from libpurecool.const import PowerMode
_LOGGER.debug("Set fan speed %s on device %s", fan_speed, self.name)
power_modes = {"Quiet": PowerMode.QUIET, "Max": PowerMode.MAX}
self._device.set_power_mode(power_modes[fan_speed])
def start_pause(self, **kwargs):
"""Start, pause or resume the cleaning task."""
from libpurecool.const import Dyson360EyeMode
if self._device.state.state in [Dyson360EyeMode.FULL_CLEAN_PAUSED]:
_LOGGER.debug("Resume device %s", self.name)
self._device.resume()