mirror of
https://github.com/XiaoMi/ha_xiaomi_home.git
synced 2026-01-17 23:50:42 +08:00
fix: fix miot_device type error
This commit is contained in:
parent
d65fe32a98
commit
eddeafa3c3
@ -142,7 +142,7 @@ class MIoTDevice:
|
|||||||
_room_id: str
|
_room_id: str
|
||||||
_room_name: str
|
_room_name: str
|
||||||
|
|
||||||
_suggested_area: str
|
_suggested_area: Optional[str]
|
||||||
|
|
||||||
_device_state_sub_list: dict[str, Callable[[str, MIoTDeviceState], None]]
|
_device_state_sub_list: dict[str, Callable[[str, MIoTDeviceState], None]]
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ class MIoTDevice:
|
|||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, miot_client: MIoTClient,
|
self, miot_client: MIoTClient,
|
||||||
device_info: dict[str, str],
|
device_info: dict[str, Any],
|
||||||
spec_instance: MIoTSpecInstance
|
spec_instance: MIoTSpecInstance
|
||||||
) -> None:
|
) -> None:
|
||||||
self.miot_client = miot_client
|
self.miot_client = miot_client
|
||||||
@ -243,25 +243,29 @@ class MIoTDevice:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def sub_property(
|
def sub_property(
|
||||||
self, handler: Callable[[dict, Any], None], siid: int = None,
|
self, handler: Callable[[dict, Any], None], siid: Optional[int] = None,
|
||||||
piid: int = None, handler_ctx: Any = None
|
piid: Optional[int] = None, handler_ctx: Any = None
|
||||||
) -> bool:
|
) -> bool:
|
||||||
return self.miot_client.sub_prop(
|
return self.miot_client.sub_prop(
|
||||||
did=self._did, handler=handler, siid=siid, piid=piid,
|
did=self._did, handler=handler, siid=siid, piid=piid,
|
||||||
handler_ctx=handler_ctx)
|
handler_ctx=handler_ctx)
|
||||||
|
|
||||||
def unsub_property(self, siid: int = None, piid: int = None) -> bool:
|
def unsub_property(
|
||||||
|
self, siid: Optional[int] = None, piid: Optional[int] = None
|
||||||
|
) -> bool:
|
||||||
return self.miot_client.unsub_prop(did=self._did, siid=siid, piid=piid)
|
return self.miot_client.unsub_prop(did=self._did, siid=siid, piid=piid)
|
||||||
|
|
||||||
def sub_event(
|
def sub_event(
|
||||||
self, handler: Callable[[dict, Any], None], siid: int = None,
|
self, handler: Callable[[dict, Any], None], siid: Optional[int] = None,
|
||||||
eiid: int = None, handler_ctx: Any = None
|
eiid: Optional[int] = None, handler_ctx: Any = None
|
||||||
) -> bool:
|
) -> bool:
|
||||||
return self.miot_client.sub_event(
|
return self.miot_client.sub_event(
|
||||||
did=self._did, handler=handler, siid=siid, eiid=eiid,
|
did=self._did, handler=handler, siid=siid, eiid=eiid,
|
||||||
handler_ctx=handler_ctx)
|
handler_ctx=handler_ctx)
|
||||||
|
|
||||||
def unsub_event(self, siid: int = None, eiid: int = None) -> bool:
|
def unsub_event(
|
||||||
|
self, siid: Optional[int] = None, eiid: Optional[int] = None
|
||||||
|
) -> bool:
|
||||||
return self.miot_client.unsub_event(
|
return self.miot_client.unsub_event(
|
||||||
did=self._did, siid=siid, eiid=eiid)
|
did=self._did, siid=siid, eiid=eiid)
|
||||||
|
|
||||||
@ -703,7 +707,7 @@ class MIoTDevice:
|
|||||||
def __on_device_state_changed(
|
def __on_device_state_changed(
|
||||||
self, did: str, state: MIoTDeviceState, ctx: Any
|
self, did: str, state: MIoTDeviceState, ctx: Any
|
||||||
) -> None:
|
) -> None:
|
||||||
self._online = state
|
self._online = state == MIoTDeviceState.ONLINE
|
||||||
for key, handler in self._device_state_sub_list.items():
|
for key, handler in self._device_state_sub_list.items():
|
||||||
self.miot_client.main_loop.call_soon_threadsafe(
|
self.miot_client.main_loop.call_soon_threadsafe(
|
||||||
handler, key, state)
|
handler, key, state)
|
||||||
@ -719,7 +723,8 @@ class MIoTServiceEntity(Entity):
|
|||||||
_main_loop: asyncio.AbstractEventLoop
|
_main_loop: asyncio.AbstractEventLoop
|
||||||
_prop_value_map: dict[MIoTSpecProperty, Any]
|
_prop_value_map: dict[MIoTSpecProperty, Any]
|
||||||
|
|
||||||
_event_occurred_handler: Callable[[MIoTSpecEvent, dict], None]
|
_event_occurred_handler: Optional[
|
||||||
|
Callable[[MIoTSpecEvent, dict], None]]
|
||||||
_prop_changed_subs: dict[
|
_prop_changed_subs: dict[
|
||||||
MIoTSpecProperty, Callable[[MIoTSpecProperty, Any], None]]
|
MIoTSpecProperty, Callable[[MIoTSpecProperty, Any], None]]
|
||||||
|
|
||||||
@ -763,7 +768,9 @@ class MIoTServiceEntity(Entity):
|
|||||||
self.entity_id)
|
self.entity_id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def event_occurred_handler(self) -> Callable[[MIoTSpecEvent, dict], None]:
|
def event_occurred_handler(
|
||||||
|
self
|
||||||
|
) -> Optional[Callable[[MIoTSpecEvent, dict], None]]:
|
||||||
return self._event_occurred_handler
|
return self._event_occurred_handler
|
||||||
|
|
||||||
@event_occurred_handler.setter
|
@event_occurred_handler.setter
|
||||||
@ -784,7 +791,7 @@ class MIoTServiceEntity(Entity):
|
|||||||
self._prop_changed_subs.pop(prop, None)
|
self._prop_changed_subs.pop(prop, None)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_info(self) -> dict:
|
def device_info(self) -> Optional[DeviceInfo]:
|
||||||
return self.miot_device.device_info
|
return self.miot_device.device_info
|
||||||
|
|
||||||
async def async_added_to_hass(self) -> None:
|
async def async_added_to_hass(self) -> None:
|
||||||
@ -1002,7 +1009,7 @@ class MIoTPropertyEntity(Entity):
|
|||||||
# {'min':int, 'max':int, 'step': int}
|
# {'min':int, 'max':int, 'step': int}
|
||||||
_value_range: dict[str, int]
|
_value_range: dict[str, int]
|
||||||
# {Any: Any}
|
# {Any: Any}
|
||||||
_value_list: dict[Any, Any]
|
_value_list: Optional[dict[Any, Any]]
|
||||||
_value: Any
|
_value: Any
|
||||||
|
|
||||||
_pending_write_ha_state_timer: Optional[asyncio.TimerHandle]
|
_pending_write_ha_state_timer: Optional[asyncio.TimerHandle]
|
||||||
@ -1042,7 +1049,7 @@ class MIoTPropertyEntity(Entity):
|
|||||||
self._value_list)
|
self._value_list)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_info(self) -> dict:
|
def device_info(self) -> Optional[DeviceInfo]:
|
||||||
return self.miot_device.device_info
|
return self.miot_device.device_info
|
||||||
|
|
||||||
async def async_added_to_hass(self) -> None:
|
async def async_added_to_hass(self) -> None:
|
||||||
@ -1067,7 +1074,7 @@ class MIoTPropertyEntity(Entity):
|
|||||||
self.miot_device.unsub_property(
|
self.miot_device.unsub_property(
|
||||||
siid=self.service.iid, piid=self.spec.iid)
|
siid=self.service.iid, piid=self.spec.iid)
|
||||||
|
|
||||||
def get_vlist_description(self, value: Any) -> str:
|
def get_vlist_description(self, value: Any) -> Optional[str]:
|
||||||
if not self._value_list:
|
if not self._value_list:
|
||||||
return None
|
return None
|
||||||
return self._value_list.get(value, None)
|
return self._value_list.get(value, None)
|
||||||
@ -1184,7 +1191,7 @@ class MIoTEventEntity(Entity):
|
|||||||
spec.device_class, self.entity_id)
|
spec.device_class, self.entity_id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_info(self) -> dict:
|
def device_info(self) -> Optional[DeviceInfo]:
|
||||||
return self.miot_device.device_info
|
return self.miot_device.device_info
|
||||||
|
|
||||||
async def async_added_to_hass(self) -> None:
|
async def async_added_to_hass(self) -> None:
|
||||||
@ -1286,7 +1293,7 @@ class MIoTActionEntity(Entity):
|
|||||||
spec.device_class, self.entity_id)
|
spec.device_class, self.entity_id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_info(self) -> dict:
|
def device_info(self) -> Optional[DeviceInfo]:
|
||||||
return self.miot_device.device_info
|
return self.miot_device.device_info
|
||||||
|
|
||||||
async def async_added_to_hass(self) -> None:
|
async def async_added_to_hass(self) -> None:
|
||||||
@ -1298,7 +1305,9 @@ class MIoTActionEntity(Entity):
|
|||||||
self.miot_device.unsub_device_state(
|
self.miot_device.unsub_device_state(
|
||||||
key=f'{self.action_platform}.{ self.service.iid}.{self.spec.iid}')
|
key=f'{self.action_platform}.{ self.service.iid}.{self.spec.iid}')
|
||||||
|
|
||||||
async def action_async(self, in_list: list = None) -> Optional[list]:
|
async def action_async(
|
||||||
|
self, in_list: Optional[list] = None
|
||||||
|
) -> Optional[list]:
|
||||||
try:
|
try:
|
||||||
return await self.miot_device.miot_client.action_async(
|
return await self.miot_device.miot_client.action_async(
|
||||||
did=self.miot_device.did,
|
did=self.miot_device.did,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user