1 """Support for Big Ass Fans auto comfort."""
3 from __future__
import annotations
17 from .
import BAFConfigEntry
18 from .entity
import BAFEntity
23 entry: BAFConfigEntry,
24 async_add_entities: AddEntitiesCallback,
26 """Set up BAF fan auto comfort."""
27 device = entry.runtime_data
28 if device.has_fan
and device.has_auto_comfort:
33 """BAF climate auto comfort."""
35 _attr_supported_features = (
36 ClimateEntityFeature.TARGET_TEMPERATURE
37 | ClimateEntityFeature.TURN_OFF
38 | ClimateEntityFeature.TURN_ON
40 _attr_temperature_unit = UnitOfTemperature.CELSIUS
41 _attr_hvac_modes = [HVACMode.OFF, HVACMode.FAN_ONLY]
42 _attr_translation_key =
"auto_comfort"
43 _enable_turn_on_off_backwards_compatibility =
False
47 """Update attrs from device."""
49 auto_on = device.auto_comfort_enable
50 self.
_attr_hvac_mode_attr_hvac_mode = HVACMode.FAN_ONLY
if auto_on
else HVACMode.OFF
51 self.
_attr_hvac_action_attr_hvac_action = HVACAction.FAN
if device.speed
else HVACAction.OFF
56 """Set the HVAC mode."""
57 self.
_device_device.auto_comfort_enable = hvac_mode == HVACMode.FAN_ONLY
60 """Set the target temperature."""
61 if not self.
_device_device.auto_comfort_enable:
62 self.
_device_device.auto_comfort_enable =
True
63 self.
_device_device.comfort_ideal_temperature = kwargs[ATTR_TEMPERATURE]
None async_set_hvac_mode(self, HVACMode hvac_mode)
None async_set_temperature(self, **Any kwargs)
_attr_current_temperature
None _async_update_attrs(self)
None async_setup_entry(HomeAssistant hass, BAFConfigEntry entry, AddEntitiesCallback async_add_entities)