Skip to content

Do1e/mijia-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mijiaAPI

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

安装

python setup.py 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
      • 网站上的方法并非全部可用,需要自行测试
  • 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中,方便大家使用

致谢

声明

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