mirror of
https://github.com/home-assistant/core.git
synced 2025-07-11 23:37:18 +00:00
Vesync core400s fan speed (#67672)
This commit is contained in:
parent
66a183cfe3
commit
42cec38b66
@ -34,7 +34,12 @@ PRESET_MODES = {
|
|||||||
"Core300S": [FAN_MODE_AUTO, FAN_MODE_SLEEP],
|
"Core300S": [FAN_MODE_AUTO, FAN_MODE_SLEEP],
|
||||||
"Core400S": [FAN_MODE_AUTO, FAN_MODE_SLEEP],
|
"Core400S": [FAN_MODE_AUTO, FAN_MODE_SLEEP],
|
||||||
}
|
}
|
||||||
SPEED_RANGE = (1, 3) # off is not included
|
SPEED_RANGE = { # off is not included
|
||||||
|
"LV-PUR131S": (1, 3),
|
||||||
|
"Core200S": (1, 3),
|
||||||
|
"Core300S": (1, 3),
|
||||||
|
"Core400S": (1, 4),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
@ -92,13 +97,15 @@ class VeSyncFanHA(VeSyncDevice, FanEntity):
|
|||||||
self.smartfan.mode == "manual"
|
self.smartfan.mode == "manual"
|
||||||
and (current_level := self.smartfan.fan_level) is not None
|
and (current_level := self.smartfan.fan_level) is not None
|
||||||
):
|
):
|
||||||
return ranged_value_to_percentage(SPEED_RANGE, current_level)
|
return ranged_value_to_percentage(
|
||||||
|
SPEED_RANGE[self.device.device_type], current_level
|
||||||
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def speed_count(self) -> int:
|
def speed_count(self) -> int:
|
||||||
"""Return the number of speeds the fan supports."""
|
"""Return the number of speeds the fan supports."""
|
||||||
return int_states_in_range(SPEED_RANGE)
|
return int_states_in_range(SPEED_RANGE[self.device.device_type])
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def preset_modes(self):
|
def preset_modes(self):
|
||||||
@ -156,7 +163,11 @@ class VeSyncFanHA(VeSyncDevice, FanEntity):
|
|||||||
|
|
||||||
self.smartfan.manual_mode()
|
self.smartfan.manual_mode()
|
||||||
self.smartfan.change_fan_speed(
|
self.smartfan.change_fan_speed(
|
||||||
math.ceil(percentage_to_ranged_value(SPEED_RANGE, percentage))
|
math.ceil(
|
||||||
|
percentage_to_ranged_value(
|
||||||
|
SPEED_RANGE[self.device.device_type], percentage
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.schedule_update_ha_state()
|
self.schedule_update_ha_state()
|
||||||
|
|
||||||
@ -164,7 +175,8 @@ class VeSyncFanHA(VeSyncDevice, FanEntity):
|
|||||||
"""Set the preset mode of device."""
|
"""Set the preset mode of device."""
|
||||||
if preset_mode not in self.preset_modes:
|
if preset_mode not in self.preset_modes:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"{preset_mode} is not one of the valid preset modes: {self.preset_modes}"
|
f"{preset_mode} is not one of the valid preset modes: "
|
||||||
|
f"{self.preset_modes}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if not self.smartfan.is_on:
|
if not self.smartfan.is_on:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user