Skip to content

Latest commit

 

History

History
51 lines (42 loc) · 3.41 KB

README.md

File metadata and controls

51 lines (42 loc) · 3.41 KB

mijiaAPI

小米米家设备的api,可以使用代码直接控制米家设备的功能,Github linkPyPI link

安装

poetry install

或者

pip install mijiaAPI

使用

使用实例可以参考demos文件夹下的示例代码,以下是简单的使用说明

有三个类分别用于登录和API调用

  • mijiaLogin:登录小米账号,获取控制设备必须的userId, ssecurity, deviceId, serviceToken,方法列表

    • login(username: str, password: str) -> dict:账号密码登录,返回上述信息
    • QRlogin() -> dict:扫描二维码登录,返回上述信息(会在支持tty的终端打印二维码,若打印识别可查看当前文件夹下的qr.png
  • mijiaAPI:API的实现,使用mijiaLogin登录后返回的信息进行初始化

    • __init__(auth_data: dict):初始化
    • available -> bool:传入的auth_data是否有效
    • get_devices_list() -> list:获取设备列表
    • get_homes_list() -> list:获取家庭列表,家庭字典中包含房间列表
    • get_scenes_list(home_id: str) -> list:获取手动场景列表,在 米家->添加->手动控制 中设置
    • run_scene(scene_id: str) -> bool:运行手动场景
    • get_consumable_items(home_id: str) -> list:获取设备的耗材信息
    • get_devices_prop(data: list) -> list:获取设备的属性
    • set_devices_prop(data: list) -> list:设置设备的属性
      • data为一个字典的列表,字典需要包含did, siid, piid,后面两个键可从 https://home.miot-spec.com/spec/{model} 中获取,其中model为设备的model,在设备列表中获取,如米家台灯 1S
      • 网站上的方法并非全部可用,需要自行测试
    • run_action(data: dict) -> dict:执行设备的action
      • data为一个字典,需要包含did, siid, aiid,获取方法同上
  • mijiaDevices:使用mijiaAPI和设备属性字典初始化,以便更方便地调用设备属性

    • __init__(api: mijiaAPI, dev_info: dict. did: str = None, sleep_time: float = 0.5):初始化,dev_info为设备属性,参考demos/dev_info_examplesleep_time为每次调用设备属性的间隔时间(注:设置属性后立刻获取属性会不符合预期,需要延迟一段时间)
    • set(name: str, did: str, value: Union[bool, int]) -> Union[bool, int]:设置设备属性
    • get(name: str, did: str) -> Union[bool, int]:获取设备属性
    • v1.2.0 新增直接通过名称设置/获取属性,需要在初始化时传入did,详见demos/test_devices_v2_light.py。名称中包含-的属性需要替换为_
    • 欢迎大家把自己编写的设备属性字典分享到Issues中,方便大家使用
    • 也可以调用get_device_info(device_model: str) -> dict函数从米家设备列表在线获取设备属性字典,详见demos/test_get_device_info.py

致谢

声明

  • 本项目仅供学习交流使用,不得用于商业用途,如有侵权请联系删除。
  • 本项目作者不对使用本项目产生的任何后果负责,请用户自行承担使用本项目的风险。