mijiaAPI
米家 API,可以使用代码、CLI、MCP 直接控制米家设备。
⚠️ v5.0.0 兼容性说明:设备规格数据源迁移至 miot-spec.org(小米官方数据源),有以下破坏性变更:
get_device_info()参数由device_model改为spec_type(设备规格类型 URN,可从get_devices_list()返回的设备信息中获取)- CLI
--get_device_info由接收 model 改为接收spec_type(可从-l输出的spec_type字段获取)- MCP 工具
get_device_spec参数由device_model改为spec_type除上述改动外,其余用法与 v4 保持兼容。
📖 完整文档请见 mijia-api.do1e.com
安装
要求 Python >= 3.10
pip install mijiaAPI
# uv 用户可使用 `uv add mijiaAPI`
其他安装方式(源码安装、AUR)请参考文档。
快速开始
from mijiaAPI import mijiaAPI, mijiaDevice
# 初始化并扫码登录(认证文件默认保存在 ~/.config/mijia-api/auth.json)
api = mijiaAPI()
api.login()
# 通过设备名称控制设备(推荐)
device = mijiaDevice(api, dev_name="我的台灯")
device.on = True # 打开设备
device.brightness = 60 # 设置亮度为 60%
# 查看设备支持的所有属性和动作
print(device)
CLI 用法:
mijiaAPI login # 扫码登录
mijiaAPI -l # 列出所有设备
mijiaAPI set --dev_name "台灯" --prop_name "brightness" --value 60
MCP 用法:
执行 uvx mijiaAPI login -p /path/to/auth.json 登录后,在 MCP 客户端配置中添加以下内容即可接入米家:
{
"mcpServers": {
"mijia-api": {
"command": "uvx",
"args": ["mijiaAPI[mcp]", "mcp", "-p", "/path/to/auth.json"]
}
}
}
更多用法(API 基础调用、MCP Server、CLI 完整参数、最佳实践等)请查阅完整文档。
致谢
开源许可
本项目采用 GPL-3.0 开源许可证。
请注意:GPL-3.0 是具有“强传染性”的开源许可证。
如果您在您的项目中使用、修改或分发本项目的代码(包括作为库依赖),您的整个项目也必须以 GPL-3.0 或兼容许可证开源发布。
免责声明
- 本项目仅供学习交流使用,不得用于商业用途,如有侵权请联系删除
- 用户使用本项目所产生的任何后果,需自行承担风险
- 开发者不对使用本项目产生的任何直接或间接损失负责
Metadata
Release files for mijiaAPI 5.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mijiaapi-5.0.0.tar.gz | 145.6 kB | Without provenance | Details for mijiaapi-5.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mijiaapi-5.0.0-py3-none-any.whl | Python 3 | none | any | Details for mijiaapi-5.0.0-py3-none-any.whl |
Total release size: 187.5 kB
Release files / mijiaapi-5.0.0.tar.gz
| Download URL | mijiaapi-5.0.0.tar.gz |
|---|---|
| Size | 145.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee938a938cb3b43b6ea23cc8e629707d98ed35a1d98a40b8b62ddb25c70bb9bb
|
|
BLAKE2b-256 checksum How to use checksums |
50007be2da54f504f035788c84839874b8f8e525ef1df01fc4db77795936ef11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / mijiaapi-5.0.0-py3-none-any.whl
| Download URL | mijiaapi-5.0.0-py3-none-any.whl |
|---|---|
| Size | 41.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
31792ead21e8d641cbe3126ed197aa00252eb8f1b680f3873029646bf6c7c8b3
|
|
BLAKE2b-256 checksum How to use checksums |
1d1a4019e9fbdf501cbce1931fb3869f12e98880e0a38586f4b03228c329d121
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for mijiaAPI 5.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.