diff --git a/homeassistant/components/climate/__init__.py b/homeassistant/components/climate/__init__.py index 6ed289b2008..e4215bcea85 100644 --- a/homeassistant/components/climate/__init__.py +++ b/homeassistant/components/climate/__init__.py @@ -351,7 +351,7 @@ class ClimateDevice(Entity): @property def state(self): """Return the current state.""" - return self.current_operation or STATE_UNKNOWN + return self.target_temperature or STATE_UNKNOWN @property def state_attributes(self): diff --git a/homeassistant/components/climate/zwave.py b/homeassistant/components/climate/zwave.py index 24ef45eb952..466fdcedf57 100755 --- a/homeassistant/components/climate/zwave.py +++ b/homeassistant/components/climate/zwave.py @@ -78,7 +78,6 @@ class ZWaveClimate(ZWaveDeviceEntity, ClimateDevice): self._current_swing_mode = None self._swing_list = None self._unit = None - self._index = None self._zxt_120 = None self.update_properties() # register listener @@ -107,15 +106,10 @@ class ZWaveClimate(ZWaveDeviceEntity, ClimateDevice): def update_properties(self): """Callback on data change for the registered node/value pair.""" # Set point - temps = [] for value in self._node.get_values( class_id=COMMAND_CLASS_THERMOSTAT_SETPOINT).values(): self._unit = value.units - temps.append(int(value.data)) - if value.index == self._index: - self._target_temperature = int(value.data) - self._target_temperature_high = max(temps) - self._target_temperature_low = min(temps) + self._target_temperature = int(value.data) # Operation Mode for value in self._node.get_values( class_id=COMMAND_CLASS_THERMOSTAT_MODE).values(): @@ -209,8 +203,6 @@ class ZWaveClimate(ZWaveDeviceEntity, ClimateDevice): """Set new target temperature.""" for value in self._node.get_values( class_id=COMMAND_CLASS_THERMOSTAT_SETPOINT).values(): - if value.command_class != 67 and value.index != self._index: - continue if self._zxt_120: # ZXT-120 does not support get setpoint self._target_temperature = temperature diff --git a/tests/components/climate/test_demo.py b/tests/components/climate/test_demo.py index 4dab359688c..4b3d4fcc64a 100644 --- a/tests/components/climate/test_demo.py +++ b/tests/components/climate/test_demo.py @@ -110,16 +110,19 @@ class TestDemoClimate(unittest.TestCase): def test_set_operation_bad_attr(self): """Test setting operation mode without required attribute.""" - self.assertEqual("Cool", self.hass.states.get(ENTITY_CLIMATE).state) + state = self.hass.states.get(ENTITY_CLIMATE) + self.assertEqual("Cool", state.attributes.get('operation_mode')) climate.set_operation_mode(self.hass, None, ENTITY_CLIMATE) self.hass.pool.block_till_done() - self.assertEqual("Cool", self.hass.states.get(ENTITY_CLIMATE).state) + state = self.hass.states.get(ENTITY_CLIMATE) + self.assertEqual("Cool", state.attributes.get('operation_mode')) def test_set_operation(self): """Test setting of new operation mode.""" climate.set_operation_mode(self.hass, "Heat", ENTITY_CLIMATE) self.hass.pool.block_till_done() - self.assertEqual("Heat", self.hass.states.get(ENTITY_CLIMATE).state) + state = self.hass.states.get(ENTITY_CLIMATE) + self.assertEqual("Heat", state.attributes.get('operation_mode')) def test_set_away_mode_bad_attr(self): """Test setting the away mode without required attribute."""