MiService
小米云服务(适用于mi.com) 这是从https://github.com/Yonsm/MiService fork而来的项目,为xiaogpt做了一些修改
如果遇到无法登录的问题,请参考置顶issue。如果仍然无法解决,请留言
本fork新增功能
-> 播放音乐
micli play ${mp3_url}
micli pause
-> 播放音乐高级版
micli loop ${mp3_url} # 循环播放
micli pause
# 创建一个名为test.txt的播放列表
cat test.txt
# http://192.168.6.212:8000/public/s4.mp3
# http://192.168.6.212:8000/public/s1.mp3
# http://192.168.6.212:8000/public/s2.mp3
# http://193.168.6.212:8000/public/s3.mp3
micli play_list test.txt # 播放列表
-> 播放suno.ai热门内容
micli suno
-> 随机播放suno.ai热门内容
micli suno_random
-> 查看硬件信息
micli mina
安装
pip3 install -U miservice_fork
或
pip3 install .
库结构
MiService:小米云服务
|
|-- MiAccount:账户服务
|-- MiBaseService:(如有需要,待实现)
| |
| |-- MiIOService:MiIO服务(sid=xiaomiio)
| | |
| | |-- MIoT_xxx:MIoT服务,基于MiIO
| |
| |-- MiNAService:小爱同学服务(sid=micoapi)
| |
| |-- MiAPIService:(待实现)
|-- MiIOCommand:MiIO命令风格接口
命令行
使用方法:必须设置以下环境变量:
export MI_USER=<用户名>
export MI_PASS=<密码>
export MI_DID=<设备ID|名称>
获取属性:micli <siid[-piid]>[,...]
micli 1,1-2,1-3,1-4,2-1,2-2,3
设置属性:micli <siid[-piid]=[#]value>[,...]
micli 2=#60,2-2=#false,3=test
执行动作:micli <siid[-piid]> <arg1|#NA> [...]
micli 2 #NA
micli 5 Hello
micli 5-4 Hello #1
调用MIoT:micli <cmd=prop/get|/prop/set|action> <params>
micli action '{"did":"267090026","siid":5,"aiid":1,"in":["Hello"]}'
调用MiIO:micli /<uri> <data>
micli /home/device_list '{"getVirtualModel":false,"getHuamiDevices":1}'
设备列表:micli list [name=full|name_keyword] [getVirtualModel=false|true] [getHuamiDevices=0|1]
micli list Light true 0
MIoT规范:micli spec [model_keyword|type_urn] [format=text|python|json]
micli spec
micli spec speaker
micli spec xiaomi.wifispeaker.lx04
micli spec urn:miot-spec-v2:device:speaker:0000A015:xiaomi-lx04:1
MIoT解码:micli decode <ssecurity> <nonce> <data> [gzip]
使用步骤及示例:
请在Mac OS或Linux下执行,Windows下虽然可能也能支持,但可能需要修改
1. 首先设置账号
export MI_USER=<用户名>
export MI_PASS=<密码>
2. 查询自己的设备
micli list
这将显示您账号下的设备列表,包括名称、类型、DID、Token等信息。
3. 设置DID
为了后续操作,请设置设备ID(来自上面命令的结果)。
export MI_DID=<设备ID|名称>
4. 查询设备的接口文档
查询设备的MIoT接口能力描述:
micli spec xiaomi.wifispeaker.lx04
这包括属性获取、属性设置和动作调用三种描述。
5. 查询音量属性
micli.py 2-1
其中2
为siid
,1
为piid
(如果是1
则可以省略),可从spec接口描述中查得。
6. 设置音量属性
micli.py 2=#60
siid
和piid
规则同属性查询命令。注意#
号表示整数类型,如果不带则默认为文本字符串类型,需根据接口描述文档确定类型。
7. 动作调用:TTS播报和执行文本
以下命令执行后小爱音箱会播报"您好":
micli.py 5 您好
其中,5为siid
,此处省略了1
的aiid
。
以下命令执行效果相当于直接对音箱说"小爱同学,查询天气":
micli.py 5-4 查询天气 #1
其中#1
表示设备语音回应,如果要执行默默关灯(不要音箱回应),可以如下:
micli.py 5-4 关灯 #0
8. 播放音乐
micli play ${mp3_url}
micli pause
9. 播放音乐高级版
micli loop ${mp3_url} # 循环播放
micli pause
# 创建一个名为test.txt的播放列表
cat test.txt
# http://192.168.6.212:8000/public/s4.mp3
# http://192.168.6.212:8000/public/s1.mp3
# http://192.168.6.212:8000/public/s2.mp3
# http://193.168.6.212:8000/public/s3.mp3
micli play_list test.txt # 播放列表
10. 其它应用
在扩展插件中使用,例如,参考ZhiMsg小爱同学TTS播报/执行插件