From 7a44eee093bd1c07331cd5659abf80289de48564 Mon Sep 17 00:00:00 2001 From: kennedyshead Date: Fri, 23 Feb 2018 23:33:12 +0100 Subject: [PATCH] Fix mclimate accounts with not only melissa components (#12427) * Fixes for mclimate accounts with not only melissa components * Fixes melissa sensor to only use HVAC * Bumping version to 1.0.3 and remove OP_MODE that is not supported * Removes STATE_AUTO from translation and tests --- homeassistant/components/climate/melissa.py | 15 ++++++--------- homeassistant/components/melissa.py | 2 +- homeassistant/components/sensor/melissa.py | 5 +++-- requirements_all.txt | 2 +- tests/components/climate/test_melissa.py | 4 +--- 5 files changed, 12 insertions(+), 16 deletions(-) diff --git a/homeassistant/components/climate/melissa.py b/homeassistant/components/climate/melissa.py index 96bd66d05a54..9c005b62dccf 100644 --- a/homeassistant/components/climate/melissa.py +++ b/homeassistant/components/climate/melissa.py @@ -26,7 +26,7 @@ SUPPORT_FLAGS = (SUPPORT_FAN_MODE | SUPPORT_OPERATION_MODE | SUPPORT_ON_OFF | SUPPORT_TARGET_TEMPERATURE) OP_MODES = [ - STATE_AUTO, STATE_COOL, STATE_DRY, STATE_FAN_ONLY, STATE_HEAT + STATE_COOL, STATE_DRY, STATE_FAN_ONLY, STATE_HEAT ] FAN_MODES = [ @@ -42,8 +42,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None): all_devices = [] for device in devices: - all_devices.append(MelissaClimate( - api, device['serial_number'], device)) + if device['type'] == 'melissa': + all_devices.append(MelissaClimate( + api, device['serial_number'], device)) add_devices(all_devices) @@ -199,9 +200,7 @@ class MelissaClimate(ClimateDevice): def melissa_op_to_hass(self, mode): """Translate Melissa modes to hass states.""" - if mode == self._api.MODE_AUTO: - return STATE_AUTO - elif mode == self._api.MODE_HEAT: + if mode == self._api.MODE_HEAT: return STATE_HEAT elif mode == self._api.MODE_COOL: return STATE_COOL @@ -228,9 +227,7 @@ class MelissaClimate(ClimateDevice): def hass_mode_to_melissa(self, mode): """Translate hass states to melissa modes.""" - if mode == STATE_AUTO: - return self._api.MODE_AUTO - elif mode == STATE_HEAT: + if mode == STATE_HEAT: return self._api.MODE_HEAT elif mode == STATE_COOL: return self._api.MODE_COOL diff --git a/homeassistant/components/melissa.py b/homeassistant/components/melissa.py index ae82b96222ea..f5a757dbcf37 100644 --- a/homeassistant/components/melissa.py +++ b/homeassistant/components/melissa.py @@ -12,7 +12,7 @@ from homeassistant.const import CONF_USERNAME, CONF_PASSWORD from homeassistant.helpers import config_validation as cv from homeassistant.helpers.discovery import load_platform -REQUIREMENTS = ["py-melissa-climate==1.0.1"] +REQUIREMENTS = ["py-melissa-climate==1.0.6"] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/sensor/melissa.py b/homeassistant/components/sensor/melissa.py index 583134288615..f67722b01983 100644 --- a/homeassistant/components/sensor/melissa.py +++ b/homeassistant/components/sensor/melissa.py @@ -22,8 +22,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None): devices = api.fetch_devices().values() for device in devices: - sensors.append(MelissaTemperatureSensor(device, api)) - sensors.append(MelissaHumiditySensor(device, api)) + if device['type'] == 'melissa': + sensors.append(MelissaTemperatureSensor(device, api)) + sensors.append(MelissaHumiditySensor(device, api)) add_devices(sensors) diff --git a/requirements_all.txt b/requirements_all.txt index 38b90875870d..7de7131b5622 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -628,7 +628,7 @@ py-canary==0.4.0 py-cpuinfo==3.3.0 # homeassistant.components.melissa -py-melissa-climate==1.0.1 +py-melissa-climate==1.0.6 # homeassistant.components.camera.synology py-synology==0.1.5 diff --git a/tests/components/climate/test_melissa.py b/tests/components/climate/test_melissa.py index 446eec9aba1e..5022c556b7d1 100644 --- a/tests/components/climate/test_melissa.py +++ b/tests/components/climate/test_melissa.py @@ -122,7 +122,7 @@ class TestMelissa(unittest.TestCase): def test_operation_list(self): """Test the operation list.""" self.assertEqual( - [STATE_AUTO, STATE_COOL, STATE_DRY, STATE_FAN_ONLY, STATE_HEAT], + [STATE_COOL, STATE_DRY, STATE_FAN_ONLY, STATE_HEAT], self.thermostat.operation_list ) @@ -226,7 +226,6 @@ class TestMelissa(unittest.TestCase): def test_melissa_op_to_hass(self): """Test for translate melissa operations to hass.""" - self.assertEqual(STATE_AUTO, self.thermostat.melissa_op_to_hass(0)) self.assertEqual(STATE_FAN_ONLY, self.thermostat.melissa_op_to_hass(1)) self.assertEqual(STATE_HEAT, self.thermostat.melissa_op_to_hass(2)) self.assertEqual(STATE_COOL, self.thermostat.melissa_op_to_hass(3)) @@ -245,7 +244,6 @@ class TestMelissa(unittest.TestCase): @mock.patch('homeassistant.components.climate.melissa._LOGGER.warning') def test_hass_mode_to_melissa(self, mocked_warning): """Test for hass operations to melssa.""" - self.assertEqual(0, self.thermostat.hass_mode_to_melissa(STATE_AUTO)) self.assertEqual( 1, self.thermostat.hass_mode_to_melissa(STATE_FAN_ONLY)) self.assertEqual(2, self.thermostat.hass_mode_to_melissa(STATE_HEAT))