{"id":23486816,"url":"https://github.com/do1e/mijia-api","last_synced_at":"2025-05-16T07:04:33.610Z","repository":{"id":61912087,"uuid":"524073148","full_name":"Do1e/mijia-api","owner":"Do1e","description":"米家API，使用Python在线控制米家设备","archived":false,"fork":false,"pushed_at":"2025-05-14T04:22:59.000Z","size":102,"stargazers_count":213,"open_issues_count":5,"forks_count":41,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-14T05:42:27.275Z","etag":null,"topics":["mijia","miot","miot-devices","xiaomi","xiaomi-smart","xiaomi-smart-home"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Do1e.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-08-12T12:07:30.000Z","updated_at":"2025-05-14T04:22:59.000Z","dependencies_parsed_at":"2024-07-19T16:45:37.556Z","dependency_job_id":"c9457c7a-831b-43b5-81b9-6a6b74a67cdb","html_url":"https://github.com/Do1e/mijia-api","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Do1e%2Fmijia-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Do1e%2Fmijia-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Do1e%2Fmijia-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Do1e%2Fmijia-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Do1e","download_url":"https://codeload.github.com/Do1e/mijia-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254110448,"owners_count":22016392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mijia","miot","miot-devices","xiaomi","xiaomi-smart","xiaomi-smart-home"],"created_at":"2024-12-24T22:17:23.136Z","updated_at":"2025-05-16T07:04:28.598Z","avatar_url":"https://github.com/Do1e.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mijiaAPI\n小米米家设备的api，可以使用代码直接控制米家设备的功能，[Github link](https://github.com/Do1e/mijia-api)，[PyPI link](https://pypi.org/project/mijiaAPI/)。\n\n## 安装\n```bash\npoetry install\n```\n或者\n```bash\npip install mijiaAPI\n```\n\n## 使用\n使用实例可以参考`demos`文件夹下的示例代码，以下是简单的使用说明\n\n有三个类分别用于登录和API调用\n\n* `mijiaLogin`：登录小米账号，获取控制设备必须的`userId`, `ssecurity`, `deviceId`, `serviceToken`，方法列表\n  * `login(username: str, password: str) -\u003e dict`：账号密码登录，返回上述信息\n  * `QRlogin() -\u003e dict`：扫描二维码登录，返回上述信息（会在支持tty的终端打印二维码，若打印识别可查看当前文件夹下的`qr.png`）\n\n* `mijiaAPI`：API的实现，使用`mijiaLogin`登录后返回的信息进行初始化\n  * `__init__(auth_data: dict)`：初始化\n  * `available -\u003e bool`：传入的`auth_data`是否有效\n  * `get_devices_list() -\u003e list`：获取设备列表\n  * `get_homes_list() -\u003e list`：获取家庭列表，家庭字典中包含房间列表\n  * `get_scenes_list(home_id: str) -\u003e list`：获取手动场景列表，在 *米家-\u003e添加-\u003e手动控制* 中设置\n  * `run_scene(scene_id: str) -\u003e bool`：运行手动场景\n  * `get_consumable_items(home_id: str) -\u003e list`：获取设备的耗材信息\n  * `get_devices_prop(data: list) -\u003e list`：获取设备的属性\n  * `set_devices_prop(data: list) -\u003e list`：设置设备的属性\n    * `data`为一个字典的列表，字典需要包含`did`, `siid`, `piid`，后面两个键可从 *https://home.miot-spec.com/spec/{model}* 中获取，其中`model`为设备的model，在设备列表中获取，如[米家台灯 1S](https://home.miot-spec.com/spec/yeelink.light.lamp4)。\n    * 网站上的方法并非全部可用，需要自行测试\n  * `run_action(data: dict) -\u003e dict`：执行设备的action\n    * `data`为一个字典，需要包含`did`, `siid`, `aiid`，获取方法同上\n\n\n* `mijiaDevices`：使用`mijiaAPI`和设备属性字典初始化，以便更方便地调用设备属性\n  * `__init__(api: mijiaAPI, dev_info: dict. did: str = None, sleep_time: float = 0.5)`：初始化，`dev_info`为设备属性，参考[demos/dev_info_example](demos/dev_info_example)，`sleep_time`为每次调用设备属性的间隔时间（注：设置属性后立刻获取属性会不符合预期，需要延迟一段时间）\n  * `set(name: str, did: str, value: Union[bool, int]) -\u003e Union[bool, int]`：设置设备属性\n  * `get(name: str, did: str) -\u003e Union[bool, int]`：获取设备属性\n  * v1.2.0 新增直接通过名称设置/获取属性，需要在初始化时传入`did`，详见[demos/test_devices_v2_light.py](demos/test_devices_v2_light.py)。名称中包含`-`的属性需要替换为`_`。\n  * **欢迎大家把自己编写的设备属性字典分享到Issues中，方便大家使用**\n  * 也可以调用`get_device_info(device_model: str) -\u003e dict`函数从[米家设备列表](https://home.miot-spec.com/)在线获取设备属性字典，详见[demos/test_get_device_info.py](demos/test_get_device_info.py)\n\n## 致谢\n* [janzlan/mijia-api](https://gitee.com/janzlan/mijia-api/tree/master)\n\n## 声明\n* 本项目仅供学习交流使用，不得用于商业用途，如有侵权请联系删除。\n* 本项目作者不对使用本项目产生的任何后果负责，请用户自行承担使用本项目的风险。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdo1e%2Fmijia-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdo1e%2Fmijia-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdo1e%2Fmijia-api/lists"}