From dae90abb34586c989ca5ce0610226ec04e84965c Mon Sep 17 00:00:00 2001
From: Philip Rosenberg-Watt
Date: Thu, 31 May 2018 10:34:07 -0600
Subject: [PATCH 1/3] Change climate default limits to constants
Min and max temp and humidity are now defined in climate __init__.py
and are available for import in subclasses.
---
homeassistant/components/climate/__init__.py | 14 ++++++++++----
.../components/climate/generic_thermostat.py | 7 ++++---
homeassistant/components/climate/sensibo.py | 6 +++---
homeassistant/components/climate/tado.py | 7 ++++---
tests/components/climate/test_mqtt.py | 6 +++---
5 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/homeassistant/components/climate/__init__.py b/homeassistant/components/climate/__init__.py
index 550d4035ddd..7f5ef4c4e80 100644
--- a/homeassistant/components/climate/__init__.py
+++ b/homeassistant/components/climate/__init__.py
@@ -22,6 +22,12 @@ from homeassistant.const import (
ATTR_ENTITY_ID, ATTR_TEMPERATURE, SERVICE_TURN_ON, SERVICE_TURN_OFF,
STATE_ON, STATE_OFF, STATE_UNKNOWN, TEMP_CELSIUS, PRECISION_WHOLE,
PRECISION_TENTHS, )
+
+DEFAULT_MIN_TEMP = 7
+DEFAULT_MAX_TEMP = 35
+DEFAULT_MIN_HUMITIDY = 30
+DEFAULT_MAX_HUMIDITY = 99
+
DOMAIN = 'climate'
ENTITY_ID_FORMAT = DOMAIN + '.{}'
@@ -778,19 +784,19 @@ class ClimateDevice(Entity):
@property
def min_temp(self):
"""Return the minimum temperature."""
- return convert_temperature(7, TEMP_CELSIUS, self.temperature_unit)
+ return convert_temperature(DEFAULT_MIN_TEMP, TEMP_CELSIUS, self.temperature_unit)
@property
def max_temp(self):
"""Return the maximum temperature."""
- return convert_temperature(35, TEMP_CELSIUS, self.temperature_unit)
+ return convert_temperature(DEFAULT_MAX_TEMP, TEMP_CELSIUS, self.temperature_unit)
@property
def min_humidity(self):
"""Return the minimum humidity."""
- return 30
+ return DEFAULT_MIN_HUMITIDY
@property
def max_humidity(self):
"""Return the maximum humidity."""
- return 99
+ return DEFAULT_MAX_HUMIDITY
diff --git a/homeassistant/components/climate/generic_thermostat.py b/homeassistant/components/climate/generic_thermostat.py
index b5d3c3f7c25..ce8217aa92c 100644
--- a/homeassistant/components/climate/generic_thermostat.py
+++ b/homeassistant/components/climate/generic_thermostat.py
@@ -14,7 +14,8 @@ from homeassistant.core import DOMAIN as HA_DOMAIN
from homeassistant.components.climate import (
STATE_HEAT, STATE_COOL, STATE_IDLE, STATE_AUTO, ClimateDevice,
ATTR_OPERATION_MODE, ATTR_AWAY_MODE, SUPPORT_OPERATION_MODE,
- SUPPORT_AWAY_MODE, SUPPORT_TARGET_TEMPERATURE, PLATFORM_SCHEMA)
+ SUPPORT_AWAY_MODE, SUPPORT_TARGET_TEMPERATURE, PLATFORM_SCHEMA,
+ DEFAULT_MIN_TEMP, DEFAULT_MAX_TEMP)
from homeassistant.const import (
ATTR_UNIT_OF_MEASUREMENT, STATE_ON, STATE_OFF, ATTR_TEMPERATURE,
CONF_NAME, ATTR_ENTITY_ID, SERVICE_TURN_ON, SERVICE_TURN_OFF,
@@ -268,7 +269,7 @@ class GenericThermostat(ClimateDevice):
return self._min_temp
# get default temp from super class
- return ClimateDevice.min_temp.fget(self)
+ return DEFAULT_MIN_TEMP
@property
def max_temp(self):
@@ -278,7 +279,7 @@ class GenericThermostat(ClimateDevice):
return self._max_temp
# Get default temp from super class
- return ClimateDevice.max_temp.fget(self)
+ return DEFAULT_MAX_TEMP
@asyncio.coroutine
def _async_sensor_changed(self, entity_id, old_state, new_state):
diff --git a/homeassistant/components/climate/sensibo.py b/homeassistant/components/climate/sensibo.py
index 2b92d050d3b..94d9612755c 100644
--- a/homeassistant/components/climate/sensibo.py
+++ b/homeassistant/components/climate/sensibo.py
@@ -19,7 +19,7 @@ from homeassistant.components.climate import (
ATTR_CURRENT_HUMIDITY, ClimateDevice, DOMAIN, PLATFORM_SCHEMA,
SUPPORT_TARGET_TEMPERATURE, SUPPORT_OPERATION_MODE,
SUPPORT_FAN_MODE, SUPPORT_SWING_MODE,
- SUPPORT_ON_OFF)
+ SUPPORT_ON_OFF, DEFAULT_MIN_TEMP, DEFAULT_MAX_TEMP)
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@@ -240,13 +240,13 @@ class SensiboClimate(ClimateDevice):
def min_temp(self):
"""Return the minimum temperature."""
return self._temperatures_list[0] \
- if self._temperatures_list else super().min_temp
+ if self._temperatures_list else DEFAULT_MIN_TEMP
@property
def max_temp(self):
"""Return the maximum temperature."""
return self._temperatures_list[-1] \
- if self._temperatures_list else super().max_temp
+ if self._temperatures_list else DEFAULT_MAX_TEMP
@property
def unique_id(self):
diff --git a/homeassistant/components/climate/tado.py b/homeassistant/components/climate/tado.py
index 437c8ec3371..c3004a0407f 100644
--- a/homeassistant/components/climate/tado.py
+++ b/homeassistant/components/climate/tado.py
@@ -8,7 +8,8 @@ import logging
from homeassistant.const import (PRECISION_TENTHS, TEMP_CELSIUS)
from homeassistant.components.climate import (
- ClimateDevice, SUPPORT_TARGET_TEMPERATURE, SUPPORT_OPERATION_MODE)
+ ClimateDevice, SUPPORT_TARGET_TEMPERATURE, SUPPORT_OPERATION_MODE,
+ DEFAULT_MIN_TEMP, DEFAULT_MAX_TEMP)
from homeassistant.const import ATTR_TEMPERATURE
from homeassistant.components.tado import DATA_TADO
@@ -233,7 +234,7 @@ class TadoClimate(ClimateDevice):
if self._min_temp:
return self._min_temp
# get default temp from super class
- return super().min_temp
+ return DEFAULT_MIN_TEMP
@property
def max_temp(self):
@@ -241,7 +242,7 @@ class TadoClimate(ClimateDevice):
if self._max_temp:
return self._max_temp
# Get default temp from super class
- return super().max_temp
+ return DEFAULT_MAX_TEMP
def update(self):
"""Update the state of this climate device."""
diff --git a/tests/components/climate/test_mqtt.py b/tests/components/climate/test_mqtt.py
index 663393503ac..677d1b944d0 100644
--- a/tests/components/climate/test_mqtt.py
+++ b/tests/components/climate/test_mqtt.py
@@ -9,9 +9,9 @@ from homeassistant.setup import setup_component
from homeassistant.components import climate
from homeassistant.const import STATE_OFF, STATE_UNAVAILABLE
from homeassistant.components.climate import (
- SUPPORT_OPERATION_MODE, SUPPORT_TARGET_TEMPERATURE,
- SUPPORT_FAN_MODE, SUPPORT_SWING_MODE, SUPPORT_HOLD_MODE,
- SUPPORT_AWAY_MODE, SUPPORT_AUX_HEAT)
+ SUPPORT_OPERATION_MODE, SUPPORT_TARGET_TEMPERATURE,
+ SUPPORT_FAN_MODE, SUPPORT_SWING_MODE, SUPPORT_HOLD_MODE,
+ SUPPORT_AWAY_MODE, SUPPORT_AUX_HEAT, DEFAULT_MAX_TEMP, DEFAULT_MIN_TEMP)
from tests.common import (get_test_home_assistant, mock_mqtt_component,
fire_mqtt_message, mock_component)
From cc264f415e746173aff8cbb182b8ddc81ddebb8d Mon Sep 17 00:00:00 2001
From: Philip Rosenberg-Watt
Date: Thu, 31 May 2018 11:32:31 -0600
Subject: [PATCH 2/3] Fix PEP-8 issues
---
homeassistant/components/climate/__init__.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/homeassistant/components/climate/__init__.py b/homeassistant/components/climate/__init__.py
index 7f5ef4c4e80..ebe7cbbf2c1 100644
--- a/homeassistant/components/climate/__init__.py
+++ b/homeassistant/components/climate/__init__.py
@@ -784,12 +784,14 @@ class ClimateDevice(Entity):
@property
def min_temp(self):
"""Return the minimum temperature."""
- return convert_temperature(DEFAULT_MIN_TEMP, TEMP_CELSIUS, self.temperature_unit)
+ return convert_temperature(DEFAULT_MIN_TEMP, TEMP_CELSIUS,
+ self.temperature_unit)
@property
def max_temp(self):
"""Return the maximum temperature."""
- return convert_temperature(DEFAULT_MAX_TEMP, TEMP_CELSIUS, self.temperature_unit)
+ return convert_temperature(DEFAULT_MAX_TEMP, TEMP_CELSIUS,
+ self.temperature_unit)
@property
def min_humidity(self):
From 753fe8279ba019d376eeb1caafcd8640b4d29f98 Mon Sep 17 00:00:00 2001
From: Philip Rosenberg-Watt
Date: Thu, 31 May 2018 13:59:26 -0600
Subject: [PATCH 3/3] Remove deprecated comments
---
homeassistant/components/climate/generic_thermostat.py | 2 --
homeassistant/components/climate/tado.py | 4 ++--
tests/components/climate/test_mqtt.py | 6 +++---
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/homeassistant/components/climate/generic_thermostat.py b/homeassistant/components/climate/generic_thermostat.py
index ce8217aa92c..6b7f6cb2afc 100644
--- a/homeassistant/components/climate/generic_thermostat.py
+++ b/homeassistant/components/climate/generic_thermostat.py
@@ -268,7 +268,6 @@ class GenericThermostat(ClimateDevice):
if self._min_temp:
return self._min_temp
- # get default temp from super class
return DEFAULT_MIN_TEMP
@property
@@ -278,7 +277,6 @@ class GenericThermostat(ClimateDevice):
if self._max_temp:
return self._max_temp
- # Get default temp from super class
return DEFAULT_MAX_TEMP
@asyncio.coroutine
diff --git a/homeassistant/components/climate/tado.py b/homeassistant/components/climate/tado.py
index c3004a0407f..59da425553a 100644
--- a/homeassistant/components/climate/tado.py
+++ b/homeassistant/components/climate/tado.py
@@ -233,7 +233,7 @@ class TadoClimate(ClimateDevice):
"""Return the minimum temperature."""
if self._min_temp:
return self._min_temp
- # get default temp from super class
+
return DEFAULT_MIN_TEMP
@property
@@ -241,7 +241,7 @@ class TadoClimate(ClimateDevice):
"""Return the maximum temperature."""
if self._max_temp:
return self._max_temp
- # Get default temp from super class
+
return DEFAULT_MAX_TEMP
def update(self):
diff --git a/tests/components/climate/test_mqtt.py b/tests/components/climate/test_mqtt.py
index 677d1b944d0..663393503ac 100644
--- a/tests/components/climate/test_mqtt.py
+++ b/tests/components/climate/test_mqtt.py
@@ -9,9 +9,9 @@ from homeassistant.setup import setup_component
from homeassistant.components import climate
from homeassistant.const import STATE_OFF, STATE_UNAVAILABLE
from homeassistant.components.climate import (
- SUPPORT_OPERATION_MODE, SUPPORT_TARGET_TEMPERATURE,
- SUPPORT_FAN_MODE, SUPPORT_SWING_MODE, SUPPORT_HOLD_MODE,
- SUPPORT_AWAY_MODE, SUPPORT_AUX_HEAT, DEFAULT_MAX_TEMP, DEFAULT_MIN_TEMP)
+ SUPPORT_OPERATION_MODE, SUPPORT_TARGET_TEMPERATURE,
+ SUPPORT_FAN_MODE, SUPPORT_SWING_MODE, SUPPORT_HOLD_MODE,
+ SUPPORT_AWAY_MODE, SUPPORT_AUX_HEAT)
from tests.common import (get_test_home_assistant, mock_mqtt_component,
fire_mqtt_message, mock_component)