Fix some small bugs
This commit is contained in:
		@@ -16,17 +16,10 @@ _LOGGER = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@dataclass
 | 
			
		||||
class HonBinarySensorEntityDescriptionMixin:
 | 
			
		||||
class HonBinarySensorEntityDescription(BinarySensorEntityDescription):
 | 
			
		||||
    on_value: str | float = ""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@dataclass
 | 
			
		||||
class HonBinarySensorEntityDescription(
 | 
			
		||||
    HonBinarySensorEntityDescriptionMixin, BinarySensorEntityDescription
 | 
			
		||||
):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = {
 | 
			
		||||
    "WM": (
 | 
			
		||||
        HonBinarySensorEntityDescription(
 | 
			
		||||
 
 | 
			
		||||
@@ -218,6 +218,7 @@ AP_MACH_MODE = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AP_DIFFUSER_LEVEL = {
 | 
			
		||||
    0: "off",
 | 
			
		||||
    1: "soft",
 | 
			
		||||
    2: "mid",
 | 
			
		||||
    3: "h_biotics",
 | 
			
		||||
 
 | 
			
		||||
@@ -199,9 +199,11 @@ class HonConfigSelectEntity(HonEntity, SelectEntity):
 | 
			
		||||
 | 
			
		||||
    def _option_to_number(self, option: str, values: List[str]):
 | 
			
		||||
        if (options := self.entity_description.option_list) is not None:
 | 
			
		||||
            return next(
 | 
			
		||||
                (k for k, v in options.items() if str(k) in values and v == option),
 | 
			
		||||
                option,
 | 
			
		||||
            return str(
 | 
			
		||||
                next(
 | 
			
		||||
                    (k for k, v in options.items() if str(k) in values and v == option),
 | 
			
		||||
                    option,
 | 
			
		||||
                )
 | 
			
		||||
            )
 | 
			
		||||
        return option
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -388,7 +388,7 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
 | 
			
		||||
        setting = self._device.settings[f"settings.{self.entity_description.key}"]
 | 
			
		||||
        if type(setting) == HonParameter:
 | 
			
		||||
            return
 | 
			
		||||
        setting.value = setting.max if isinstance(setting, HonParameterRange) else "1"
 | 
			
		||||
        setting.value = setting.max if isinstance(setting, HonParameterRange) else 1
 | 
			
		||||
        self.async_write_ha_state()
 | 
			
		||||
        await self._device.commands["settings"].send()
 | 
			
		||||
        await self.coordinator.async_refresh()
 | 
			
		||||
@@ -397,7 +397,7 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
 | 
			
		||||
        setting = self._device.settings[f"settings.{self.entity_description.key}"]
 | 
			
		||||
        if type(setting) == HonParameter:
 | 
			
		||||
            return
 | 
			
		||||
        setting.value = setting.min if isinstance(setting, HonParameterRange) else "0"
 | 
			
		||||
        setting.value = setting.min if isinstance(setting, HonParameterRange) else 0
 | 
			
		||||
        self.async_write_ha_state()
 | 
			
		||||
        await self._device.commands["settings"].send()
 | 
			
		||||
        await self.coordinator.async_refresh()
 | 
			
		||||
@@ -413,8 +413,7 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
 | 
			
		||||
 | 
			
		||||
    @callback
 | 
			
		||||
    def _handle_coordinator_update(self, update=True) -> None:
 | 
			
		||||
        value = self._device.get(self.entity_description.key, 0)
 | 
			
		||||
        self._attr_state = value == 1
 | 
			
		||||
        self._attr_is_on = self.is_on
 | 
			
		||||
        if update:
 | 
			
		||||
            self.async_write_ha_state()
 | 
			
		||||
 | 
			
		||||
@@ -490,7 +489,6 @@ class HonConfigSwitchEntity(HonEntity, SwitchEntity):
 | 
			
		||||
 | 
			
		||||
    @callback
 | 
			
		||||
    def _handle_coordinator_update(self, update=True) -> None:
 | 
			
		||||
        value = self._device.settings.get(self.entity_description.key, "0")
 | 
			
		||||
        self._attr_state = value == "1"
 | 
			
		||||
        self._attr_is_on = self.is_on
 | 
			
		||||
        if update:
 | 
			
		||||
            self.async_write_ha_state()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user