『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 99696|回复: 56

[修仙教程] MiService - MiIO/MIoT 协议工具,获取Token超级简单

  [复制链接]

21

主题

294

帖子

2551

积分

论坛技术达人

积分
2551
金钱
2207
HASS币
180

教程狂人

发表于 2021-3-2 12:01:59 | 显示全部楼层 |阅读模式
本帖最后由 Yonsm 于 2021-3-2 14:34 编辑

代码在这里:https://github.com/Yonsm/MiService

后面再发全系小爱音箱 TTS 的插件说明(小爱音箱 TTS 插件在这:https://github.com/Yonsm/ZhiMsg,还可以接入到钉钉群 https://github.com/Yonsm/ZhiBot,详细说明有空再写了)

MiService 的 README 如下,部分命令只是举例子,实际应该支持所有米家 APP 里面的设备,有耐心去看 MIoT Spec 的话,都可以操作和控制了;改写成 HA 插件也是没难度、有套路的事情了:

MiService

XiaoMi Cloud Service for mi.com

Install

pip3 install miservice

Library

MiService:XiaoMi Cloud Service
  |
  |-- MiAccount:Account Srvice
  |-- MiBaseService:(TODO if needed)
  |     |
  |     |-- MiIOService:MiIO Service (sid=xiaomiio)
  |     |     |
  |     |     |-- MIoT_xxx:MIoT Service, Based on MiIO
  |     |
  |     |-- MiNAService:MiAI Service (sid=micoapi)
  |     |
  |     |-- MiAPIService:(TODO)
  |-- MiIOCommand:MiIO Command Style Interface

Command Line

Usage: The following variables must be set:
           export MI_USER=《username》
           export MI_PASS=《password》
           export MIIO_DID=《deviceId》

Get Props: micli.py 《siid[-piid]》[,...]
           micli.py 1,1-2,1-3,1-4,2-1,2-2,3
Set Props: micli.py 《siid[-piid]=[#]value》[,...]
           micli.py 2=#60,2-2=#false,3=test
Do Action: micli.py 《siid[-piid]》 《arg1》 [...]
           micli.py 5 Hello
           micli.py 5-4 Hello #1

Call MIoT: micli.py 《cmd=prop/get|/prop/set|action》 《params》
           micli.py action '{"did":"267090026","siid":5,"aiid":1,"in":["Hello"]}'

Call MiIO: micli.py /《uri》 《data》
           micli.py /home/device_list '{"getVirtualModel":false,"getHuamiDevices":1}'

Devs List: micli.py list [name=full|name_keyword] [getVirtualModel=false|true] [getHuamiDevices=0|1]
           micli.py list Light true 0

MiIO Spec: micli.py spec [model_keyword|type_urn]
           micli.py spec
           micli.py spec speaker
           micli.py spec xiaomi.wifispeaker.lx04
           micli.py spec urn:miot-spec-v2:device:speaker:0000A015:xiaomi-lx04:1

套路,例子:

请在 Mac OS 或 Linux 下执行,Windows 下要支持也应该容易但可能需要修改?

1. 先设置账号

export MI_USER=《username》
export MI_PASS=《password》

2. 查询自己的设备

micli.py list

可以显示自己账号下的设备列表,包含名称、类型、DID、Token 等信息。

3. 设置 DID

为了后续操作,请设置 Device ID(来自上面这条命令的结果)。

export MIIO_DID=《deviceId》

4. 查询设备的接口文档

查询设备的 MIoT 接口能力描述:

micli.py spec xiaomi.wifispeaker.lx04

其中分为属性获取、属性设置、动作调用三种描述。

5. 查询音量属性

micli.py 2-1

其中 2siid1piid(如果是 1 则可以省略),可从 spec 接口描述中查得。

6. 设置音量属性

micli.py 2=#60

siidpiid 规则同属性查询命令。注意 # 号的意思是整数类型,如果不带则默认是文本字符串类型,要根据接口描述文档来确定类型。

7. 动作调用:TTS 播报和执行文本

以下命令执行后小爱音箱会播报“您好”:

micli.py 5 您好

其中,5 为 siid,此处省略了 1aiid

以下命令执行后相当于直接对对音箱说“小爱同学,查询天气”是一个效果:

micli.py 5-4 查询天气 #1

其中 #1 表示设备语音回应,如果要执行默默关灯(不要音箱回应),可以如下:

micli.py 5-4 关灯 #0

8. 其它应用

在扩展插件中使用,比如,参考 ZhiMsg 小爱同学 TTS 播报/执行插件

评分

参与人数 7金钱 +100 HASS币 +20 收起 理由
evantalk + 16 厉害了word楼主!
zxlch + 8 很早,大概十几年前用你的celecmd源码做过.
27hh + 20 大神厉害!!!!!!!!!!.
hzcoolwind + 4 太牛了,膜拜
killadm + 12 宇宙杰出!
neroxps + 20 牛逼Y大,帮你改了下帖子格式
+ 20 + 20 厉害了word Y大!

查看全部评分

回复

使用道具 举报

39

主题

749

帖子

4843

积分

论坛元老

Freddy.

Rank: 8Rank: 8

积分
4843
金钱
4069
HASS币
0

最佳新人卓越贡献

发表于 2021-3-2 13:51:01 | 显示全部楼层
我丢,玩的这么高级了啊
回复

使用道具 举报

9

主题

527

帖子

2352

积分

金牌会员

Rank: 6Rank: 6

积分
2352
金钱
1825
HASS币
0
发表于 2021-3-2 14:02:19 | 显示全部楼层
so yedaisinei.
原来是这样子.
奇怪的知识又增加了
回复

使用道具 举报

3

主题

21

帖子

257

积分

论坛技术达人

积分
257
金钱
231
HASS币
30
发表于 2021-3-2 14:17:56 | 显示全部楼层
流弊啊大兄弟
回复

使用道具 举报

11

主题

313

帖子

1324

积分

金牌会员

Rank: 6Rank: 6

积分
1324
金钱
1011
HASS币
10
发表于 2021-3-2 14:36:32 | 显示全部楼层
刚学习ha的小白来支持一下杰青,带带我
回复

使用道具 举报

20

主题

334

帖子

2497

积分

论坛积极会员

积分
2497
金钱
2163
HASS币
0
发表于 2021-3-2 16:27:26 | 显示全部楼层
Y神出品,必属精品
回复

使用道具 举报

2

主题

126

帖子

1401

积分

金牌会员

Rank: 6Rank: 6

积分
1401
金钱
1275
HASS币
0
发表于 2021-3-2 16:29:44 | 显示全部楼层
期待早日集成到homeassistant里面来
回复

使用道具 举报

33

主题

2196

帖子

5845

积分

论坛元老

Rank: 8Rank: 8

积分
5845
金钱
3649
HASS币
60
QQ
发表于 2021-3-2 16:38:16 | 显示全部楼层
膜拜大佬
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

15

主题

636

帖子

2205

积分

金牌会员

Rank: 6Rank: 6

积分
2205
金钱
1569
HASS币
0
发表于 2021-3-2 20:00:29 | 显示全部楼层
牛b Y大,膜拜一下!
回复

使用道具 举报

12

主题

241

帖子

2397

积分

论坛技术达人

积分
2397
金钱
2155
HASS币
30
发表于 2021-3-2 20:10:25 | 显示全部楼层
集大成者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-23 23:23 , Processed in 0.064460 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表