Vesync core400s fan speed ()

pull/68875/head
Nikolai Rahimi 2022-03-29 23:02:57 -04:00 committed by GitHub
parent 66a183cfe3
commit 42cec38b66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 5 deletions
homeassistant/components/vesync

View File

@ -34,7 +34,12 @@ PRESET_MODES = {
"Core300S": [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(
@ -92,13 +97,15 @@ class VeSyncFanHA(VeSyncDevice, FanEntity):
self.smartfan.mode == "manual"
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
@property
def speed_count(self) -> int:
"""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
def preset_modes(self):
@ -156,7 +163,11 @@ class VeSyncFanHA(VeSyncDevice, FanEntity):
self.smartfan.manual_mode()
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()
@ -164,7 +175,8 @@ class VeSyncFanHA(VeSyncDevice, FanEntity):
"""Set the preset mode of device."""
if preset_mode not in self.preset_modes:
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: