1 / 14
文档名称:

绿米网关局域网通讯协议v1.0.9.doc

格式:doc   大小:294KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

绿米网关局域网通讯协议v1.0.9.doc

上传人:287865472 2018/8/30 文件大小:294 KB

下载得到文件列表

绿米网关局域网通讯协议v1.0.9.doc

文档介绍

文档介绍:
网关设备发现(设备发现不加密)
设备发现用来在局域网中发现网关,使用组播(ip: , peer_port: 4321)。
所有网关收到Whois命令都要应答、回复自己的IP信息。
PC 组播方式->网关: {"cmd":"whois"}
网关单播方式->PC:
{"cmd":"iam","ip" : "","port" : "9898","model" : "gateway",.....}

局域网通信采用key加密方式,需要在米家智能家庭APP上对网关设置KEY(使用AES-CBC 128 加密,app下发随机的16个字节长度的字符串KEY)。必须拥有该网关的KEY,才能与该网关进行局域网通信。
注: AES-CBC 128 初始向量定义为:
unsigned char const AES_KEY_IV[16] = {0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58, 0x56, 0x2e};
在米家智能家庭app中设置KEY的步骤如下:


查询子设备id列表
命令以单播方式发送给网关的udp 9898端口,网关以单播方式回复,用来获取网关中有哪些设备(网关返回子设备的设备id)。
PC->网关: {"cmd" : "get_id_list"}
网关->PC: {"cmd" : "get_id_list_ack","sid":"1022780","data":"[\"sid1\",\"sid2\",\"sid3\"]"},其中的“sid”为网关did。

以组播方式发送给(ip: , port: 9898)。当子设备状态发生变化时,子设备会上报状态。例如窗磁上报open/close信息。用户可以拿这个状态去做联动。例如:开窗报警,开窗关空调
网关->PC:
{"cmd":"report","model":"","sid":"89234324","short_id":4343,"data":"{\"status\":\"open\"}" }
5. 读设备
命令以单播方式发送给网关的udp 9898端口。用户可以主动读取墙壁开关,插座的属性状态,网关返回设备的全部属性信息。
读取墙壁开关的状态:
{"cmd":"read","sid":"158d0000123456"}
网关以单播方式回复格式:
{"cmd":"read_ack","model":"ctrl_neutral2","sid":"158d0000123456","short_id":4343,"data":"{\"channel_0\":\"on\",\"channel_1\":\"off\"}"}
读取网关的状态:
{"cmd":"read","sid":"1022780"}
网关以单播方式回复格式:
{"cmd":"read_ack","model":"gateway","sid":"1022780","short_id":0,"data":"{\"rgb\":0,\"illumination\":350,\"proto_version\":\"\"}"}, 其中,rgb是网关夜灯的颜色值,illumination是光照度,proto_version是网关所用的本通信协议的版本号。
6. 写设备
命令以单播方式发送给网关的udp 9898端口。当用户需要控制墙壁开关,插座等设备时使用write命令。
{"cmd":"write","model":"ctrl_neutral1","sid":"158d0000123456","short_id":4343,"data":"{\"channel_0\":\"on\",\"key\":\"0D04D81314\"}" }
网关以单播方式回复格式:
{"cmd":"write_ack","model":"ctrl_neutral2","sid":"158d0000123456","short_id":4343,"data":"{\"channel_0\":\"on\",\"channel_1\":\"off\"}"} ,该write_ack只是代表网关收到了write命令,data里的属性状态为当前的设备最新状态,不是write之后的最终设备状态。最终的设备状态靠report报文进行上报。
注:
其中的“key”为32个字节长度的字符串。当网关启用了加密模式