Skip to content
Snippets Groups Projects
Commit 6e58a0c9 authored by Thom Troy's avatar Thom Troy Committed by Fabian Affolter
Browse files

Update ephember library version (#28507)

* update ephember library version

* update requirements_all.txt for new pyephember version

* update imports to top of module
parent fe749fc0
No related branches found
No related tags found
No related merge requests found
"""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
......
......@@ -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": [
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment