Use capability attributes in climate (#30544)
Co-authored-by: Jc2k <john.carr@unrouted.co.uk>pull/30655/head
parent
a9f6dd698e
commit
b27e05fc8d
|
@ -172,17 +172,11 @@ class ClimateDevice(Entity):
|
|||
return PRECISION_WHOLE
|
||||
|
||||
@property
|
||||
def state_attributes(self) -> Dict[str, Any]:
|
||||
"""Return the optional state attributes."""
|
||||
def capability_attributes(self) -> Optional[Dict[str, Any]]:
|
||||
"""Return the capability attributes."""
|
||||
supported_features = self.supported_features
|
||||
data = {
|
||||
ATTR_HVAC_MODES: self.hvac_modes,
|
||||
ATTR_CURRENT_TEMPERATURE: show_temp(
|
||||
self.hass,
|
||||
self.current_temperature,
|
||||
self.temperature_unit,
|
||||
self.precision,
|
||||
),
|
||||
ATTR_MIN_TEMP: show_temp(
|
||||
self.hass, self.min_temp, self.temperature_unit, self.precision
|
||||
),
|
||||
|
@ -194,6 +188,34 @@ class ClimateDevice(Entity):
|
|||
if self.target_temperature_step:
|
||||
data[ATTR_TARGET_TEMP_STEP] = self.target_temperature_step
|
||||
|
||||
if supported_features & SUPPORT_TARGET_HUMIDITY:
|
||||
data[ATTR_MIN_HUMIDITY] = self.min_humidity
|
||||
data[ATTR_MAX_HUMIDITY] = self.max_humidity
|
||||
|
||||
if supported_features & SUPPORT_FAN_MODE:
|
||||
data[ATTR_FAN_MODES] = self.fan_modes
|
||||
|
||||
if supported_features & SUPPORT_PRESET_MODE:
|
||||
data[ATTR_PRESET_MODES] = self.preset_modes
|
||||
|
||||
if supported_features & SUPPORT_SWING_MODE:
|
||||
data[ATTR_SWING_MODES] = self.swing_modes
|
||||
|
||||
return data
|
||||
|
||||
@property
|
||||
def state_attributes(self) -> Dict[str, Any]:
|
||||
"""Return the optional state attributes."""
|
||||
supported_features = self.supported_features
|
||||
data = {
|
||||
ATTR_CURRENT_TEMPERATURE: show_temp(
|
||||
self.hass,
|
||||
self.current_temperature,
|
||||
self.temperature_unit,
|
||||
self.precision,
|
||||
),
|
||||
}
|
||||
|
||||
if supported_features & SUPPORT_TARGET_TEMPERATURE:
|
||||
data[ATTR_TEMPERATURE] = show_temp(
|
||||
self.hass,
|
||||
|
@ -221,23 +243,18 @@ class ClimateDevice(Entity):
|
|||
|
||||
if supported_features & SUPPORT_TARGET_HUMIDITY:
|
||||
data[ATTR_HUMIDITY] = self.target_humidity
|
||||
data[ATTR_MIN_HUMIDITY] = self.min_humidity
|
||||
data[ATTR_MAX_HUMIDITY] = self.max_humidity
|
||||
|
||||
if supported_features & SUPPORT_FAN_MODE:
|
||||
data[ATTR_FAN_MODE] = self.fan_mode
|
||||
data[ATTR_FAN_MODES] = self.fan_modes
|
||||
|
||||
if self.hvac_action:
|
||||
data[ATTR_HVAC_ACTION] = self.hvac_action
|
||||
|
||||
if supported_features & SUPPORT_PRESET_MODE:
|
||||
data[ATTR_PRESET_MODE] = self.preset_mode
|
||||
data[ATTR_PRESET_MODES] = self.preset_modes
|
||||
|
||||
if supported_features & SUPPORT_SWING_MODE:
|
||||
data[ATTR_SWING_MODE] = self.swing_mode
|
||||
data[ATTR_SWING_MODES] = self.swing_modes
|
||||
|
||||
if supported_features & SUPPORT_AUX_HEAT:
|
||||
data[ATTR_AUX_HEAT] = STATE_ON if self.is_aux_heat else STATE_OFF
|
||||
|
|
Loading…
Reference in New Issue