一,背景
作为国内三大运营商之一的联通集团是国内最早进入到联通智能能家居行业的。中国联通旗下中国联通研究院于2015年便牵头成立了了国内首家智能家居zigbee通讯协议互联互通工作小组,联合业界包括华为、绿米、UIOT,mavell 、浙江瑞瀛,北京GreenLive等多家率先开始为中国智能家居市场制定从设备到网关以及网关到云端的实践应用标准。凭借对市场需求的了解和实验室实际测试的结果,历时两年的推出了。zigbee开放互联互通协议,以及云端接口规范要求。
二,OneCode-IOT
OneCode-IOT 是在联通研究院zigbee互联互通协议的基础上,使用OneCode开源低代码平台做得一个基础实现,也是OneCode低代码平台在物联网行业的标杆性案例。 OneCode-IOT 推出后先后在联通集团,中国人寿集团,途家网平台,有家民宿、斯维登集团等多家央企平台以及互联网头部企业得到了推广应用。服务百万家庭酒店客房。本次开源部分,主要是在原有IOT内核基础上,针对联通互联互通协议进行了重构封装。本次包括:
(1)iot-app 移动端应用
(2)iot-设备云服务
平台总体架构
(3)OneCode-scene 网关场景服务
场景定义服务
设备场景定义
设备联动
(4)OneCode IoT 控制台
控制台编辑管理
控制台数据定义
控制台应用开发
三,开源支持 厂商声明
该开源项目,由CodeBee团队牵头整理,云端平台部分,由北京紫蜂智联智能科技有限公司支持。
项目平台部分采用 LGPL协议开源。低代码工具平台部分遵循OneCode 开源协议。低代码APP部分及完整的控制台应用,不设任何商业限制。可无限制修改使用分发。
项目中涉及到网关传感器 设备,可自行联系互联互通联盟厂商。
现推荐厂商列表:
超级智慧家uiot
浙江东胜物联技术有限公司
厦门吉物科技有限公司
四,开放协议摘录
1 用户角色及接口概述
1.1 用户角色
角色名称 |
职责描述 |
涉及模块 |
网关设备 |
Zigbee组网中充当协调器角色负责网路组网管理,完成ZigBee向WLAN的转换 |
网关平台 |
传感器设备 |
ZigBee组网中充当端终设备角色负责环境数据的收集及上报功能 |
传感器模块 |
中继(路由)设备(Route) |
ZigBee组网中充当端终路由器角色负责当终端设备不在网络覆盖范围时信号的中继作用 |
路由器模块 |
应用场景(Scene) |
应用场景是Zigbee是根据特定的业务场景而制定一些特殊联动功能的分组及绑定关系(例如:安防、照明、娱乐等) |
场景模块 |
设备控制台 |
设备检测控制台是,对入网设备进行检测设定的 |
控制台模块 |
云平台(cloud) |
云平台是网关及传感器的远程控制中枢及数据加工工厂,负责将用户的组网需求下发到网关完成,指定Zigbee网络的组建,同时将传感器采集到的数据进行筛选加工,再呈现给直接用户。 |
云平台API模块 |
认证中心 |
认证中心在ZigBee网络中充当信托中心的角色,负责ZigBee网络通讯安全认证及固件升级管理工作。 |
认证中心模块 |
1.2 接口概述
本次接口范围基本限于智能网关与cloud system之间,接口主要包括网关注册、认证、以及网关绑定等基础接口函数。
API的调用地址是: API address
http://host:port/Gateway/api
例如,注册的api是 for example, register API is:
http://host:port/Gateway/api/Activate,通过POST传递必须的参数即可,返回值均为json. Transferred by POST/GET, returned value is json.
1.3 云平台对象关系
1.4 网关与云平台交互示意
1.5 字段名称定义
字段名称 |
字段类型 |
字段说明 |
示例 |
account |
String(22) |
网关账号 |
5ec90328005f-10031-44d |
attributename |
String(10) |
设备属性名称 |
Zone_Status |
battery |
Int(4) |
电池电量 |
85 |
channel |
Int(4) |
Zigbee频段 |
4 |
commandServerUrl |
String(100) |
命令中心地址 |
123.124.236.149:8087 |
deviceId |
String(36) |
设备编号(UUID) |
3663b1ad-921e-4771-99b5-e617cc09272e |
deviceName |
String(20) |
设备名称 |
DOOR_WINDOW_SENSOR |
extendPanId |
String(36) |
网络扩展编号 |
00137A000001E3CD01 |
factory |
String(10) |
设备厂商标识 |
FactoryName |
networkKey |
String(36) |
加密字符串 |
71d732ab-2e9f-4734-b970-37246f16c633 |
mac |
String(16) |
MAC地址 |
00155f002803cec5 |
mainServerUrl |
String(100) |
数据中心地址 |
123.124.236.149:80 |
panId |
Int(4) |
网络编号 |
12 |
password |
String(36) |
网关登录密码 |
71d732ab-2e9f-4734-b970-37246f16c633 |
sensorType |
Int(2) |
传感器类型 |
1 |
serialno |
String(18) |
设备串号(IEEE地址) |
00137A000001E3CD01 |
sessionId |
String(36) |
用户Session ID |
5deb046d-97c0-43bf-b304-49c8ff0fe614 |
status |
Int(1) |
传感器状态 |
0 |
systemCode |
String(10) |
接入商标识 |
org |
value |
Int(4) |
属性值 |
50 |
version |
String(10) |
版本号 |
2.17.3.0 |
2 网关管理接口
2.1 网关注册GatewayRegister(联网即触发)
2.1.1 需求描述
名称、标识符 |
网关注册 |
功能描述 |
网关在首次家电入网时会登陆认证中心完成设备注册。并获取相关的认证信息。 |
补充说明 |
网关在入网时会统一登录网认证平台,由认证平台根据设备号判别当前用户所属运营商,并下发相关的认证及固件信息。 |
2.1.2 接口说明
2.1.3 接口说明
接口名称:网关注册
接口地址:http://host:port/Gateway/api/Register
支持格式:JSON
请求方式:POST
请求参数说明:
名称 |
类型 |
长度 |
必填 |
说明 |
mac |
string |
16 |
是 |
MAC地址 |
factory |
string |
<10 |
否 |
设备厂商标识 |
serialno |
string |
18 |
是 |
设备串号 |
请求示例:
{
"mac":"00155f002803ccb9", //MAC地址
"factory":"FactoryName", //设备厂商名称(请咨询业务)
"serialno":"00137A000001E3CD01" //设备串号
}
返回参数说明:
名称 |
类型 |
长度 |
说明 |
requestStatus |
int |
1 |
返回码:0成功,-1失败 |
data |
json |
<255 |
deviceId:设备编号 |
errcode |
int |
4 |
错误码 |
errdes |
string |
<255 |
错误原因 |
成功返回示例:
{
"requestStatus":0,//错误码
data:{
"deviceId":"5ec90328005f-10031-44d",//设备编号
"mac":"00155f002803ccb9" //MAC地址
}
}
失败返回示例:
{
"requestStatus":-1,//错误码
"errcode":9001,//网关程序可以忽略,仅供错误描述处理
“errdes”:”deviceid ‘5ec90328005f-10031-44’ not standard”//非法设备
}
错误码参照(errcode):
错误码 |
说明 |
9001 |
设备号已完成注册 |
9002 |
非法设备号 |
3001 |
其他错误 |
2.2 网关固件激活GatewayActivate
2.2.1 需求描述
名称、标识符 |
网关激活 |
功能描述 |
当网关完成注册后,即可通过设备认证信息,向运营服务器完成激活操作并完成用户的计费开通设定,开始计费。 |
补充说明 |
网关完成激活信息并成功初始化网络后即可由用户APP应用完成手机APP用户与网关设备的绑定关系。 |
2.2.2 工作流程
2.2.3 接口说明
接口名称:网关激活
接口地址:http://host:port/Gateway/api/Activate
支持格式:JSON
请求方式:POST
请求参数说明:
名称 |
类型 |
长度 |
必填 |
说明 |
deviceId |
string |
22 |
是 |
设备ID (默认deviceId即设备ID) |
version |
string |
<10 |
是 |
固件版本号 |
请求示例:
{
"deviceId":"5ec90328005f-10031-44d",//设备ID
"version":"0.0.83" //固件版本号
}
返回参数说明:
名称 |
类型 |
长度 |
说明 |
requestStatus |
int |
1 |
返回码:0成功,-1失败 |
data |
json |
<255 |
deviceId:设备编号 |
errcode |
int |
4 |
错误码 |
errdes |
string |
<255 |
错误原因 |
成功返回示例:
{
"requestStatus":0,
data:{
"deviceId":"5ec90328005f-10031-44d", //设备ID
"mac":"00155f002803ccb9", //MAC地址
"serialno":"00137A000001E3CD01", //序列号
"account":"5ec90328005f-10031-44d", //网关账号
"networkKey":"71d732ab-2e9f-4734-b970-37246f16c633",//加密串
"mainServerUrl":"123.124.236.149:80", //数据中心地址
"commandServerUrl":" 123.124.236.149:8077" //命令中心地址
}
}
失败返回示例:
{
"requestStatus":-1,//错误码
"errcode":9001,//网关程序可以忽略,仅供错误描述处理
“errdes”:”deviceid ‘5ec90328005f-10031-44’ not standard”//非法设备
}
错误码参照(errcode):
错误码 |
说明 |
9001 |
设备号已完成注册 |
9002 |
非法设备号 |
3001 |
其他错误 |
2.2.4 网关激活处理流程
2.3 登陆 Login
2.3.1 需求描述
名称、标识符 |
网关登录 |
功能描述 |
网关完成组网后会获取相应的服务器地址以及登录帐号口令。 |
补充说明 |
1,网关在已激活的状态下第一次加电应执行登录操作获取连接的TOKEN |
触发条件 |
网关收到设备云反馈的组网成功消息 |
流程说明 |
网关激活成功后向数据中心发送登录请求; |
2.3.2 工作流程
2.3.3 接口说明
接口名称:登录
接口地址:http://host:port/Gateway/api/Login
支持格式:JSON
请求方式:POST
请求参数说明:
名称 |
类型 |
长度 |
必填 |
说明 |
account |
string |
22 |
是 |
账号ID |
password |
string |
36 |
是 |
账号密码 |
请求示例:
{
"account":"5ec90328005f-10031-44d",//设备ID
"password":"348bbb57-1600-42f6-b0bb-fc0c7e21d912" //密码
}
返回参数说明:
名称 |
类型 |
长度 |
说明 |
requestStatus |
int |
1 |
返回码:0成功,-1失败 |
data |
json |
<255 |
sessionId:用户Session ID |
errcode |
int |
4 |
错误码 |
errdes |
string |
<255 |
错误原因 |
成功返回示例:
{
"requestStatus":0,
data:{
"sessionId":"5deb046d-97c0-43bf-b304-49c8ff0fe614",//用户Session ID
"systemCode":"org" //接入商标识,每个接入商标识会不同
}
}
失败返回示例:
{
"requestStatus":-1,
"errcode":3001,
"errdes":””
}
错误码参照(errcode):
错误码 |
说明 |
3001 |
其他错误 |
2.4 注销 Logout
2.4.1 需求描述
名称、标识符 |
网关注销 |
功能描述 |
注销当前TOKEN重新获取。 |
补充说明 |
1,当网关固件升级时需要先行注销原有链接才可以获取新的连接。 |
触发条件 |
网关长连接失效 |
流程说明 |
网关长连接失效后,需向数据中心发送注销请求,才能再次连接; |
2.4.2 工作流程
2.4.3 接口说明
接口名称:注销
接口地址:http://host:port/Gateway/api/Logout
支持格式:JSON
请求方式:POST
请求参数说明:
名称 |
类型 |
长度 |
必填 |
说明 |
account |
string |
22 |
是 |
账号ID |
sessionId |
string |
36 |
是 |
用户Session ID |
请求示例:
{
"account":"5ec90328005f-10031-44d", //账号ID
"sessionId":"71d732ab-2e9f-4734-b970-37246f16c633" //用户Session ID
}
返回参数说明:
名称 |
类型 |
长度 |
说明 |
requestStatus |
int |
1 |
返回码:0成功,-1失败 |
errcode |
int |
4 |
错误码 |
errdes |
string |
<255 |
错误原因 |
成功返回示例:
{
"requestStatus":0
}
失败返回示例:
{
"requestStatus":-1,
"errcode":3001,
"errdes":””
}
错误码参照(errcode):
错误码 |
说明 |
3001 |
其他错误 |
3 设备管理
3.1 传感器信息上报
名称、标识符 |
SensorReport |
功能描述 |
网关接收到SensorReport命令时应主动应主动将,网关中缓存的设备列表信息上报服务端。 |
补充说明 |
1, 网关设备缓存的设备列表信息一般指白名单约定的可接入设备。 |
3.1.1 SensorReport
接口名称 name of interface |
SensorReport |
请求类型 request type |
POST |
必填字段mandatory text |
sensors:传感器设备 |
返回类型 return type |
JSON JSONObject |
URL |
SensorReport |
input |
{ |
返回值 returned value |
Success: |
3.1.2 链路信息上报LinkReport
接口名称 name of interface |
LinkReport |
请求类型 request type |
POST |
必填字段mandatory text |
sensors:传感器设备 |
返回类型 return type |
JSON |
URL |
LinkReport |
input |
{ |
返回值 returned value |
Success: |
3.2 网关组网信息上报
3.2.1 ChangeNetworkResponse(组网信息上报)
接口名称 name of interface |
ChangeNetworkResponse |
请求类型 request type |
POST |
必填字段mandatory text |
sensors:传感器设备 |
返回类型 return type |
JSON JSONObject |
URL |
ChangeNetworkResponse |
input |
{ |
返回值 returned value |
Success: |
4 传感器事件
4.1 发现新设备
当网关发现新设备加入时,向云端报送发现新设备15:55
4.1.1 接口设计(FindSensor)
接口名称 |
FindSensor |
请求类型 request type |
POST |
必填字段 mandatory text |
GatewayId:网关ID |
返回类型 return type |
JSON JSONObject |
URL |
FindSensor |
input |
{ |
返回值 |
Success: |
4.2 数据状态报送
4.2.1 数据临界点触发
名称、标识符 |
数据临界点上报 |
功能描述 |
当传感器设备采集点达到预定的触发值时触发数据报送事件 |
补充说明 |
4.2.2 周期上报
名称、标识符 |
周期上报 |
功能描述 |
在传感器正常工作期间,需在指定的周期内触发主动采集完成数据报送。 |
补充说明 |
4.2.3 即时报送
名称、标识符 |
即时报送 |
功能描述 |
传感器在接收到远程即时报送的命令后需即时完成上报。 |
补充说明 |
1,完成即时上报后如果存在周期上报命令需要初始化上报周期记时。 |
4.3 设备报警
4.3.1 设备报警
名称、标识符 |
设备报警 |
功能描述 |
支持报警的设备,在达到报警设定阀值时应发出报警触发指令 |
补充说明 |
1, 设备报警指令发送不需要特定的绑定操作即可实现全网的广播 |
4.3.2 报警状态解除
名称、标识符 |
报警状态解除 |
功能描述 |
报警管理中心或特定的受控(Server)接收到报警信息后可以选择性的向报警设备发送方发送状态解除指令。 |
补充说明 |
1, 推荐采用报警登记管理中心的模式来管理报警状态 |
4.3.3 报警日志
名称、标识符 |
报警日志 |
功能描述 |
设备在进入报警模式时可以根据自身设备条件启动日志模式 |
补充说明 |
1, 当设备出于低电量或网络信号差时可以实时关闭日志模式 |
4.3.4 报警管理中心
名称、标识符 |
报警管理中心 |
功能描述 |
报警作为一种特殊的应用场景,需要在ZIGBEE网络中提供全局的管理能力 |
补充说明 |
1, 报警管理中心可以由协调器来承担也可以由路由设备来担任 |
4.3.5 接口设计自定义规则修改
名称、标识符 |
上报规则 |
功能描述 |
在传感器运行期间应支持其上报规则的动态修改。 |
补充说明 |
1, 可修改的属性包括采集周期、触发阀值等。 |
4.4 接口设计
4.4.1 数据上报
接口名称 |
DataReport |
请求类型 request type |
POST |
必填字段 mandatory text |
|
返回类型 return type |
JSON JSONObject |
URL |
DataReport |
input |
{ |
返回值 |
Success: |
4.4.2 报警处理
接口名称 |
AlarmReport |
请求类型 request type |
POST |
必填字段 mandatory text |
|
返回类型return type |
JSON JSONObject |
URL |
AlarmReport |
input |
{ |
返回值 |
Success: |
4.4.3 上线通知
接口名称 |
SensorOnLine |
请求类型request type |
POST |
必填字段 mandatory text |
|
返回类型 return type |
JSON JSONObject |
URL |
SensorOnLine |
input |
{ |
返回值 |
Success: |
4.4.4 设备掉线通知
接口名称 |
SensorOffLine |
请求类型 request type |
POST |
必填字段mandatory text |
sensors:需要添加的传感器设备 |
返回类型 return type |
JSON JSONObject |
URL |
SensorOffLine |
input |
{ |
返回值 |
Success: |
5 控制命令(COMMAND)
5.1 控制命令需求描述
5.1.1 命令接收与执行
名称、标识符 |
命令接收与执行 |
功能描述 |
网关在完成云端登陆后需要保持与云端的HTTP长链接等候接收云端的指令。 |
补充说明 |
1, 网关加电入网后,首先完成认证中心认证后,需要向云平台发起新的HTTP链接,并保持当前链接等候云端的指令。 |
5.1.2 命令报告及相应事件
名称、标识符 |
当数据命令发生 |
功能描述 |
当传感器触发事件后会通过网关完成数据上报。 |
补充说明 |
上报的数据包括: |
5.1.3 命令错误报告
名称、标识符 |
命令错误报告 |
功能描述 |
当命令执行不能到达时需要向云端发送错误报告 |
补充说明 |
发生如下错误时上报: |
5.2 接口设计
5.2.1 创建命令通道
接口名称 |
CommandConnect |
请求类型 |
HTTP GET//至1.2版本后只支持GET方法 |
必填字段 |
ieee:网关ieee地址 |
返回类型 |
json |
URL |
http://host:port/comet?ieee=00137A0000014D6A&SYSID=greenlive&JSESSIONID=00UDSFSDA014D6A01DSAFDSA |
input |
|
返回值 |
连接正常则返回“0” |
5.2.2 命令执行报告反馈
接口名称 |
CommendReport |
请求类型 |
HTTP POST |
必填字段 |
commandId |
返回类型 |
json |
URL |
http://host:port/Gateway/api/CommandReport |
input |
{ |
返回值 |
Success: |
6 网关控制命令(COMMAND)
6.1 网关操作
6.1.1 Debug
进入调试模式,网关根据下发命令地址重新完成,服务器连接操作。
接口名称 |
Debug |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.1.2 InitGateway
保留传感器信息,重新完成网关激活动作。
命令名称 |
InitFatory |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.1.3 InitFatory
强制执行出厂配置,清除所有配对信息
命令名称 |
InitFatory |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.1.4 FirmwareDownLoad
网关接收命令后需要中下载固件,在下载完成后进行md5与 size 校验,确认正确后,重新启动,并在启动完成后重新激活该版本。在升级过程中出现错误需要要回滚上一版本启动。
接口名称 |
FirmwareDownload |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.1.5 ChannelNegotiate
按给定参数强制组网
接口名称 |
ChannelNegotiate |
请求类型 |
COMMAND |
命令格式 |
{ |
回调函数 |
执行完成后,回调 |
6.1.6 ChannelNegotiateReport
上报当前网络状况信息
接口名称 |
ChannelNegotiate |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.2 设备管理
6.2.1 AddSensor添加设备
名称、标识符 |
AddSensor添加设备 |
功能描述 |
网关接收到AddSensor命令时应将制定设备的IEEE地址加入到白名单中。 |
补充说明 |
1, 如白名单中已经存在该设备则可以忽略。 |
命令格式
接口名称 |
AddSensor |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.2.2 移除设备
需求描述
名称、标识符 |
RemoveSensor |
功能描述 |
网关接收到AddSensor命令时应将制定设备的IEEE地址从白名单中移除。 |
补充说明 |
1, 如白名单中不存在该设备则可以忽略。 |
命令格式
接口名称 |
RemoveSensor |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.2.3 更换设备
名称、标识符 |
更换设备 |
功能描述 |
在当前网络设备如果存在故障设备需要支持更换设备的需求。 |
补充说明 |
1, 故障设备为终端设备时可以直接移除并添加新设备。 |
命令格式
接口名称 |
ReplaceSensor |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.2.4 IdentifyDevice(状态指示)
适用于带电设备,控制其状态指示。
接口名称 |
IdentifyDevice |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
6.3 Zigbee组网
6.3.1 ZigbeeScan查找加网
名称、标识符 |
查找网络 |
功能描述 |
网关接收到SCAN命令时应主动开放Zigbee网络,并将发现可加入的传感器报送服务端(报送接口参考FindSensor接口描述) |
补充说明 |
1,网关打开Zigbee网络在白名单内的传感器直接执行加入动作,未在白名单内的传感器则需要向云端报送等待云端指令加入。 |
命令格式
接口名称 |
ZigbeeScan |
请求类型 |
COMMAND |
命令格式 |
{"command":"ZigbeeScan","commandId":"1000259"} |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.3.2 强制离网(LevelNetWork)
名称、标识符 |
移除设备 |
功能描述 |
当网关收到,认证中心移除设备的指令后完成指定设备从网络中移除。 |
补充说明 |
1, 对于可到达的路由器设备应该及时响应删除链路信息 |
命令格式
接口名称 |
LevelNetWork |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.3.3 指定节点加网(AddNode2Route)
接口名称 |
AddNode2Route |
请求类型 |
COMMAND |
命令格式 |
{"command":"AddNode2Route" |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.3.4 LinkReport链路信息上报
需求描述
名称、标识符 |
LinkReport |
功能描述 |
网关接收到LinkReport命令时应将zigbee的链路表信息上报服务端。 |
补充说明 |
1, 星型组网时直接上报物理状况信息。 |
命令格式
接口名称 |
LinkReport |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.3.5 LinkSet设备链路设定
需求描述
名称、标识符 |
LinkSet |
功能描述 |
网关接收到LinkSet命令时应将zigbeey应根据指定的链路表组建网络。 |
补充说明 |
1, 主要用于网关故障的灾难性回复避免用户,再次完成重新加网操作。 |
命令格式
接口名称 |
LinkSet |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.4 场景与组操作
6.4.1 CreateGroup创建组
命令格式
接口名称 |
CreateGroup |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.4.2 RemoveGroup移除组
接口名称 |
RemoveGroup |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.4.3 ClearGroup清空组
命令格式
接口名称 |
CreateScene |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.4.4 CreateScene增加场景
命令格式
接口名称 |
CreateScene |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.4.5 RemoveScene移除场景
命令格式
接口名称 |
ClearScene |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.4.6 ClearScene移除场景
命令格式
接口名称 |
ClearScene |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.5 设备绑定
6.5.1 GetBindList获取绑定列表
命令格式
接口名称 |
GetBindList |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.5.2 BindDevice设备绑定
命令格式
接口名称 |
BindDevice |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.5.3 UnBindDevice解除绑定
命令格式
接口名称 |
UnbindDevice |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6 控制命令
6.6.1 CMD控制设备命令
6.6.2 Movetolevel(调级)
适用于智能灯泡的可分级调整的设备
接口名称 |
Movetolevel |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
6.6.3 OutLetOperation(开关切换)
适用于电源插座、控制开关等可以进行(开关状态)切换的命令
接口名称 |
Movetolevel |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
6.6.4 ClearData(清空设备数据)
适用于带电设备,清空记录电能等相关信息。
接口名称 |
IdentifyDevice |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
6.6.5 HA属性操作(AttributeWrite)
可以完成设备睡眠周期改写、上报周期、设备临界点等设定。
接口名称 |
AttributeWrite |
请求类型 |
COMMAND |
命令格式 |
{"command":" AttributeWrite", |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
回调函数 |
SensorReport |
暂定支持范围 |
红外属性: |
6.6.6 AddPassword(添加密码)
添加密码(适用于密码设备)
接口名称 |
AddPassword |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.7 DelPassword删除密码
接口名称 |
DelPassword |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.8 ClearPassword(清空密码)
清空密码
接口名称 |
ClearPassword |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.9 ClusterCMD节点指令透传
命令格式
接口名称 |
ClusterCMD |
请求类型 |
COMMAND |
命令格式 |
{"command":" ClusterCMD", |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.10 IRLearn红外学习
适用于红外指令学习
命令格式
接口名称 |
IRLearn |
请求类型 |
COMMAND |
命令格式 |
{"command":" IRLearn", |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.11 G IRControl红外指令发送
适用于红外指令指令发送
命令格式
接口名称 |
IRControl |
请求类型 |
COMMAND |
命令格式 |
{"command":" IRControl", |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.12 ClusterCMD节点指令透传
命令格式
接口名称 |
ClusterCMD |
请求类型 |
COMMAND |
命令格式 |
{"command":" ClusterCMD", |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.13 GroupClusterCMD节点集群指令透传
命令格式
接口名称 |
GroupClusterCMD |
请求类型 |
COMMAND |
命令格式 |
{"command":" GroupClusterCMD", |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
6.6.14 ReleaseAlarm
当发生误报时可以命令解除报警,关闭蜂鸣器等报警设备
接口名称 |
ReleaseAlarm |
请求类型 |
COMMAND |
命令格式 |
{ |
返回类型 |
网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节) |
7 字典表
7.1 传感器类型字典
名称 |
类型 |
备注 |
门/窗磁感应器 |
1 |
|
温度感应器 |
2 |
|
漏水感应器 |
3 |
|
红外移动感应器 |
4 |
|
可调光智能灯 |
5 |
|
可调色智能灯 |
6 |
|
普通智能插座 |
7 |
|
温湿度感应器 |
8 |
|
智能声光报警器 |
9 |
|
无线智能门铃 |
10 |
|
无线智能摄像头 |
11 |
|
中继器 |
12 |
|
湿度感应器 |
13 |
|
多键便携开关 |
14 |
|
无线紧急按钮 |
15 |
|
无线摄像机 |
16 |
|
智能红外转发器 |
17 |
|
无线门铃 |
18 |
|
烟雾感应器 |
21 |
|
可燃气体报警器 |
22 |
|
PM2.5空气检测 |
23 |
|
空开设备/电表 |
24 |
|
墙面开关 |
26 |
|
墙面插座 |
29 |
|
智能门锁 |
30 |
|
场景控制器 |
31 |
|
感应开关 |
32 |
|
未知设备 |
100 |
7.2 报警规则
序号 |
传感器名称 |
默认报警阀值 |
备注 |
1 |
门/窗磁感应器 |
打开 |
门磁处于打开状态时触发报警AlarmReport,当门磁关闭时发送DataReport,通知云端解除报警状态 |
2 |
温度感应器 |
无 |
|
3 |
漏水感应器 |
漏水触发 |
漏水处于触发状态时触发报警AlarmReport,当恢复正常时发送DataReport,通知云端解除报警状态 |
4 |
红外移动感应器 |
物体移动 |
有物体移动时触发状态时触发报警AlarmReport,当恢复正常时发送DataReport,通知云端解除报警状态 |
5 |
可调光智能灯 |
无 |
|
6 |
可调色智能灯 |
无 |
|
7 |
普通智能插座 |
电流电压过载 |
|
8 |
温湿度感应器 |
无 |
|
9 |
智能声光报警器 |
触发 |
|
10 |
无线智能门铃 |
无 |
|
11 |
无线智能摄像头 |
物体移动 |
有物体移动时触发状态时触发报警AlarmReport,当恢复正常时发送DataReport,通知云端解除报警状态 |
126 |
湿度感应器 |
无 |
|
12 |
无线开关 |
无 |
|
13 |
无线紧急按钮 |
启动紧急开关 |
人工出发开关,并在2分钟内未解除的则发送报警信号 |
14 |
智能红外转发器 |
无 |
|
15 |
无线声光报警器 |
无 |
|
16 |
烟雾感应器 |
高温或烟雾 |
探测到高温或烟雾时发送报警信息 |
17 |
空气质量监测 |
严重污染 |
PM2.5浓度超标或有害气体超标则发送报警信息,恢复正常后解除报警 |
7.3 设备状态
状态名称 |
值 |
检查规则 |
备注 |
脱机 |
0 |
带电设备,每1分钟检查一次,两次以上未响应,则上报脱机。电池供电设备,每小时唤醒一次,连续两次未收到唤醒信号,上报脱机。 |
|
在线 |
1 |
设备入网后,或唤醒时向云端报送上线通知。 |
|
激活 |
2 |
设备完成认证并成功入网后,上报状态。 |
|
故障 |
3 |
设备在线状态正常,但在接收命令时不能及时反馈状态信息时上报故障。 |
|
已移除 |
4 |
设备被网关移除 |
7.4 数据上报量
序号 |
传感器名称 |
属性名称 |
值 |
备注 |
1 |
门/窗磁感应器 |
Zone_Status |
0/1 |
关闭状态下报送:0 |
2 |
温度感应器 |
Temperature |
25 |
|
3 |
漏水感应器 |
Zone_Status |
0/1 |
正常状态下报送:0 |
4 |
红外移动感应器 |
Zone_Status |
0/1 |
正常状态下报送:0 |
5 |
可调光智能灯 |
Level |
0-255 |
调光 |
StateOnOff |
0/1 |
0:关,1:开 |
||
6 |
可调色智能灯 |
RGB |
FFFFFF |
颜色值 |
StateOnOff |
0/1 |
0:关,1:开 |
||
7 |
普通智能插座 |
Current |
0—? |
电流 |
Voltate |
0—? |
电压 |
||
Power |
0—? |
电能 |
||
Energy |
0—? |
功率 |
||
StateOnOff |
0/1 |
0:关,1:开 |
||
8 |
温湿度感应器 |
Temperature |
温度 |
|
Humidity |
湿度 |
|||
9 |
智能声光报警器 |
Zone_Status |
0/1 |
|
10 |
无线智能门铃 |
StateOnOff |
0/1 |
|
11 |
无线智能摄像头 |
另行规定 |
||
12 |
湿度感应器 |
Humidity |
湿度 |
|
13 |
无线开关 |
StateOnOff |
0/1 |
|
14 |
无线紧急按钮 |
Zone_Status |
0/1 |
|
15 |
智能红外转发器 |
另行规定 |
||
16 |
无线声光报警器 |
Zone_Status |
0/1 |
|
17 |
烟雾感应器 |
Zone_Status |
0/1 |
|
18 |
空气质量监测 |
Zone_Status |
0/1 |
|
PM2.5 |
? |
PM2.5 |
8 安全认证及错误处理
8.1 需求概述
名称、标识符 |
Zigbee组网安全 |
功能描述 |
Zigbee通讯设备应具备AES128位以上硬加密模式。 |
补充说明 |
安全功能将做如下处理: |
8.2 认证流程
8.2.1 网关注册
名称、标识符 |
网关注册 |
功能描述 |
网关在首次家电入网时会登陆认证中心完成设备注册。并下发相关的认证信息 |
补充说明 |
认证信息包括: |
8.2.2 网关激活
名称、标识符 |
网关激活 |
功能描述 |
实现绑定网关与用户APP的绑定关系,并将用户信息下发到网关设备。 |
补充说明 |
8.2.3 申请证书
名称、标识符 |
申请证书 |
功能描述 |
网关可以单独发起申请证书操作。 |
补充说明 |
8.2.4 更换证书
名称、标识符 |
更换证书 |
功能描述 |
当网关完成激活时会发起证书申请,请求云端认证中心下发认证证书。 |
补充说明 |
8.2.5 添加设备
名称、标识符 |
添加设备 |
功能描述 |
当网关收到新设备的请求网络申请时,会将申请设备信息发送至认证中心。等待认证通过。 |
补充说明 |
云端根据具体运营商的需求会完成: |
8.2.6 移除设备
名称、标识符 |
移除设备 |
功能描述 |
当网关收到,认证中心移除设备的指令后完成指定设备从网络中移除。 |
补充说明 |
8.2.7 固件下载
名称、标识符 |
固件下载 |
功能描述 |
当有新固件需要更新时提供固件的更新操作。 |
补充说明 |
云端应提供断点续传的支持 |
8.2.8 版本恢复
名称、标识符 |
版本恢复 |
功能描述 |
网关在固件出现问题时可以下载指定版本进行恢复。 |
补充说明 |
8.3 接口设计
8.3.1 CheckUpgrade检查更新
接口名称 |
CheckUpgrade |
请求类型 request type |
POST |
必填字段 mandatory text |
currVerson:当前版本号 |
返回类型 return type |
JSON JSONObject |
URL |
CheckUpgrade |
input |
{ |
返回值 |
Success: |
8.3.2 ApplyKey证书申请
接口名称 |
ApplyKey |
请求类型 request type |
POST |
必填字段mandatory text |
|
返回类型 return type |
JSON JSONObject |
URL |
ApplyKey |
input |
{ |
返回值 |
Success: |
8.3.3 RepaceKey证书更新
接口名称 |
KeyDownload |
请求类型 request type |
POST |
必填字段 mandatory text |
|
返回类型 return type |
JSON JSONObject |
URL |
http://host:port/firmware/KeyDownload |
input |
{ |
返回值 |
Success: |
8.4 网关固件升级流程
8.5 网关错误报告
接口名称 |
GatewayErrorReport |
请求类型 request type |
POST |
返回类型 return type |
JSON JSONObject |
URL |
http://host:port/Gateway/api/GatewayErrorReport |
input |
{ |
返回值 |
Success: |
8.6 应用错误错误报告流程
当网关在建立长连接前或长连接链接信息出现异常是需要报送网管错误报告。用例如下:
用户登录错误
网关登录时失败需要报送1001:Login error (登录不成功)并等待云端指令。
版本激活错误
上报网关错误,错误码1004:Activite fail (固件激活失败)。
网关会根据网关具体情况下发固件升级或重新注册激活指令。
长联接错误
网关登录成功后会发起,长联接请求,在指定的时间内默认(60S)没有收到服务器返回或返回错误代码时,上报网关错误,错误码1003:CommandUrl fail(长链接失败)心跳超时错误
网关成功建立长联接服务端会以10S/次的频率发送心跳信息"0"网关默认不需应答,当网关连续10次(100S)未收到心跳信息时,需要上报网关错误,1002:CommandUrl timeout (长链接超时)。
固件升级错误
当网关,固件升级出现错误回滚时报送1005:Update fail (固件升级失败)。
其他错误
当网关由于其他原因不能正常接收云端命令时,2001:Other Error (其他错误)
评论留言