Update ephember library version (#28507)

* update ephember library version

* update requirements_all.txt for new pyephember version

* update imports to top of module
This commit is contained in:
Thom Troy 2019-11-04 20:49:53 +00:00 committed by Fabian Affolter
parent fe749fc0f8
commit 6e58a0c996
3 changed files with 39 additions and 32 deletions

View File

@ -1,23 +1,35 @@
"""Support for the EPH Controls Ember themostats.""" """Support for the EPH Controls Ember themostats."""
import logging
from datetime import timedelta from datetime import timedelta
import logging
from pyephember.pyephember import (
EphEmber,
ZoneMode,
zone_current_temperature,
zone_is_active,
zone_is_boost_active,
zone_is_hot_water,
zone_mode,
zone_name,
zone_target_temperature,
)
import voluptuous as vol import voluptuous as vol
from homeassistant.components.climate import ClimateDevice, PLATFORM_SCHEMA from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice
from homeassistant.components.climate.const import ( from homeassistant.components.climate.const import (
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
SUPPORT_AUX_HEAT,
SUPPORT_TARGET_TEMPERATURE,
HVAC_MODE_OFF,
CURRENT_HVAC_HEAT, CURRENT_HVAC_HEAT,
CURRENT_HVAC_IDLE, CURRENT_HVAC_IDLE,
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
HVAC_MODE_OFF,
SUPPORT_AUX_HEAT,
SUPPORT_TARGET_TEMPERATURE,
) )
from homeassistant.const import ( from homeassistant.const import (
ATTR_TEMPERATURE, ATTR_TEMPERATURE,
TEMP_CELSIUS,
CONF_USERNAME,
CONF_PASSWORD, CONF_PASSWORD,
CONF_USERNAME,
TEMP_CELSIUS,
) )
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
@ -43,8 +55,6 @@ HA_STATE_TO_EPH = {value: key for key, value in EPH_TO_HA_STATE.items()}
def setup_platform(hass, config, add_entities, discovery_info=None): def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the ephember thermostat.""" """Set up the ephember thermostat."""
from pyephember.pyephember import EphEmber
username = config.get(CONF_USERNAME) username = config.get(CONF_USERNAME)
password = config.get(CONF_PASSWORD) password = config.get(CONF_PASSWORD)
@ -61,14 +71,14 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
class EphEmberThermostat(ClimateDevice): class EphEmberThermostat(ClimateDevice):
"""Representation of a HeatmiserV3 thermostat.""" """Representation of a EphEmber thermostat."""
def __init__(self, ember, zone): def __init__(self, ember, zone):
"""Initialize the thermostat.""" """Initialize the thermostat."""
self._ember = ember self._ember = ember
self._zone_name = zone["name"] self._zone_name = zone_name(zone)
self._zone = zone self._zone = zone
self._hot_water = zone["isHotWater"] self._hot_water = zone_is_hot_water(zone)
@property @property
def supported_features(self): def supported_features(self):
@ -91,12 +101,12 @@ class EphEmberThermostat(ClimateDevice):
@property @property
def current_temperature(self): def current_temperature(self):
"""Return the current temperature.""" """Return the current temperature."""
return self._zone["currentTemperature"] return zone_current_temperature(self._zone)
@property @property
def target_temperature(self): def target_temperature(self):
"""Return the temperature we try to reach.""" """Return the temperature we try to reach."""
return self._zone["targetTemperature"] return zone_target_temperature(self._zone)
@property @property
def target_temperature_step(self): def target_temperature_step(self):
@ -104,12 +114,12 @@ class EphEmberThermostat(ClimateDevice):
if self._hot_water: if self._hot_water:
return None return None
return 1 return 0.5
@property @property
def hvac_action(self): def hvac_action(self):
"""Return current HVAC action.""" """Return current HVAC action."""
if self._zone["isCurrentlyActive"]: if zone_is_active(self._zone):
return CURRENT_HVAC_HEAT return CURRENT_HVAC_HEAT
return CURRENT_HVAC_IDLE return CURRENT_HVAC_IDLE
@ -117,9 +127,7 @@ class EphEmberThermostat(ClimateDevice):
@property @property
def hvac_mode(self): def hvac_mode(self):
"""Return current operation ie. heat, cool, idle.""" """Return current operation ie. heat, cool, idle."""
from pyephember.pyephember import ZoneMode mode = zone_mode(self._zone)
mode = ZoneMode(self._zone["mode"])
return self.map_mode_eph_hass(mode) return self.map_mode_eph_hass(mode)
@property @property
@ -138,12 +146,13 @@ class EphEmberThermostat(ClimateDevice):
@property @property
def is_aux_heat(self): def is_aux_heat(self):
"""Return true if aux heater.""" """Return true if aux heater."""
return self._zone["isBoostActive"]
return zone_is_boost_active(self._zone)
def turn_aux_heat_on(self): def turn_aux_heat_on(self):
"""Turn auxiliary heater on.""" """Turn auxiliary heater on."""
self._ember.activate_boost_by_name( self._ember.activate_boost_by_name(
self._zone_name, self._zone["targetTemperature"] self._zone_name, zone_target_temperature(self._zone)
) )
def turn_aux_heat_off(self): def turn_aux_heat_off(self):
@ -165,24 +174,24 @@ class EphEmberThermostat(ClimateDevice):
if temperature > self.max_temp or temperature < self.min_temp: if temperature > self.max_temp or temperature < self.min_temp:
return return
self._ember.set_target_temperture_by_name(self._zone_name, int(temperature)) self._ember.set_target_temperture_by_name(self._zone_name, temperature)
@property @property
def min_temp(self): def min_temp(self):
"""Return the minimum temperature.""" """Return the minimum temperature."""
# Hot water temp doesn't support being changed # Hot water temp doesn't support being changed
if self._hot_water: if self._hot_water:
return self._zone["targetTemperature"] return zone_target_temperature(self._zone)
return 5 return 5.0
@property @property
def max_temp(self): def max_temp(self):
"""Return the maximum temperature.""" """Return the maximum temperature."""
if self._hot_water: if self._hot_water:
return self._zone["targetTemperature"] return zone_target_temperature(self._zone)
return 35 return 35.0
def update(self): def update(self):
"""Get the latest data.""" """Get the latest data."""
@ -191,8 +200,6 @@ class EphEmberThermostat(ClimateDevice):
@staticmethod @staticmethod
def map_mode_hass_eph(operation_mode): def map_mode_hass_eph(operation_mode):
"""Map from home assistant mode to eph mode.""" """Map from home assistant mode to eph mode."""
from pyephember.pyephember import ZoneMode
return getattr(ZoneMode, HA_STATE_TO_EPH.get(operation_mode), None) return getattr(ZoneMode, HA_STATE_TO_EPH.get(operation_mode), None)
@staticmethod @staticmethod

View File

@ -3,7 +3,7 @@
"name": "Ephember", "name": "Ephember",
"documentation": "https://www.home-assistant.io/integrations/ephember", "documentation": "https://www.home-assistant.io/integrations/ephember",
"requirements": [ "requirements": [
"pyephember==0.2.0" "pyephember==0.3.1"
], ],
"dependencies": [], "dependencies": [],
"codeowners": [ "codeowners": [

View File

@ -1189,7 +1189,7 @@ pyemby==1.6
pyenvisalink==4.0 pyenvisalink==4.0
# homeassistant.components.ephember # homeassistant.components.ephember
pyephember==0.2.0 pyephember==0.3.1
# homeassistant.components.everlights # homeassistant.components.everlights
pyeverlights==0.1.0 pyeverlights==0.1.0