Skip to content

mijiaDevice 类

mijiaDevice 类提供高级封装,让您可以像操作普通对象一样控制设备,无需关心 siid/piid。

构造函数

python
mijiaDevice(
    api: mijiaAPI,
    did: Optional[str] = None,
    dev_name: Optional[str] = None,
    sleep_time: float = 0.5
)
参数类型默认值说明
apimijiaAPI(必填)已登录的 mijiaAPI 实例
didOptional[str]None设备 ID。与 dev_name 二选一,同时给出时优先使用
dev_nameOptional[str]None设备名称(米家 APP 中设定的名称)。名称必须唯一,否则抛出 MultipleDevicesFoundError
sleep_timefloat0.5每次操作后的休眠时间(秒),避免请求过快

TIP

diddev_name 至少提供一个,否则抛出 ValueError("必须提供 did 或 dev_name 参数之一")

方法

get

python
get(name: str) -> Union[bool, int, float, str]

获取设备属性值。

参数类型说明
namestr属性名称

set

python
set(name: str, value: Union[bool, int, float, str])

设置设备属性值。无返回值。

参数类型说明
namestr属性名称
valueUnion[bool, int, float, str]属性值

run_action

python
run_action(name: str, value: Optional[Union[list, tuple]] = None, **kwargs)

执行设备动作。

参数类型默认值说明
namestr(必填)动作名称
valueOptional[Union[list, tuple]]None动作参数

__str__

python
__str__() -> str

返回设备名称、型号及所有支持的属性和动作概览。

属性访问代理

mijiaDevice 通过 __getattr____setattr__ 实现了属性值的直接读写:

python
# 读取属性(等同于 device.get('brightness'))
brightness = device.brightness

# 写入属性(等同于 device.set('brightness', 60))
device.brightness = 60

TIP

包含 - 的属性名请使用下划线 _ 替代,例如 color-temperature 对应 device.color_temperature。 Python 关键字(如 in)可在前面加上下划线 _,如 device._in

实例属性

属性类型说明
prop_listdict所有支持的属性,键为属性名,值为 DevProp 对象
action_listdict所有支持的动作,键为动作名,值为 DevAction 对象

DevProp 对象

属性说明
desc属性描述
type属性类型
rw读写权限

DevAction 对象

属性说明
desc动作描述

get_device_info 函数

python
get_device_info(
    device_model: str,
    cache_path: Optional[Union[str, Path]] = None
) -> dict

米家规格平台在线获取设备规格信息,支持缓存。

参数类型默认值说明
device_modelstr(必填)设备型号,如 yeelink.light.lamp4
cache_pathOptional[Union[str, Path]]None缓存路径,指定后会缓存结果以加速

基于 GPL-3.0 许可证发布