55
66from homeassistant .components .climate import ClimateDevice
77from homeassistant .components .climate .const import (
8+ CURRENT_HVAC_COOL ,
89 CURRENT_HVAC_HEAT ,
910 CURRENT_HVAC_IDLE ,
1011 HVAC_MODE_AUTO ,
@@ -100,7 +101,8 @@ def __init__(self, api, updater, name, dev_id, loc_id, min_temp, max_temp):
100101 self ._water_pressure = None
101102 self ._schedule_temp = None
102103 self ._hvac_mode = None
103- self ._unique_id = f"{ dev_id } -climate"
104+ self ._single_thermostat = self ._api .single_master_thermostat ()
105+ self ._unique_id = f"cl-{ dev_id } -{ name } "
104106
105107 @property
106108 def unique_id (self ):
@@ -124,12 +126,20 @@ def _update_callback(self):
124126 @property
125127 def hvac_action (self ):
126128 """Return the current action."""
127- if (
128- self ._central_heating_state is not None or self ._boiler_state is not None
129- ) and self ._cooling_state is None :
130- if self ._thermostat > self ._temperature :
129+ if self ._single_thermostat :
130+ if self ._central_heating_state or self ._boiler_state :
131131 return CURRENT_HVAC_HEAT
132- return CURRENT_HVAC_IDLE
132+ if self ._cooling_state :
133+ return CURRENT_HVAC_COOL
134+ return CURRENT_HVAC_IDLE
135+ else :
136+ if (
137+ self ._central_heating_state is not None
138+ or self ._boiler_state is not None
139+ ):
140+ if self ._thermostat > self ._temperature :
141+ return CURRENT_HVAC_HEAT
142+ return CURRENT_HVAC_IDLE
133143
134144 @property
135145 def name (self ):
@@ -183,7 +193,10 @@ def preset_modes(self):
183193 @property
184194 def hvac_modes (self ):
185195 """Return the available hvac modes list."""
186- if self ._central_heating_state is not None or self ._boiler_state is not None :
196+ if (
197+ self ._central_heating_state is not None
198+ or self ._boiler_state is not None
199+ ):
187200 if self ._cooling_state is not None :
188201 return HVAC_MODES_2
189202 return HVAC_MODES_1
@@ -306,15 +319,14 @@ def update(self):
306319 if heater_central_data ["cooling_state" ] is not None :
307320 self ._cooling_state = heater_central_data ["cooling_state" ]
308321
309- if self ._schema_status :
310- self ._hvac_mode = HVAC_MODE_AUTO
311- elif (
312- self ._central_heating_state is not None
313- or self ._boiler_state is not None
314- or self ._domestic_hot_water_state is not None
315- ):
316- if self ._cooling_state is not None :
317- self ._hvac_mode = HVAC_MODE_HEAT_COOL
318- self ._hvac_mode = HVAC_MODE_HEAT
319- else :
320- self ._hvac_mode = HVAC_MODE_OFF
322+ if self ._schema_status :
323+ self ._hvac_mode = HVAC_MODE_AUTO
324+ elif self ._central_heating_state is not None or self ._boiler_state is not None :
325+ if self ._cooling_state is not None :
326+ self ._hvac_mode = HVAC_MODE_HEAT_COOL
327+ self ._hvac_mode = HVAC_MODE_HEAT
328+ elif self ._cooling_state is not None :
329+ if self ._central_heating_state is not None or self ._boiler_state is not None :
330+ self ._hvac_mode = HVAC_MODE_HEAT_COOL
331+
332+
0 commit comments