From 6e58a0c9964e5a1caeb56199d09ba0364532c75b Mon Sep 17 00:00:00 2001 From: Thom Troy <ttroy50@gmail.com> Date: Mon, 4 Nov 2019 20:49:53 +0000 Subject: [PATCH] Update ephember library version (#28507) * update ephember library version * update requirements_all.txt for new pyephember version * update imports to top of module --- homeassistant/components/ephember/climate.py | 63 ++++++++++--------- .../components/ephember/manifest.json | 2 +- requirements_all.txt | 2 +- 3 files changed, 37 insertions(+), 30 deletions(-) diff --git a/homeassistant/components/ephember/climate.py b/homeassistant/components/ephember/climate.py index 0e35b8bbee7..c189b2d62b8 100644 --- a/homeassistant/components/ephember/climate.py +++ b/homeassistant/components/ephember/climate.py @@ -1,23 +1,35 @@ """Support for the EPH Controls Ember themostats.""" -import logging 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 -from homeassistant.components.climate import ClimateDevice, PLATFORM_SCHEMA +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice from homeassistant.components.climate.const import ( + CURRENT_HVAC_HEAT, + CURRENT_HVAC_IDLE, HVAC_MODE_HEAT, HVAC_MODE_HEAT_COOL, + HVAC_MODE_OFF, SUPPORT_AUX_HEAT, SUPPORT_TARGET_TEMPERATURE, - HVAC_MODE_OFF, - CURRENT_HVAC_HEAT, - CURRENT_HVAC_IDLE, ) from homeassistant.const import ( ATTR_TEMPERATURE, - TEMP_CELSIUS, - CONF_USERNAME, CONF_PASSWORD, + CONF_USERNAME, + TEMP_CELSIUS, ) 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): """Set up the ephember thermostat.""" - from pyephember.pyephember import EphEmber - username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) @@ -61,14 +71,14 @@ def setup_platform(hass, config, add_entities, discovery_info=None): class EphEmberThermostat(ClimateDevice): - """Representation of a HeatmiserV3 thermostat.""" + """Representation of a EphEmber thermostat.""" def __init__(self, ember, zone): """Initialize the thermostat.""" self._ember = ember - self._zone_name = zone["name"] + self._zone_name = zone_name(zone) self._zone = zone - self._hot_water = zone["isHotWater"] + self._hot_water = zone_is_hot_water(zone) @property def supported_features(self): @@ -91,12 +101,12 @@ class EphEmberThermostat(ClimateDevice): @property def current_temperature(self): """Return the current temperature.""" - return self._zone["currentTemperature"] + return zone_current_temperature(self._zone) @property def target_temperature(self): """Return the temperature we try to reach.""" - return self._zone["targetTemperature"] + return zone_target_temperature(self._zone) @property def target_temperature_step(self): @@ -104,12 +114,12 @@ class EphEmberThermostat(ClimateDevice): if self._hot_water: return None - return 1 + return 0.5 @property def hvac_action(self): """Return current HVAC action.""" - if self._zone["isCurrentlyActive"]: + if zone_is_active(self._zone): return CURRENT_HVAC_HEAT return CURRENT_HVAC_IDLE @@ -117,9 +127,7 @@ class EphEmberThermostat(ClimateDevice): @property def hvac_mode(self): """Return current operation ie. heat, cool, idle.""" - from pyephember.pyephember import ZoneMode - - mode = ZoneMode(self._zone["mode"]) + mode = zone_mode(self._zone) return self.map_mode_eph_hass(mode) @property @@ -138,12 +146,13 @@ class EphEmberThermostat(ClimateDevice): @property def is_aux_heat(self): """Return true if aux heater.""" - return self._zone["isBoostActive"] + + return zone_is_boost_active(self._zone) def turn_aux_heat_on(self): """Turn auxiliary heater on.""" 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): @@ -165,24 +174,24 @@ class EphEmberThermostat(ClimateDevice): if temperature > self.max_temp or temperature < self.min_temp: 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 def min_temp(self): """Return the minimum temperature.""" # Hot water temp doesn't support being changed if self._hot_water: - return self._zone["targetTemperature"] + return zone_target_temperature(self._zone) - return 5 + return 5.0 @property def max_temp(self): """Return the maximum temperature.""" if self._hot_water: - return self._zone["targetTemperature"] + return zone_target_temperature(self._zone) - return 35 + return 35.0 def update(self): """Get the latest data.""" @@ -191,8 +200,6 @@ class EphEmberThermostat(ClimateDevice): @staticmethod def map_mode_hass_eph(operation_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) @staticmethod diff --git a/homeassistant/components/ephember/manifest.json b/homeassistant/components/ephember/manifest.json index 7509e627621..e05d21c0c02 100644 --- a/homeassistant/components/ephember/manifest.json +++ b/homeassistant/components/ephember/manifest.json @@ -3,7 +3,7 @@ "name": "Ephember", "documentation": "https://www.home-assistant.io/integrations/ephember", "requirements": [ - "pyephember==0.2.0" + "pyephember==0.3.1" ], "dependencies": [], "codeowners": [ diff --git a/requirements_all.txt b/requirements_all.txt index 7ceb7351eb7..04a858ce3b9 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1189,7 +1189,7 @@ pyemby==1.6 pyenvisalink==4.0 # homeassistant.components.ephember -pyephember==0.2.0 +pyephember==0.3.1 # homeassistant.components.everlights pyeverlights==0.1.0 -- GitLab