没有合适的资源?快使用搜索试试~ 我知道了~
首页小米(绿米)网关局域网通信协议
小米(绿米)网关局域网通信协议

小米(绿米)网关局域网通信协议,描述了第三方如何与小米网关对接,控制小米的设备
资源详情
资源评论
资源推荐

绿米网关局域网通讯协议 V1.1.1
1. 网关设备发现(设备发现不加密)
设备发现用来在局域网中发现网关,使用组播。
所有网关收到 命令都要应答、回复自己的 信息。
组播方式网关 whois!
网关单播方式:
iam"#$"$"$ %&'(')!
2.加密机制
局域网通信采用 *) 加密方式,需要在米家智能家庭 + 上对网关设置 ,-.(使用 +-/
0$加密,' 下发随机的 # 个字节长度的字符串 ,-.)。必须拥有该网关的 ,-.,才
能与该网关进行局域网通信。
注:+-/0$初始向量定义为:
12&2 '2+-/,-.34#56787""7# 7"7 7$7 7979'
7#"7'77#:7$7#7!;
在米家智能家庭 ' 中设置 ,-. 的步骤如下:

3. 查询子设备 id 列表
命令以单播方式发送给网关的 1 "$"$ 端口,网关以单播方式回复,用来获取网关中有
哪些设备(网关返回子设备的设备 )。
网关: get_id_list!
网关 get_id_list_ack 8$ ''4< << << <5!,
其中的“ ”为网关 。
.子设备状态上报
以组播方式发送给"$"$。当子设备状态发生变化时,子设备会上
报状态。例如窗磁上报 2=% 信息。用户可以拿这个状态去做联动。例如:开窗报警 ,
开窗关空调
网关:
report %'&2 $" ''<'1<<open
<!!
5. 读设备
命令以单播方式发送给网关的 1 "$"$ 端口。用户可以主动读取墙壁开关,插座的属
性状态,网关返回设备的全部属性信息。

读取墙壁开关的状态:
read $ #!
网关以单播方式回复格式:
read_ack %%21'% $ # ''
<'22%<<2<<'22%<<><!!
读取网关的状态:
read 8$!
网关以单播方式回复格式:
read_ack %&'(') 8$ ''<&9<<ill
uminaon<<proto_version<<#<!!其中,&9 是网关夜灯的颜色值,illuminaon
是光照度,?2 是网关所用的本通信协议的版本号。
6. 写设备
命令以单播方式发送给网关的 1 "$"$ 端口。当用户需要控制墙壁开关,插座等设备
时使用 ( 命令。
write %%21'% $ # ''<cha
nnel_0<<on<<*)<<3EB43E37C20AFF4C5872CC0D04D81314<!!
网关以单播方式回复格式:
write_ack %%21'% $ # ''
<'22%<<2<<'22%<<><!!该 ('* 只是代表网关收到了 ( 命令,
'' 里的属性状态为当前的设备最新状态,不是 ( 之后的最终设备状态。最终的设备状
态靠 报文进行上报。
注:
其中的“*)”为 个字节长度的字符串。当网关启用了加密模式时,会对该 *) 进行解
密并校验,以验证写命令的合法性。该“*)”的生成规则是:用户收到“'9'”里的 # 个
字节的“*2”字符串之后,使用网关的 ,-.(在米家智能家庭 ' 里设置的 ,-.)对该字符
串进行 +-/0$ 加密,生成 # 个字节的密文后,再转换为 个字节的 +/ 码字符串。
比如:用户在米家智能家庭 ' 中配置 # 个字符长度的 ,-. 为“"$8#@()A
B*2B 为 ” #8$"'9 :B 加 密 后 密 文 是 :
7-707-7877+7CC77$7877D77D$77 。 那
么,”*)B为:”-0-8+CC$8DD$B。
7.网关心跳
网关心跳以组播方式发送给"$"$。网关每 秒钟发送一次心跳报
文,用来告诉 网关正常工作。
heartbeat %&'(') 8$ *2#8$"'9
: ''<<<172.22.4.130<!!其中的“*2”为网关生成的随机字符串,用于用户生
剩余14页未读,继续阅读



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1