如何用MiService实现小米设备智能控制?
MiService是一个基于Python的开源项目,专门用于与小米云服务交互,从而实现对小米智能设备的远程控制。它的核心优势在于提供了简单易用的命令行接口,让用户无需深入了解复杂的小米云协议就能轻松操作设备。无论是查询设备状态、调整设备参数,还是执行特定动作,MiService都能高效完成。该项目特别适合智能家居爱好者、开发者以及需要对小米设备进行自动化控制的用户,是实现智能家居控制的得力工具。
揭示MiService的核心价值
MiService作为一款小米设备控制工具,其核心价值体现在以下几个方面。首先,它打破了小米设备控制的技术壁垒,让普通用户也能通过简单的命令实现对设备的掌控。其次,它提供了丰富的设备操作功能,涵盖了查询、设置、执行动作等多个维度。再者,它支持自动化场景配置,能够根据用户需求定制设备的响应规则,让智能家居更加智能化。
场景化指南:掌控小米设备的实用步骤
获取设备控制权
场景描述:刚入手小米智能设备,想要通过MiService进行控制,第一步就是获取设备的控制权,将设备与MiService建立连接。
需求分析:要控制设备,必须先让MiService能够识别并连接到设备,这就需要进行账号配置和设备发现。
解决方案:
- 首先获取项目源码并安装依赖,打开终端,执行以下命令:
git clone https://gitcode.com/gh_mirrors/mi/MiService
cd MiService
pip3 install aiohttp aiofiles
该命令的功能是从指定仓库克隆MiService项目到本地,并安装项目所需的aiohttp和aiofiles依赖包,为后续操作做好准备。
- 配置小米账号信息,在终端中输入:
export MI_USER=您的小米账号用户名
export MI_PASS=您的小米账号密码
这里的“MI_USER”和“MI_PASS”是环境变量,分别用于存储小米账号的用户名和密码,MiService会通过这些信息进行小米云服务的认证。
- 发现并获取设备列表,执行命令:
python3 micli.py list
此命令会向小米云服务查询当前账号下绑定的所有设备,并以列表形式展示设备名称、设备ID(DID)和设备类型等信息,方便用户选择要操作的设备。
查询设备运行状态
场景描述:想知道家中智能灯的当前亮度、智能空调的运行模式等设备状态信息,以便根据实际情况进行调整。
需求分析:需要一种方式能够快速获取设备的各项属性状态,了解设备当前的运行情况。
解决方案: 设置要查询的设备ID,在终端输入:
export MI_DID=您的设备ID
然后执行查询命令:
python3 micli.py 2-1
这里的“2”代表服务标识,用于指定要查询的设备服务类型;“1”代表属性编号,对应具体的设备属性。通过这个命令,用户可以获取到设备对应属性的当前值,如下表所示:
| 设备属性 | 属性值 |
|---|---|
| 亮度 | 80% |
| 运行模式 | 自动 |
调整设备运行参数
场景描述:晚上看电视时,觉得智能灯亮度太高,想要将其调暗一些。
需求分析:需要能够对设备的属性参数进行设置,以改变设备的运行状态。
解决方案: 执行设置命令:
python3 micli.py 2=#60
此命令中“2”是服务标识,“#60”表示将对应属性的值设置为60。执行后,智能灯的亮度就会调整到60%,满足用户在特定场景下的需求。
执行设备特定动作
场景描述:早上起床时,希望小爱音箱能够播报当天的天气情况。
需求分析:需要让设备执行特定的动作,以实现个性化的功能。
解决方案: 执行动作命令:
python3 micli.py 5 今天天气晴朗,气温25度。
这里的“5”是动作对应的服务标识,后面的文本是要让小爱音箱播报的内容。执行后,小爱音箱就会按照指定内容进行播报。
常见场景模板库
离家模式
场景描述:用户准备出门,希望一键关闭家中所有灯光、关闭空调,并启动扫地机器人进行清扫。
需求分析:需要同时对多个设备执行不同的操作,实现一键式的场景切换。
解决方案:
- 关闭灯光,执行命令:
python3 micli.py 灯光设备ID 2=#0(假设“2”是灯光亮度的服务标识,“0”表示关闭)。 - 关闭空调,执行命令:
python3 micli.py 空调设备ID 3=#0(假设“3”是空调开关的服务标识,“0”表示关闭)。 - 启动扫地机器人,执行命令:
python3 micli.py 扫地机器人设备ID 4=1(假设“4”是扫地机器人启动的服务标识,“1”表示启动)。
影院模式
场景描述:晚上想看电影,希望自动调暗灯光、关闭窗帘、打开投影仪。
需求分析:需要协调多个设备的状态,营造适合观影的环境。
解决方案:
- 调暗灯光,执行命令:
python3 micli.py 灯光设备ID 2=#30(将灯光亮度设为30%)。 - 关闭窗帘,执行命令:
python3 micli.py 窗帘设备ID 5=1(假设“5”是窗帘关闭的服务标识,“1”表示关闭)。 - 打开投影仪,执行命令:
python3 micli.py 投影仪设备ID 6=1(假设“6”是投影仪开关的服务标识,“1”表示打开)。
睡眠模式
场景描述:准备睡觉,希望关闭除床头灯外的所有灯光,将空调温度调至26度,并开启空气净化器。
需求分析:需要对不同设备进行选择性操作,满足睡眠时的舒适需求。
解决方案:
- 关闭主灯,执行命令:
python3 micli.py 主灯设备ID 2=#0。 - 保留床头灯并调暗,执行命令:
python3 micli.py 床头灯设备ID 2=#20(将亮度设为20%)。 - 调整空调温度,执行命令:
python3 micli.py 空调设备ID 7=#26(假设“7”是空调温度的服务标识)。 - 开启空气净化器,执行命令:
python3 micli.py 空气净化器设备ID 8=1(假设“8”是空气净化器开关的服务标识,“1”表示开启)。
进阶技巧:提升小米设备控制效率
环境变量持久化
场景描述:每次使用MiService都需要重新设置小米账号信息,非常繁琐。
需求分析:希望账号信息能够持久保存,避免重复设置。
解决方案:将账号信息添加到系统的环境配置文件中,如.bashrc或.zshrc。打开配置文件,添加以下内容:
export MI_USER=您的小米账号用户名
export MI_PASS=您的小米账号密码
保存后执行source .bashrc(或对应的配置文件)使设置生效,之后每次打开终端都会自动加载账号信息。
设备名称替代设备ID
场景描述:设备ID一串数字难以记忆,使用起来不方便。
需求分析:希望能够通过设备名称来指定要操作的设备。
解决方案:在执行命令时,使用设备名称代替设备ID,例如:python3 micli.py "客厅灯" 2=#50,这样就可以直接通过设备的名称来进行操作,更加直观便捷。
批量查询设备属性
场景描述:需要同时了解多个设备的多项属性状态,逐个查询效率太低。
需求分析:实现一次查询多个设备的多个属性,提高操作效率。
解决方案:使用特定的命令格式进行批量查询,例如:python3 micli.py 设备ID1,设备ID2 2-1,3-2,其中“设备ID1,设备ID2”表示要查询的设备,“2-1,3-2”表示要查询的属性(服务标识-属性编号),执行后会同时返回多个设备的多个属性信息。
社区贡献指南
MiService的发展离不开社区用户的积极贡献。如果您在使用过程中发现了bug、有新的功能需求或者想要优化现有功能,欢迎参与到项目的优化中来。
项目仓库地址:https://gitcode.com/gh_mirrors/mi/MiService
PR提交路径:首先fork项目到自己的仓库,进行修改后,通过仓库的Pull Request功能提交您的代码,项目维护者会对您的贡献进行审核。我们期待您的参与,共同让MiService变得更加完善。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
HY-Embodied-0.5这是一套专为现实世界具身智能打造的基础模型。该系列模型采用创新的混合Transformer(Mixture-of-Transformers, MoT) 架构,通过潜在令牌实现模态特异性计算,显著提升了细粒度感知能力。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00