用户拿到智能设备之后,首先需要将智能设备入网,就是通过家里的WiFi网络,接入AIOT,然后才能够对该智能设备进行管理和控制。绿米的智能硬件设备主要分为两大类:网关类设备和子设备,其中网关类设备(例如网关、空调伴侣、摄像头等具备网关功能的设备)具备WiFi芯片,可以直接接入互联网;子设备(例如人体传感器、智能插座、墙壁开关等)通过Zigbee接入网关,由网关来管理这些子设备。这两类设备的入网有所区别。
##网关类设备入网
网关类设备上电之后,需要通过手机APP协助网关接入wifi,这一步又被称为“快连”,然后接入AIOT,把设备基本信息上报,完成入网。主要过程是:
- 手机接入网关AP(即网关提供的AP网络),手机APP将当前家里WiFi的ssid、密码和用户id发送给网关;
- 网关断开AP,连上WiFi;
- 网关接入AIOT,并将网关设备的信息和用户id发送给AIOT,完成入网和绑定;
- AIOT推送设备基本信息给第三方服务后台;
- 第三方后台将设备信息推送至用户手机APP。
我们会提供设备入网SDK,方便第三方应用嵌入到APP中,需要第三方应用做的有两件事:
- 第三方APP将用户id(即openId,来自账户对接获取的openId)发送给网关,网关携带此openId入网,完成与此用户的绑定;
- 第三方云后台提供订阅接口,AIOT完成设备入网和绑定之后,将消息推送到第三方云平台接口,然后第三方云平台便可以将设备信息推送至手机APP。
需要第三方应用后台提供接收消息的接口,这里定义消息内容格式:
msgType | device_join |
---|---|
描述 | 设备入网消息推送 |
header | {"Appid":"xxx","Appkey":"xxx"} |
payload | {"msgType":"device_join","did":"xxx","result":{"did":"value", "model":"value", "name":"xxx","firmwareVersion":"value","chipVersion":"value"}} |
- did: 设备id
- msgType: 消息类型
- model: 设备类型
- firmwareVersion: 设备固件版本
- chipVersion: 设备芯片版本
- Appid: 第三方应用的appId
- Appkey: 第三方应用的appKey
##子设备入网
子设备不具备接入WiFi的能力,需要通过网关来对它们进行管理和控制。子设备的入网可以有两种方式:
- 不借助手机APP,通过网关按键(比如按三下)开启子设备入网,然后长按子设备按键(或重置孔)完成入网;
- 借助手机APP,用户在手机APP上开启子设备入网,这时需要将开启入网的请求发送至网关,网关开启子设备入网,然后长按子设备按键(或重置孔)完成入网。
在入网过程中,网关会将用户id(openId)和子设备信息发送至AIOT,AIOT完成子设备入网和绑定。AIOT将设备信息发送至第三方应用后台,第三方后台再推送至用户手机APP。
###设备触发入网
不借助手机APP,用户可以入网子设备,流程如下:
- 用户按键网关(比如按三下)开启子设备入网,然后长按子设备按键(或重置孔)
- 网关向AIOT发起子设备入网请求
- AIOT完成子设备入网和绑定,并将消息推送至第三方应用后台
- 第三方应用后台推送消息至用户手机APP
需要第三方应用后台提供接收消息的接口,这里定义消息内容格式:
msgType | device_join |
---|---|
描述 | 设备入网消息推送 |
header | {"Appid":"xxx","Appkey":"xxx"} |
payload | {"msgType":"device_join","did":"xxx","result":{"did":"value", "model":"value", "name":"xxx","firmwareVersion":"value","chipVersion":"value"}} |
- did: 设备id
- msgType: 消息类型
- model: 设备类型
- firmwareVersion: 设备固件版本
- chipVersion: 设备芯片版本
- Appid: 第三方应用的appId
- Appkey: 第三方应用的appKey
###手机APP触发入网
用户借助手机APP开启子设备入网,流程如下:
- 用户在手机APP上开启子设备入网
- 第三方应用调用AIOT的子设备入网API
- AIOT将开启子设备入网的消息发送至网关
- 网关开启子设备入网
- 长按子设备重置孔(键),网关捕捉到子设备入网
- 网关向AIOT请求子设备入网
- AIOT完成子设备入网和绑定,并将消息推送至第三方应用后台
- 第三方应用后台推送消息至用户手机APP
API | /open/device/connect/subdevice/start |
---|---|
描述 | 开启子设备入网 |
header | {"Appid":"xxx","Appkey":"xxx","Openid":"xxx","Access-Token":"xxx"} |
payload | {"openId":"xxx","did":"xxx"(网关类设备id)} |
response | {"code":0(errorcode), "result":"msg"}} |
在子设备入网成功后,AIOT将子设备信息和入网成功消息推送至第三方应用后台,需要第三方应用后台提供接收消息的接口,消息内容格式如下:
msgType | device_join |
---|---|
描述 | 设备入网消息推送 |
header | {"Appid":"xxx","Appkey":"xxx"} |
payload | {"msgType":"device_join","did":"xxx","result":{"did":"value", "model":"value", "name":"xxx","firmwareVersion":"value","chipVersion":"value"}} |
- did: 设备id
- msgType: 消息类型
- model: 设备类型
- firmwareVersion: 设备固件版本
- chipVersion: 设备芯片版本
- Appid: 第三方应用的appId
- Appkey: 第三方应用的appKey