Improve type hints in xiaomi_miio fan (#146596)

This commit is contained in:
epenet 2025-06-12 12:18:46 +02:00 committed by GitHub
parent 64e503bc27
commit 9dfbccf0cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -25,6 +25,8 @@ from miio.integrations.airpurifier.zhimi.airpurifier import (
from miio.integrations.airpurifier.zhimi.airpurifier_miot import ( from miio.integrations.airpurifier.zhimi.airpurifier_miot import (
OperationMode as AirpurifierMiotOperationMode, OperationMode as AirpurifierMiotOperationMode,
) )
from miio.integrations.fan.dmaker.fan import FanStatusP5
from miio.integrations.fan.dmaker.fan_miot import FanStatusMiot
from miio.integrations.fan.zhimi.zhimi_miot import ( from miio.integrations.fan.zhimi.zhimi_miot import (
OperationModeFanZA5 as FanZA5OperationMode, OperationModeFanZA5 as FanZA5OperationMode,
) )
@ -1083,12 +1085,14 @@ class XiaomiFan(XiaomiGenericFan):
class XiaomiFanP5(XiaomiGenericFan): class XiaomiFanP5(XiaomiGenericFan):
"""Representation of a Xiaomi Fan P5.""" """Representation of a Xiaomi Fan P5."""
coordinator: DataUpdateCoordinator[FanStatusP5]
def __init__( def __init__(
self, self,
device: MiioDevice, device: MiioDevice,
entry: XiaomiMiioConfigEntry, entry: XiaomiMiioConfigEntry,
unique_id: str | None, unique_id: str | None,
coordinator: DataUpdateCoordinator[Any], coordinator: DataUpdateCoordinator[FanStatusP5],
) -> None: ) -> None:
"""Initialize the fan.""" """Initialize the fan."""
super().__init__(device, entry, unique_id, coordinator) super().__init__(device, entry, unique_id, coordinator)
@ -1146,13 +1150,15 @@ class XiaomiFanP5(XiaomiGenericFan):
class XiaomiFanMiot(XiaomiGenericFan): class XiaomiFanMiot(XiaomiGenericFan):
"""Representation of a Xiaomi Fan Miot.""" """Representation of a Xiaomi Fan Miot."""
coordinator: DataUpdateCoordinator[FanStatusMiot]
@property @property
def operation_mode_class(self): def operation_mode_class(self) -> type[FanOperationMode]:
"""Hold operation mode class.""" """Hold operation mode class."""
return FanOperationMode return FanOperationMode
@callback @callback
def _handle_coordinator_update(self): def _handle_coordinator_update(self) -> None:
"""Fetch state from the device.""" """Fetch state from the device."""
self._attr_is_on = self.coordinator.data.is_on self._attr_is_on = self.coordinator.data.is_on
self._attr_preset_mode = self.coordinator.data.mode.name self._attr_preset_mode = self.coordinator.data.mode.name