parent
db56748d88
commit
b6e098d1c2
1 changed files with 28 additions and 16 deletions
|
@ -139,7 +139,7 @@ class WinkThermostat(WinkDevice, ClimateDevice):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def eco_target(self):
|
def eco_target(self):
|
||||||
"""Return status of eco target (Is the termostat in eco mode)."""
|
"""Return status of eco target (Is the thermostat in eco mode)."""
|
||||||
return self.wink.eco_target()
|
return self.wink.eco_target()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -249,7 +249,7 @@ class WinkThermostat(WinkDevice, ClimateDevice):
|
||||||
if ha_mode is not None:
|
if ha_mode is not None:
|
||||||
op_list.append(ha_mode)
|
op_list.append(ha_mode)
|
||||||
else:
|
else:
|
||||||
error = "Invaid operation mode mapping. " + mode + \
|
error = "Invalid operation mode mapping. " + mode + \
|
||||||
" doesn't map. Please report this."
|
" doesn't map. Please report this."
|
||||||
_LOGGER.error(error)
|
_LOGGER.error(error)
|
||||||
return op_list
|
return op_list
|
||||||
|
@ -297,7 +297,6 @@ class WinkThermostat(WinkDevice, ClimateDevice):
|
||||||
minimum = 7 # Default minimum
|
minimum = 7 # Default minimum
|
||||||
min_min = self.wink.min_min_set_point()
|
min_min = self.wink.min_min_set_point()
|
||||||
min_max = self.wink.min_max_set_point()
|
min_max = self.wink.min_max_set_point()
|
||||||
return_value = minimum
|
|
||||||
if self.current_operation == STATE_HEAT:
|
if self.current_operation == STATE_HEAT:
|
||||||
if min_min:
|
if min_min:
|
||||||
return_value = min_min
|
return_value = min_min
|
||||||
|
@ -323,7 +322,6 @@ class WinkThermostat(WinkDevice, ClimateDevice):
|
||||||
maximum = 35 # Default maximum
|
maximum = 35 # Default maximum
|
||||||
max_min = self.wink.max_min_set_point()
|
max_min = self.wink.max_min_set_point()
|
||||||
max_max = self.wink.max_max_set_point()
|
max_max = self.wink.max_max_set_point()
|
||||||
return_value = maximum
|
|
||||||
if self.current_operation == STATE_HEAT:
|
if self.current_operation == STATE_HEAT:
|
||||||
if max_min:
|
if max_min:
|
||||||
return_value = max_min
|
return_value = max_min
|
||||||
|
@ -377,11 +375,14 @@ class WinkAC(WinkDevice, ClimateDevice):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_operation(self):
|
def current_operation(self):
|
||||||
"""Return current operation ie. heat, cool, idle."""
|
"""Return current operation ie. auto_eco, cool_only, fan_only."""
|
||||||
if not self.wink.is_on():
|
if not self.wink.is_on():
|
||||||
current_op = STATE_OFF
|
current_op = STATE_OFF
|
||||||
else:
|
else:
|
||||||
current_op = WINK_STATE_TO_HA.get(self.wink.current_hvac_mode())
|
wink_mode = self.wink.current_mode()
|
||||||
|
if wink_mode == "auto_eco":
|
||||||
|
wink_mode = "eco"
|
||||||
|
current_op = WINK_STATE_TO_HA.get(wink_mode)
|
||||||
if current_op is None:
|
if current_op is None:
|
||||||
current_op = STATE_UNKNOWN
|
current_op = STATE_UNKNOWN
|
||||||
return current_op
|
return current_op
|
||||||
|
@ -392,11 +393,13 @@ class WinkAC(WinkDevice, ClimateDevice):
|
||||||
op_list = ['off']
|
op_list = ['off']
|
||||||
modes = self.wink.modes()
|
modes = self.wink.modes()
|
||||||
for mode in modes:
|
for mode in modes:
|
||||||
|
if mode == "auto_eco":
|
||||||
|
mode = "eco"
|
||||||
ha_mode = WINK_STATE_TO_HA.get(mode)
|
ha_mode = WINK_STATE_TO_HA.get(mode)
|
||||||
if ha_mode is not None:
|
if ha_mode is not None:
|
||||||
op_list.append(ha_mode)
|
op_list.append(ha_mode)
|
||||||
else:
|
else:
|
||||||
error = "Invaid operation mode mapping. " + mode + \
|
error = "Invalid operation mode mapping. " + mode + \
|
||||||
" doesn't map. Please report this."
|
" doesn't map. Please report this."
|
||||||
_LOGGER.error(error)
|
_LOGGER.error(error)
|
||||||
return op_list
|
return op_list
|
||||||
|
@ -420,15 +423,19 @@ class WinkAC(WinkDevice, ClimateDevice):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_fan_mode(self):
|
def current_fan_mode(self):
|
||||||
"""Return the current fan mode."""
|
"""
|
||||||
|
Return the current fan mode.
|
||||||
|
|
||||||
|
The official Wink app only supports 3 modes [low, medium, high]
|
||||||
|
which are equal to [0.33, 0.66, 1.0] respectively.
|
||||||
|
"""
|
||||||
speed = self.wink.current_fan_speed()
|
speed = self.wink.current_fan_speed()
|
||||||
if speed <= 0.4 and speed > 0.3:
|
if speed <= 0.33:
|
||||||
return SPEED_LOW
|
return SPEED_LOW
|
||||||
elif speed <= 0.8 and speed > 0.5:
|
elif speed <= 0.66:
|
||||||
return SPEED_MEDIUM
|
return SPEED_MEDIUM
|
||||||
elif speed <= 1.0 and speed > 0.8:
|
else:
|
||||||
return SPEED_HIGH
|
return SPEED_HIGH
|
||||||
return STATE_UNKNOWN
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def fan_list(self):
|
def fan_list(self):
|
||||||
|
@ -436,11 +443,16 @@ class WinkAC(WinkDevice, ClimateDevice):
|
||||||
return [SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH]
|
return [SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH]
|
||||||
|
|
||||||
def set_fan_mode(self, fan):
|
def set_fan_mode(self, fan):
|
||||||
"""Set fan speed."""
|
"""
|
||||||
|
Set fan speed.
|
||||||
|
|
||||||
|
The official Wink app only supports 3 modes [low, medium, high]
|
||||||
|
which are equal to [0.33, 0.66, 1.0] respectively.
|
||||||
|
"""
|
||||||
if fan == SPEED_LOW:
|
if fan == SPEED_LOW:
|
||||||
speed = 0.4
|
speed = 0.33
|
||||||
elif fan == SPEED_MEDIUM:
|
elif fan == SPEED_MEDIUM:
|
||||||
speed = 0.8
|
speed = 0.66
|
||||||
elif fan == SPEED_HIGH:
|
elif fan == SPEED_HIGH:
|
||||||
speed = 1.0
|
speed = 1.0
|
||||||
self.wink.set_ac_fan_speed(speed)
|
self.wink.set_ac_fan_speed(speed)
|
||||||
|
@ -492,7 +504,7 @@ class WinkWaterHeater(WinkDevice, ClimateDevice):
|
||||||
if ha_mode is not None:
|
if ha_mode is not None:
|
||||||
op_list.append(ha_mode)
|
op_list.append(ha_mode)
|
||||||
else:
|
else:
|
||||||
error = "Invaid operation mode mapping. " + mode + \
|
error = "Invalid operation mode mapping. " + mode + \
|
||||||
" doesn't map. Please report this."
|
" doesn't map. Please report this."
|
||||||
_LOGGER.error(error)
|
_LOGGER.error(error)
|
||||||
return op_list
|
return op_list
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue