Move imports in elkm1 component (#27982)

This commit is contained in:
Diefferson Koderer Môro 2019-10-20 18:37:52 -03:00 committed by cgtobi
parent ef8f88e25a
commit ce00d06cbd
4 changed files with 15 additions and 55 deletions

View file

@ -2,7 +2,10 @@
import logging import logging
import re import re
import elkm1_lib as elkm1
from elkm1_lib.const import Max
import voluptuous as vol import voluptuous as vol
from homeassistant.const import ( from homeassistant.const import (
CONF_EXCLUDE, CONF_EXCLUDE,
CONF_HOST, CONF_HOST,
@ -12,8 +15,7 @@ from homeassistant.const import (
CONF_USERNAME, CONF_USERNAME,
) )
from homeassistant.core import HomeAssistant, callback # noqa from homeassistant.core import HomeAssistant, callback # noqa
from homeassistant.helpers import config_validation as cv from homeassistant.helpers import config_validation as cv, discovery
from homeassistant.helpers import discovery
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.helpers.typing import ConfigType # noqa from homeassistant.helpers.typing import ConfigType # noqa
@ -125,9 +127,6 @@ CONFIG_SCHEMA = vol.Schema(
async def async_setup(hass: HomeAssistant, hass_config: ConfigType) -> bool: async def async_setup(hass: HomeAssistant, hass_config: ConfigType) -> bool:
"""Set up the Elk M1 platform.""" """Set up the Elk M1 platform."""
from elkm1_lib.const import Max
import elkm1_lib as elkm1
devices = {} devices = {}
elk_datas = {} elk_datas = {}

View file

@ -1,4 +1,5 @@
"""Each ElkM1 area will be created as a separate alarm_control_panel.""" """Each ElkM1 area will be created as a separate alarm_control_panel."""
from elkm1_lib.const import AlarmState, ArmedStatus, ArmLevel, ArmUpState
import voluptuous as vol import voluptuous as vol
import homeassistant.components.alarm_control_panel as alarm import homeassistant.components.alarm_control_panel as alarm
@ -93,8 +94,6 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
def _arm_services(): def _arm_services():
from elkm1_lib.const import ArmLevel
return { return {
"elkm1_alarm_arm_vacation": ArmLevel.ARMED_VACATION.value, "elkm1_alarm_arm_vacation": ArmLevel.ARMED_VACATION.value,
"elkm1_alarm_arm_home_instant": ArmLevel.ARMED_STAY_INSTANT.value, "elkm1_alarm_arm_home_instant": ArmLevel.ARMED_STAY_INSTANT.value,
@ -147,8 +146,6 @@ class ElkArea(ElkEntity, alarm.AlarmControlPanel):
@property @property
def device_state_attributes(self): def device_state_attributes(self):
"""Attributes of the area.""" """Attributes of the area."""
from elkm1_lib.const import AlarmState, ArmedStatus, ArmUpState
attrs = self.initial_attrs() attrs = self.initial_attrs()
elmt = self._element elmt = self._element
attrs["is_exit"] = elmt.is_exit attrs["is_exit"] = elmt.is_exit
@ -164,8 +161,6 @@ class ElkArea(ElkEntity, alarm.AlarmControlPanel):
return attrs return attrs
def _element_changed(self, element, changeset): def _element_changed(self, element, changeset):
from elkm1_lib.const import ArmedStatus
elk_state_to_hass_state = { elk_state_to_hass_state = {
ArmedStatus.DISARMED.value: STATE_ALARM_DISARMED, ArmedStatus.DISARMED.value: STATE_ALARM_DISARMED,
ArmedStatus.ARMED_AWAY.value: STATE_ALARM_ARMED_AWAY, ArmedStatus.ARMED_AWAY.value: STATE_ALARM_ARMED_AWAY,
@ -191,8 +186,6 @@ class ElkArea(ElkEntity, alarm.AlarmControlPanel):
return self._element.timer1 > 0 or self._element.timer2 > 0 return self._element.timer1 > 0 or self._element.timer2 > 0
def _area_is_in_alarm_state(self): def _area_is_in_alarm_state(self):
from elkm1_lib.const import AlarmState
return self._element.alarm_state >= AlarmState.FIRE_ALARM.value return self._element.alarm_state >= AlarmState.FIRE_ALARM.value
async def async_alarm_disarm(self, code=None): async def async_alarm_disarm(self, code=None):
@ -201,20 +194,14 @@ class ElkArea(ElkEntity, alarm.AlarmControlPanel):
async def async_alarm_arm_home(self, code=None): async def async_alarm_arm_home(self, code=None):
"""Send arm home command.""" """Send arm home command."""
from elkm1_lib.const import ArmLevel
self._element.arm(ArmLevel.ARMED_STAY.value, int(code)) self._element.arm(ArmLevel.ARMED_STAY.value, int(code))
async def async_alarm_arm_away(self, code=None): async def async_alarm_arm_away(self, code=None):
"""Send arm away command.""" """Send arm away command."""
from elkm1_lib.const import ArmLevel
self._element.arm(ArmLevel.ARMED_AWAY.value, int(code)) self._element.arm(ArmLevel.ARMED_AWAY.value, int(code))
async def async_alarm_arm_night(self, code=None): async def async_alarm_arm_night(self, code=None):
"""Send arm night command.""" """Send arm night command."""
from elkm1_lib.const import ArmLevel
self._element.arm(ArmLevel.ARMED_NIGHT.value, int(code)) self._element.arm(ArmLevel.ARMED_NIGHT.value, int(code))
async def _arm_service(self, arm_level, code): async def _arm_service(self, arm_level, code):

View file

@ -1,4 +1,6 @@
"""Support for control of Elk-M1 connected thermostats.""" """Support for control of Elk-M1 connected thermostats."""
from elkm1_lib.const import ThermostatFan, ThermostatMode, ThermostatSetting
from homeassistant.components.climate import ClimateDevice from homeassistant.components.climate import ClimateDevice
from homeassistant.components.climate.const import ( from homeassistant.components.climate.const import (
ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_HIGH,
@ -16,7 +18,6 @@ from homeassistant.const import PRECISION_WHOLE, STATE_ON
from . import DOMAIN as ELK_DOMAIN, ElkEntity, create_elk_entities from . import DOMAIN as ELK_DOMAIN, ElkEntity, create_elk_entities
SUPPORT_HVAC = [ SUPPORT_HVAC = [
HVAC_MODE_OFF, HVAC_MODE_OFF,
HVAC_MODE_HEAT, HVAC_MODE_HEAT,
@ -67,8 +68,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
@property @property
def target_temperature(self): def target_temperature(self):
"""Return the temperature we are trying to reach.""" """Return the temperature we are trying to reach."""
from elkm1_lib.const import ThermostatMode
if (self._element.mode == ThermostatMode.HEAT.value) or ( if (self._element.mode == ThermostatMode.HEAT.value) or (
self._element.mode == ThermostatMode.EMERGENCY_HEAT.value self._element.mode == ThermostatMode.EMERGENCY_HEAT.value
): ):
@ -115,8 +114,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
@property @property
def is_aux_heat(self): def is_aux_heat(self):
"""Return if aux heater is on.""" """Return if aux heater is on."""
from elkm1_lib.const import ThermostatMode
return self._element.mode == ThermostatMode.EMERGENCY_HEAT.value return self._element.mode == ThermostatMode.EMERGENCY_HEAT.value
@property @property
@ -132,8 +129,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
@property @property
def fan_mode(self): def fan_mode(self):
"""Return the fan setting.""" """Return the fan setting."""
from elkm1_lib.const import ThermostatFan
if self._element.fan == ThermostatFan.AUTO.value: if self._element.fan == ThermostatFan.AUTO.value:
return HVAC_MODE_AUTO return HVAC_MODE_AUTO
if self._element.fan == ThermostatFan.ON.value: if self._element.fan == ThermostatFan.ON.value:
@ -141,8 +136,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
return None return None
def _elk_set(self, mode, fan): def _elk_set(self, mode, fan):
from elkm1_lib.const import ThermostatSetting
if mode is not None: if mode is not None:
self._element.set(ThermostatSetting.MODE.value, mode) self._element.set(ThermostatSetting.MODE.value, mode)
if fan is not None: if fan is not None:
@ -150,8 +143,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
async def async_set_hvac_mode(self, hvac_mode): async def async_set_hvac_mode(self, hvac_mode):
"""Set thermostat operation mode.""" """Set thermostat operation mode."""
from elkm1_lib.const import ThermostatFan, ThermostatMode
settings = { settings = {
HVAC_MODE_OFF: (ThermostatMode.OFF.value, ThermostatFan.AUTO.value), HVAC_MODE_OFF: (ThermostatMode.OFF.value, ThermostatFan.AUTO.value),
HVAC_MODE_HEAT: (ThermostatMode.HEAT.value, None), HVAC_MODE_HEAT: (ThermostatMode.HEAT.value, None),
@ -163,14 +154,10 @@ class ElkThermostat(ElkEntity, ClimateDevice):
async def async_turn_aux_heat_on(self): async def async_turn_aux_heat_on(self):
"""Turn auxiliary heater on.""" """Turn auxiliary heater on."""
from elkm1_lib.const import ThermostatMode
self._elk_set(ThermostatMode.EMERGENCY_HEAT.value, None) self._elk_set(ThermostatMode.EMERGENCY_HEAT.value, None)
async def async_turn_aux_heat_off(self): async def async_turn_aux_heat_off(self):
"""Turn auxiliary heater off.""" """Turn auxiliary heater off."""
from elkm1_lib.const import ThermostatMode
self._elk_set(ThermostatMode.HEAT.value, None) self._elk_set(ThermostatMode.HEAT.value, None)
@property @property
@ -180,8 +167,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
async def async_set_fan_mode(self, fan_mode): async def async_set_fan_mode(self, fan_mode):
"""Set new target fan mode.""" """Set new target fan mode."""
from elkm1_lib.const import ThermostatFan
if fan_mode == HVAC_MODE_AUTO: if fan_mode == HVAC_MODE_AUTO:
self._elk_set(None, ThermostatFan.AUTO.value) self._elk_set(None, ThermostatFan.AUTO.value)
elif fan_mode == STATE_ON: elif fan_mode == STATE_ON:
@ -189,8 +174,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
async def async_set_temperature(self, **kwargs): async def async_set_temperature(self, **kwargs):
"""Set new target temperature.""" """Set new target temperature."""
from elkm1_lib.const import ThermostatSetting
low_temp = kwargs.get(ATTR_TARGET_TEMP_LOW) low_temp = kwargs.get(ATTR_TARGET_TEMP_LOW)
high_temp = kwargs.get(ATTR_TARGET_TEMP_HIGH) high_temp = kwargs.get(ATTR_TARGET_TEMP_HIGH)
if low_temp is not None: if low_temp is not None:
@ -199,8 +182,6 @@ class ElkThermostat(ElkEntity, ClimateDevice):
self._element.set(ThermostatSetting.COOL_SETPOINT.value, round(high_temp)) self._element.set(ThermostatSetting.COOL_SETPOINT.value, round(high_temp))
def _element_changed(self, element, changeset): def _element_changed(self, element, changeset):
from elkm1_lib.const import ThermostatFan, ThermostatMode
mode_to_state = { mode_to_state = {
ThermostatMode.OFF.value: HVAC_MODE_OFF, ThermostatMode.OFF.value: HVAC_MODE_OFF,
ThermostatMode.COOL.value: HVAC_MODE_COOL, ThermostatMode.COOL.value: HVAC_MODE_COOL,

View file

@ -1,4 +1,12 @@
"""Support for control of ElkM1 sensors.""" """Support for control of ElkM1 sensors."""
from elkm1_lib.const import (
SettingFormat,
ZoneLogicalStatus,
ZonePhysicalStatus,
ZoneType,
)
from elkm1_lib.util import pretty_const, username
from . import DOMAIN as ELK_DOMAIN, ElkEntity, create_elk_entities from . import DOMAIN as ELK_DOMAIN, ElkEntity, create_elk_entities
@ -79,8 +87,6 @@ class ElkKeypad(ElkSensor):
@property @property
def device_state_attributes(self): def device_state_attributes(self):
"""Attributes of the sensor.""" """Attributes of the sensor."""
from elkm1_lib.util import username
attrs = self.initial_attrs() attrs = self.initial_attrs()
attrs["area"] = self._element.area + 1 attrs["area"] = self._element.area + 1
attrs["temperature"] = self._element.temperature attrs["temperature"] = self._element.temperature
@ -140,8 +146,6 @@ class ElkSetting(ElkSensor):
@property @property
def device_state_attributes(self): def device_state_attributes(self):
"""Attributes of the sensor.""" """Attributes of the sensor."""
from elkm1_lib.const import SettingFormat
attrs = self.initial_attrs() attrs = self.initial_attrs()
attrs["value_format"] = SettingFormat(self._element.value_format).name.lower() attrs["value_format"] = SettingFormat(self._element.value_format).name.lower()
return attrs return attrs
@ -153,8 +157,6 @@ class ElkZone(ElkSensor):
@property @property
def icon(self): def icon(self):
"""Icon to use in the frontend.""" """Icon to use in the frontend."""
from elkm1_lib.const import ZoneType
zone_icons = { zone_icons = {
ZoneType.FIRE_ALARM.value: "fire", ZoneType.FIRE_ALARM.value: "fire",
ZoneType.FIRE_VERIFIED.value: "fire", ZoneType.FIRE_VERIFIED.value: "fire",
@ -181,8 +183,6 @@ class ElkZone(ElkSensor):
@property @property
def device_state_attributes(self): def device_state_attributes(self):
"""Attributes of the sensor.""" """Attributes of the sensor."""
from elkm1_lib.const import ZoneLogicalStatus, ZonePhysicalStatus, ZoneType
attrs = self.initial_attrs() attrs = self.initial_attrs()
attrs["physical_status"] = ZonePhysicalStatus( attrs["physical_status"] = ZonePhysicalStatus(
self._element.physical_status self._element.physical_status
@ -199,8 +199,6 @@ class ElkZone(ElkSensor):
@property @property
def temperature_unit(self): def temperature_unit(self):
"""Return the temperature unit.""" """Return the temperature unit."""
from elkm1_lib.const import ZoneType
if self._element.definition == ZoneType.TEMPERATURE.value: if self._element.definition == ZoneType.TEMPERATURE.value:
return self._temperature_unit return self._temperature_unit
return None return None
@ -208,8 +206,6 @@ class ElkZone(ElkSensor):
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):
"""Return the unit of measurement.""" """Return the unit of measurement."""
from elkm1_lib.const import ZoneType
if self._element.definition == ZoneType.TEMPERATURE.value: if self._element.definition == ZoneType.TEMPERATURE.value:
return self._temperature_unit return self._temperature_unit
if self._element.definition == ZoneType.ANALOG_ZONE.value: if self._element.definition == ZoneType.ANALOG_ZONE.value:
@ -217,9 +213,6 @@ class ElkZone(ElkSensor):
return None return None
def _element_changed(self, element, changeset): def _element_changed(self, element, changeset):
from elkm1_lib.const import ZoneLogicalStatus, ZoneType
from elkm1_lib.util import pretty_const
if self._element.definition == ZoneType.TEMPERATURE.value: if self._element.definition == ZoneType.TEMPERATURE.value:
self._state = temperature_to_state(self._element.temperature, -60) self._state = temperature_to_state(self._element.temperature, -60)
elif self._element.definition == ZoneType.ANALOG_ZONE.value: elif self._element.definition == ZoneType.ANALOG_ZONE.value: