mirror of https://github.com/home-assistant/core
Move dyson imports at top-level (#29047)
This commit is contained in:
parent
193769c791
commit
752a4d7221
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue