OneCode-IOT联通研究院智能家居云端协议开源实现

物联网
后台-插件-广告管理-内容页头部广告(手机)

一,背景

作为国内三大运营商之一的联通集团是国内最早进入到联通智能能家居行业的。中国联通旗下中国联通研究院于2015年便牵头成立了了国内首家智能家居zigbee通讯协议互联互通工作小组,联合业界包括华为、绿米、UIOT,mavell 、浙江瑞瀛,北京GreenLive等多家率先开始为中国智能家居市场制定从设备到网关以及网关到云端的实践应用标准。凭借对市场需求的了解和实验室实际测试的结果,历时两年的推出了。zigbee开放互联互通协议,以及云端接口规范要求。

二,OneCode-IOT

OneCode-IOT 是在联通研究院zigbee互联互通协议的基础上,使用OneCode开源低代码平台做得一个基础实现,也是OneCode低代码平台在物联网行业的标杆性案例。 OneCode-IOT 推出后先后在联通集团,中国人寿集团,途家网平台,有家民宿、斯维登集团等多家央企平台以及互联网头部企业得到了推广应用。服务百万家庭酒店客房。本次开源部分,主要是在原有IOT内核基础上,针对联通互联互通协议进行了重构封装。本次包括:

(1)iot-app 移动端应用

OneCode-IOT联通研究院智能家居云端协议开源实现

(2)iot-设备云服务

OneCode-IOT联通研究院智能家居云端协议开源实现

平台总体架构

(3)OneCode-scene 网关场景服务

OneCode-IOT联通研究院智能家居云端协议开源实现

场景定义服务

OneCode-IOT联通研究院智能家居云端协议开源实现

设备场景定义

OneCode-IOT联通研究院智能家居云端协议开源实现

设备联动

(4)OneCode IoT 控制台

OneCode-IOT联通研究院智能家居云端协议开源实现

控制台编辑管理

OneCode-IOT联通研究院智能家居云端协议开源实现

控制台数据定义

OneCode-IOT联通研究院智能家居云端协议开源实现

控制台应用开发

OneCode-IOT联通研究院智能家居云端协议开源实现

三,开源支持 厂商声明

该开源项目,由CodeBee团队牵头整理,云端平台部分,由北京紫蜂智联智能科技有限公司支持。

项目平台部分采用 LGPL协议开源。低代码工具平台部分遵循OneCode 开源协议。低代码APP部分及完整的控制台应用,不设任何商业限制。可无限制修改使用分发。

项目中涉及到网关传感器 设备,可自行联系互联互通联盟厂商。

现推荐厂商列表

超级智慧家uiot

浙江东胜物联技术有限公司

厦门吉物科技有限公司

四,开放协议摘录

1 用户角色及接口概述

1.1 用户角色

角色名称

职责描述

涉及模块

网关设备
(Gateway)

Zigbee组网中充当协调器角色负责网路组网管理,完成ZigBee向WLAN的转换

网关平台

传感器设备
(Sensor)

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 云平台对象关系

OneCode-IOT联通研究院智能家居云端协议开源实现

1.4 网关与云平台交互示意

OneCode-IOT联通研究院智能家居云端协议开源实现

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 接口说明

OneCode-IOT联通研究院智能家居云端协议开源实现

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:设备编号
mac:MAC地址

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用户与网关设备的绑定关系。
网关激活是网关入网的必要条件,网关初次入网或固件更新时需要调用该接口,重新完成固件版本激活,激活后网关会返回,新的gatewayAccount以及keyword 信息同时数据上报地址(mainServerUrl)以及commandServerUrl(命令长连接地址)也会发生改变,网关重新激活后,需要按新的地址上报数据同时按新的地址重新建立长连接等待命令。

2.2.2 工作流程

OneCode-IOT联通研究院智能家居云端协议开源实现

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:设备编号
mac:MAC地址
serialno:序列号
account:网关账号ID
networkKey:加密字符串,用于传感器与网关的数据加密
mainServerUrl:数据中心地址
commandServerUrl:命令中心地址

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,如登录不成功需要发送网关错误报告。具体参见错误报告章节。

触发条件

网关收到设备云反馈的组网成功消息

流程说明

网关激活成功后向数据中心发送登录请求;
请求成功设备云返回成功状态值、网关帐号和加密字符串等等;
请求失败设备云返回失败状态值、错误码和错误描述,或者返回空;
若请求失败,网关会发送1004错误码,并重启;

2.3.2 工作流程

OneCode-IOT联通研究院智能家居云端协议开源实现

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
systemCode:接入商标识

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,当接收到服务端重启指令时需要先执行注销指令。

触发条件

网关长连接失效

流程说明

网关长连接失效后,需向数据中心发送注销请求,才能再次连接;
请求成功数据中心返回成功状态值;
请求失败设备云返回失败状态值、错误码和错误描述,或者返回空;
若请求失败,网关会发送1004错误码,并重启;

2.4.2 工作流程

OneCode-IOT联通研究院智能家居云端协议开源实现

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, 网关设备缓存的设备列表信息一般指白名单约定的可接入设备。
2,如网关不支持白名单时应将协调器中缓存的设备信息上报服务端。

3.1.1 SensorReport

接口名称 name of interface

SensorReport

请求类型 request type

POST

必填字段mandatory text

sensors:传感器设备

返回类型 return type

JSON JSONObject

URL

SensorReport
http://host:port/Gateway/api/SensorReport

input

{
"sensors":[
{
"serialno":"00137A000001E6AA",
"battery":85 ,//电量
"deviceName":"设备名称",//"Z103A"
"currVersion":"1.5",//软件版本
"sensorType":1,//
"status":1 //参考7.4设备状态
"lqi":80,//网络质量
"epList":[
{
"sensorType":7,
"ep":"0A",
"ieee":"00137A000001E6AA01",
"profileid":"1041",
"deviceid": "9" , //HA
"nwkAddress":"D740", //
"attributes":[
{
"attributename":" Temperature",
"length":2,
"value":"25"
}
]
}
]
"bindList":
{
"ieee":"00137A000001E6AA01",
"count":5,
"list":[
{
"index":1,
"clusterid":"
",
"destieee":"00137A000001E6BA01"
}
]
}
}
]
}

返回值 returned value

Success:
{
"requestStatus":0
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other
error (其他错误)
]

3.1.2 链路信息上报LinkReport

接口名称 name of interface

LinkReport

请求类型 request type

POST

必填字段mandatory text

sensors:传感器设备

返回类型 return type

JSON
JSONObject

URL

LinkReport
http://host:port/Gateway/api/LinkReport

input

{
{
"ieee":"00137A000001E6AA"
"parentNodeieee":"00137A000001E6AA01",
"lqi":85 ,//链路质量
"childNode":[
{
"ieee":"00137A000001E6AA"
"parentNodeieee":"00137A000001E6AA01",
"lqi":85,
"childNode":[]
}
]
}

返回值 returned value

Success:
{
"requestStatus":0
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

3.2 网关组网信息上报

3.2.1 ChangeNetworkResponse(组网信息上报)

接口名称 name of interface

ChangeNetworkResponse

请求类型 request type

POST

必填字段mandatory text

sensors:传感器设备

返回类型 return type

JSON JSONObject

URL

ChangeNetworkResponse
http://host:port/Gateway/api/ ChangeNetworkResponse

input

{
"wifi":{
"ssid":"nevox_0537",
"mode":"11b"
,
"password":"888888",
"status":1 //1:开启0:关闭
},
"wlan":{
"mode":"0",//0动态IP,1:静态,2,PPOE 3,3G
"account":"0",
"password":"1231231231"
},
"dhcp":[{
"name":"wenzhang-mac",
"mac":"64:00:6a:47:b6:bb",
"ip":"127.0.0.1"
}]
}

返回值 returned value

Success:
{
"requestStatus":0
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other
error (其他错误)
]

4 传感器事件

4.1 发现新设备

当网关发现新设备加入时,向云端报送发现新设备15:55

4.1.1 接口设计(FindSensor)

接口名称
name of interface

FindSensor

请求类型 request type

POST

必填字段 mandatory text

GatewayId:网关ID
sensors:设备列表

返回类型 return type

JSON JSONObject

URL

FindSensor
http://host:port/Gateway/api/FindSensor

input

{
"sensors":[
{
"serialno":"00137A000001E6AA",
"battery":85 ,//电量
"deviceName":"设备名称",//"Z103A"
"currVersion":"1.5",//软件版本
"sensorType":1,//
"status":1 //参考7.4设备状态
"lqi":80,//网络质量
"epList":[
{
"sensorType":7,
"ep":"0A",
"ieee":"00137A000001E6AA01",
"profileid":"1041",
"deviceid":
"9" , //HA
"nwkAddress":"D740",
//
"attributes":[
{
"attributename":" Temperature",
"length":2,
"value":"25"
}
]
}
]
"bindList":
{
"ieee":"00137A000001E6AA01",
"count":5,
"list":[
{
"index":1,
"clusterid":" ",
"destieee":"00137A000001E6BA01"
}
]
}
}
]
}

返回值
returned value

Success:
{
"requestStatus":0,
data :
[
{
sn:"00137A000001E6AA01",
zigbeekey:"…"//zigbeekey证书
}
]
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

4.2 数据状态报送

4.2.1 数据临界点触发

名称、标识符

数据临界点上报

功能描述

当传感器设备采集点达到预定的触发值时触发数据报送事件

补充说明

4.2.2 周期上报

名称、标识符

周期上报

功能描述

在传感器正常工作期间,需在指定的周期内触发主动采集完成数据报送。

补充说明

4.2.3 即时报送

名称、标识符

即时报送

功能描述

传感器在接收到远程即时报送的命令后需即时完成上报。

补充说明

1,完成即时上报后如果存在周期上报命令需要初始化上报周期记时。
2,设备如果具有休眠周期属性,应初始化记时。

4.3 设备报警

4.3.1 设备报警

名称、标识符

设备报警

功能描述

支持报警的设备,在达到报警设定阀值时应发出报警触发指令

补充说明

1, 设备报警指令发送不需要特定的绑定操作即可实现全网的广播
2, 设备在发生报警时,需要解除报警的命令时才可停止报警的广播
3, 当设备由于低电量、网络状况差等原因暂停周期任务是,需要强制唤醒完成报警操作。
4, 当发生低电量等系统报警时需要强制发送报警信息

4.3.2 报警状态解除

名称、标识符

报警状态解除

功能描述

报警管理中心或特定的受控(Server)接收到报警信息后可以选择性的向报警设备发送方发送状态解除指令。

补充说明

1, 推荐采用报警登记管理中心的模式来管理报警状态
2, 在启用报警模式的情况下建议采用登记模式。
3, 在报警模式下协调器应具备报警的管理职责。

4.3.3 报警日志

名称、标识符

报警日志

功能描述

设备在进入报警模式时可以根据自身设备条件启动日志模式

补充说明

1, 当设备出于低电量或网络信号差时可以实时关闭日志模式
2, 报警管理中心或协调器可以通过远程的方式获取日志信息。

4.3.4 报警管理中心

名称、标识符

报警管理中心

功能描述

报警作为一种特殊的应用场景,需要在ZIGBEE网络中提供全局的管理能力

补充说明

1, 报警管理中心可以由协调器来承担也可以由路由设备来担任
2, 报警管理中心推荐采用IPV6方式的唯一的PANID设定
3, 在ZIGBEE网络具有全局的唯一性
4, 在ZIGBEE网络中应具有独立的固定地址来方便寻址
5, 通常模式下有报警管理中心来发送报警解除操作
6, 报警管理中心允许在没有协调器存在的情况下独立操作
7, 报警管理中心应具备报警日志的管理功能

4.3.5 接口设计自定义规则修改

名称、标识符

上报规则

功能描述

在传感器运行期间应支持其上报规则的动态修改。

补充说明

1, 可修改的属性包括采集周期、触发阀值等。
2, 开发者可以通过远程操作的方式完成操作。
3, 规则修改后传感器应立即响应修改,停止原有规则。

4.4 接口设计

4.4.1 数据上报

接口名称
name of interface

DataReport

请求类型 request type

POST

必填字段 mandatory text

返回类型 return type

JSON JSONObject

URL

DataReport
http://host:port/Gateway/api/DataReport

input

{
"serialno":"00137A000001E6AA01",
"attributename":"Current", //参数名称
"time":"yyyy-MM-dd
HH:mm:ss",
"status":0,//状态
"value":"0.5"
}

返回值
returned value

Success:
{
"requestStatus":0
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

4.4.2 报警处理

接口名称
name of interface

AlarmReport

请求类型 request type

POST

必填字段 mandatory text

返回类型return type

JSON JSONObject

URL

AlarmReport
http://host:port/Gateway/api/AlarmReport

input

{
"serialno":"00137A000001E6AA01",
"attributename":" Zone_Status ", //状态
"time":"yyyy-MM-dd
HH:mm:ss",
"status":0 , //参见报警规则
"value":"0.5"
}

返回值
returned value

Success:
{
"requestStatus":0
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

4.4.3 上线通知

接口名称
name of interface

SensorOnLine

请求类型request type

POST

必填字段 mandatory text

返回类型 return type

JSON JSONObject

URL

SensorOnLine
http://host:port/Gateway/api/SensorOnLine

input

{
"serialno":"00137A000001E6AA01"
"battery":85 ,//电量
"deviceName":"设备名称",
"currVersion":"1.5",//软件版本
"sensorType":1,
"status":1 //状态
}

返回值
returned value

Success:
{
"requestStatus":0
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

4.4.4 设备掉线通知

接口名称
name of interface

SensorOffLine

请求类型 request type

POST

必填字段mandatory text

sensors:需要添加的传感器设备

返回类型 return type

JSON JSONObject

URL

SensorOffLine
http://host:port/Gateway/api/SensorOffLine

input

{
"serialno":"00137A000001E6AA01"
"battery":85 ,//电量
"deviceName":"设备名称",
"currVersion":"1.5",//软件版本
"sensorType":1,
"status":0 //状态
}

返回值
returned value

Success:
{
"requestStatus":0
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

5 控制命令(COMMAND)

5.1 控制命令需求描述

5.1.1 命令接收与执行

名称、标识符

命令接收与执行

功能描述

网关在完成云端登陆后需要保持与云端的HTTP长链接等候接收云端的指令。

补充说明

1, 网关加电入网后,首先完成认证中心认证后,需要向云平台发起新的HTTP链接,并保持当前链接等候云端的指令。
2, 在接收到网关指令(可能是网关原语或网关与云端自定义的规则函数)后会执行网关命令,并调用数据上报接口将返回数据报送云端。具体上报数据参见网关接口API.
3, 命令参见网关接口设计。

5.1.2 命令报告及相应事件

名称、标识符

当数据命令发生

功能描述

当传感器触发事件后会通过网关完成数据上报。

补充说明

上报的数据包括:
1, 组网信息改变后完成新的网络信息上报
2, 在执行云端指令后将执行结果返回到云端
3, 当传感器满足触发条件时,主动将数据上报至云端。

5.1.3 命令错误报告

名称、标识符

命令错误报告

功能描述

当命令执行不能到达时需要向云端发送错误报告

补充说明

发生如下错误时上报:
1000;// 命令成功到达
1001;// 命令下发等待设备执行
2001;// 命令格式错误
2002;// 网络错误
//当链路出现无有效路由,树状态链路失败,非树状态链路失败,多对一路由失败 ,接传送终止,源路由失败等错误时上报云端2003链路失效。
2003;// 链路失效
2004;// 当设备出现,低电池电压,无路由能力或无间接能力时上报 2004设备故障。
2005;//
2005路由失效 当父设备链路失败,源路由失败时,上报2005.
2006 ;//
命令执行失败
3001 ;//
未知错误

5.2 接口设计

5.2.1 创建命令通道

接口名称

CommandConnect
网关通过发起HTTPGET方式创建,长链接服务,服务接收到请求后会保持该链接同时每10秒网关主动发送一次内容为“0”的心跳。

请求类型

HTTP GET//至1.2版本后只支持GET方法

必填字段

ieee:网关ieee地址
SYSID:激活后返回的SYSID
JSESSIONID:激活后返回的JSESSIONID

返回类型

json

URL

http://host:port/comet?ieee=00137A0000014D6A&SYSID=greenlive&JSESSIONID=00UDSFSDA014D6A01DSAFDSA

input

返回值

连接正常则返回“0”
并且每次间隔10S会发送服务器心跳“0”

5.2.2 命令执行报告反馈

接口名称

CommendReport

请求类型

HTTP POST

必填字段

commandId

返回类型

json

URL

http://host:port/Gateway/api/CommandReport

input

{
"commandId":"1000180",
"requestStatus":0,//0,成功,-1失败
"code":3001
}
code List:
//报告中如有与规格需求冲突的以规格需求报告为主
code List:
//报告中如有与规格需求冲突的以规格需求报告为主
[
1000;// 命令成功到达
1001;// 命令下发等待设备执行
2001;// 命令格式错误
2002;// 网络错误
//当链路出现无有效路由,树状态链路失败,非树状态链路失败,多对一路由失败 ,接传送终止,源路由失败等错误时上报云端2003链路失效。
2003;// 链路失效
2004;// 当设备出现,低电池电压,无路由能力或无间接能力时上报 2004设备故障。
2005;//
2005路由失效 当父设备链路失败,源路由失败时,上报2005.
2006 ;//
命令执行失败
3001 ;//
未知错误
]

返回值

Success:
{
"requestStatus":0,
"code":1000
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

6 网关控制命令(COMMAND)

6.1 网关操作

6.1.1 Debug

进入调试模式,网关根据下发命令地址重新完成,服务器连接操作。

接口名称

Debug

请求类型

COMMAND

命令格式

{
"command":"Debug",
"gatewayAccount":"5ec90328005f-10031-44d",
"keyword":"71d732ab-2e9f-4734-b970-37246f16c633",
"mainServerUrl":"123.124.236.149:80",
"commandServerUrl":" 123.124.236.149:8077"
//
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.1.2 InitGateway

保留传感器信息,重新完成网关激活动作。

命令名称

InitFatory

请求类型

COMMAND

命令格式

{
"command":"InitFactory"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.1.3 InitFatory

强制执行出厂配置,清除所有配对信息

命令名称

InitFatory

请求类型

COMMAND

命令格式

{
"command":"InitFactory"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.1.4 FirmwareDownLoad

网关接收命令后需要中下载固件,在下载完成后进行md5与 size 校验,确认正确后,重新启动,并在启动完成后重新激活该版本。在升级过程中出现错误需要要回滚上一版本启动。

接口名称

FirmwareDownload

请求类型

COMMAND

命令格式

{
"commandId":"100015",
"command":"FirmwareDownload",
"value":"http://www.gosmarthome.cn/download/firmware/netvox/z206_uImage_0_0_0_105_2684_cg6.bin",
"md5":"3109af3fda8092c5647fb2380738e1",
"size":"13599683"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.1.5 ChannelNegotiate

按给定参数强制组网

接口名称

ChannelNegotiate

请求类型

COMMAND

命令格式

{
"command":"ChannelNegotiate",
"wifi":{
"ssid":"nevox_0537",
"mode":"11b" ,
"password":"888888",
"status":1 //1:开启0:关闭
},
"wlan":{
"mode":"0",//0动态IP,1:静态,2,PPOE 3,3G
"account":"0",
"password":"1231231231"
}
}

回调函数

执行完成后,回调

6.1.6 ChannelNegotiateReport

上报当前网络状况信息

接口名称

ChannelNegotiate

请求类型

COMMAND

命令格式

{
"command":" ChannelNegotiateReport"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.2 设备管理

6.2.1 AddSensor添加设备

名称、标识符

AddSensor添加设备

功能描述

网关接收到AddSensor命令时应将制定设备的IEEE地址加入到白名单中。

补充说明

1, 如白名单中已经存在该设备则可以忽略。
2, 如网关不支持白名单时应将协调器中缓存的设备信息上报服务端。
3, 如果网关是出于第一次激活且出厂有默认套餐设备时需要一次上报所有设备。
4, 由单独采购设备设备认证信息通常由运营商初始化到云端认证中心。
5, 添加设备,需要手机APP发送命令或用户手工触发网关进入,配对模式,并同时启动传感器进入查找模式。
6, 系统应该支持对已知IEEE物理地址的设备的自动加入功能。
7, 当网关收到新设备的请求网络申请时,会将申请设备信息发送至认证中心。等待认证通过。

命令格式

接口名称

AddSensor

请求类型

COMMAND

命令格式

{
commandId":"1000286",
"command":"AddSensor",
"sensorieees":["00137A0000014D6A01"]
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.2.2 移除设备

需求描述

名称、标识符

RemoveSensor

功能描述

网关接收到AddSensor命令时应将制定设备的IEEE地址从白名单中移除。

补充说明

1, 如白名单中不存在该设备则可以忽略。
2,如当前设备处于在网状态应先执行离网操作,再执行移除白名单操作。
3,如果设备在路由器中存在相关链路的缓存信息应同步移除。
4,如设备在协调器或路由器中存在于其他设备的绑定信息应移除绑定信息列表。

命令格式

接口名称

RemoveSensor

请求类型

COMMAND

命令格式

{
"commandId":"1000285",
"command":"RemoveSensor",
"sensorieees":["00137A0000014D6A01"]
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.2.3 更换设备

名称、标识符

更换设备

功能描述

在当前网络设备如果存在故障设备需要支持更换设备的需求。

补充说明

1, 故障设备为终端设备时可以直接移除并添加新设备。
2, 故障设备为路由器或网关时需要从相邻节点或云端认证中心下载网络信息,完成重新组网。
3, 更换设备时网络能力应满足节点管理需求

命令格式

接口名称

ReplaceSensor

请求类型

COMMAND

命令格式

{
"commandId":"1000289",
"command":"ReplaceSensor",
"newsensor":"00137A0000014D6A01"
"oldersensor":"00137A0000014D6A01"
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.2.4 IdentifyDevice(状态指示)

适用于带电设备,控制其状态指示。

接口名称

IdentifyDevice

请求类型

COMMAND

命令格式

{
"commandId":"100078",
"command":"IdentifyDevice",
"sensorieee":"00137A000000F62E01",
"value": "30"
}

返回类型

6.3 Zigbee组网

6.3.1 ZigbeeScan查找加网

名称、标识符

查找网络

功能描述

网关接收到SCAN命令时应主动开放Zigbee网络,并将发现可加入的传感器报送服务端(报送接口参考FindSensor接口描述)

补充说明

1,网关打开Zigbee网络在白名单内的传感器直接执行加入动作,未在白名单内的传感器则需要向云端报送等待云端指令加入。
2,在发现设备时可以不校验通讯KEY等待云端指令后从后端获取相关认证。

命令格式

接口名称

ZigbeeScan

请求类型

COMMAND

命令格式

{"command":"ZigbeeScan","commandId":"1000259"}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.3.2 强制离网(LevelNetWork)

名称、标识符

移除设备

功能描述

当网关收到,认证中心移除设备的指令后完成指定设备从网络中移除。

补充说明

1, 对于可到达的路由器设备应该及时响应删除链路信息
2, 对于该设备曾经到达过的路由高速缓存应及时删除链路信息
3, 对于该设备既有的绑定信息应从(1),(2)中完成删除操作
4, 当被移除设备处于不可到达状况时(路由器关闭、或自身本身试电池供电的设备时),需要缓冲改命令,当设备再次发起入网时,发出拒绝请求的同时执行(1),(2),(3)操作。

命令格式

接口名称

LevelNetWork

请求类型

COMMAND

命令格式

{
"commandId":"1000984",
"command":"LevelNetWork",
"sensorieees":["00137A0000014D6A01"]
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.3.3 指定节点加网(AddNode2Route)

接口名称

AddNode2Route

请求类型

COMMAND

命令格式

{"command":"AddNode2Route"
,"commandId":"1000250"
,"routeieee":"00137A000001E6AA0"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.3.4 LinkReport链路信息上报

需求描述

名称、标识符

LinkReport

功能描述

网关接收到LinkReport命令时应将zigbee的链路表信息上报服务端。

补充说明

1, 星型组网时直接上报物理状况信息。
2,MESH组网时应首先根据LQI(网络连接质量)初步稳定后再进行上报。
3,接收到该命令是只是上报即时的网络信息,链路发生变化是无需更新。如服务端需要更新时会主动下发。
4,上报链路信息时需要上报链路信息的LQI信息。
5,服务端一般会在网关第一次上电或重新登录后延时发送链路上报命令。

命令格式

接口名称

LinkReport

请求类型

COMMAND

命令格式

{
"commandId":"1000980",
"command":"LinkReport",
"sensorieees":["00137A0000014D6A01"]
//指定节点的所有链路信息为空时上报所有链路信息。
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.3.5 LinkSet设备链路设定

需求描述

名称、标识符

LinkSet

功能描述

网关接收到LinkSet命令时应将zigbeey应根据指定的链路表组建网络。

补充说明

1, 主要用于网关故障的灾难性回复避免用户,再次完成重新加网操作。
2,链路标准中如果设计到路由器设定时应支持路由器高速缓冲表的刷新。
3,当链路表与设备不相符时,则在有差异的节点开始自主网。
4,执行完毕后上报实时的链路列表。

命令格式

接口名称

LinkSet

请求类型

COMMAND

命令格式

{
"commandId":"1000981",
"command":"
LinkSet ",
"linktable":
{
"ieee":"00137A000001E6AA"
"parentNodeieee":"00137A000001E6AA01",
"lqi":85
,//链路质量
"childNode":[
{
"ieee":"00137A000001E6AA"
"parentNodeieee":"00137A000001E6AA01",
"lqi":85,
"childNode":[]
}
]
}
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.4 场景与组操作

6.4.1 CreateGroup创建组

命令格式

接口名称

CreateGroup

请求类型

COMMAND

命令格式

{
"commandId":"100025",
"command":"CreateGroup",
"sensorieees":["00137A000001E6AA01"],
" groupname ":"
light "
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.4.2 RemoveGroup移除组

接口名称

RemoveGroup

请求类型

COMMAND

命令格式

{
"commandId":"100025",
"command":"RemoveGroup",
"sensorieees":["00137A000001E6AA01"],
" groupname ":"
light "
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.4.3 ClearGroup清空组

命令格式

接口名称

CreateScene

请求类型

COMMAND

命令格式

{
"command":"CreateScene",
"sensorieees":["00137A000001E6AA01"]
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.4.4 CreateScene增加场景

命令格式

接口名称

CreateScene

请求类型

COMMAND

命令格式

{
"commandId":"100065",
"command":" CreateScene",
" scenename ":" light ",
"sensorieees":["00137A000001E6AA01"]
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.4.5 RemoveScene移除场景

命令格式

接口名称

ClearScene

请求类型

COMMAND

命令格式

{
"commandId":"100065",
"command":" RemoveScene",
"sensorieees":["00137A000001E6AA01"],
" scenename ":" light ",
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.4.6 ClearScene移除场景

命令格式

接口名称

ClearScene

请求类型

COMMAND

命令格式

{
"commandId":"100065",
"command":" ClearScene",
"sensorieees":["00137A000001E6AA01"]
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.5 设备绑定

6.5.1 GetBindList获取绑定列表

命令格式

接口名称

GetBindList

请求类型

COMMAND

命令格式

{
"commandId":"1000281",
"command":"GeBindList",
"linktable":
{
"ieee":"00137A000001E6AA"
"parentNodeieee":"00137A000001E6AA01",
"lqi":85
,//链路质量
"childNode":[
{
"ieee":"00137A000001E6AA"
"parentNodeieee":"00137A000001E6AA01",
"lqi":85,
"childNode":[]
}
]
}
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.5.2 BindDevice设备绑定

命令格式

接口名称

BindDevice

请求类型

COMMAND

命令格式

{
"commandId":"1000283",
"command":"bindDevice",
"sourcedev":"00137A0000014D6A01",
"clusterid":"on/off",
"destdev":"00137A0000014D6A57"
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.5.3 UnBindDevice解除绑定

命令格式

接口名称

UnbindDevice

请求类型

COMMAND

命令格式

{
"commandId":"100025",
"command":"UnbindDevice",
"sourcedev":"00137A0000014D6A01",
"clusterid":"on/off",
"destdev":"00137A0000014D6A57"
}

返回类型

网关通过长联接通道接收网关命令, 执行成功发送命令反馈报告。(请参考命令报告章节)

6.6 控制命令

6.6.1 CMD控制设备命令

6.6.2 Movetolevel(调级)

适用于智能灯泡的可分级调整的设备

接口名称

Movetolevel

请求类型

COMMAND

命令格式

{
"commandId":"1000284",
"command":"movetolevel", "commandType":"dimmableLightOperation",
"sensorieee":"00137A0000014D6A01",
"value":"50"
}

返回类型

6.6.3 OutLetOperation(开关切换)

适用于电源插座、控制开关等可以进行(开关状态)切换的命令

接口名称

Movetolevel

请求类型

COMMAND

命令格式

{
"commandId":"1000255",
"command":"OutLetOperation",
"sensorieee":"00137A0000014D6A01",
"commandType":"mainsOutLetOperation",
"operation":"on/off"
}

返回类型

6.6.4 ClearData(清空设备数据)

适用于带电设备,清空记录电能等相关信息。

接口名称

IdentifyDevice

请求类型

COMMAND

命令格式

{
"commandId":"100078",
"command":" ClearData",
"sensorieee":"00137A000000F62E01"}

返回类型

6.6.5 HA属性操作(AttributeWrite)

可以完成设备睡眠周期改写、上报周期、设备临界点等设定。

接口名称

AttributeWrite

请求类型

COMMAND

命令格式

{"command":" AttributeWrite",
"commandId":"1000259",
"sensorieee":"00137A000001E6AA01",
Attributes: [
{
"attributename":" ZoneHeartBeatPeriod ",
"value":"90"
},
{
"attributename":" SwitchActions ",
"value":"on"
},
] }

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

回调函数

SensorReport

暂定支持范围

红外属性:
IRDetectionTime 30
IRDisableTime 5
PIRUnoccupiedToOccupiedDELAY 5
门磁
SwitchActions on/off
ZoneHeartBeatPeriod 30-604800

6.6.6 AddPassword(添加密码)

添加密码(适用于密码设备)

接口名称

AddPassword

请求类型

COMMAND

命令格式

{
"startTime":1482681600,
"endTime":1482854400,
"passId":1003,//密码组ID
"sensorieee":"00158d0000ca594d",
"command":"AddPassword",
"passVal1":379573//用户密码
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.7 DelPassword删除密码

接口名称

DelPassword

请求类型

COMMAND

命令格式

{
"passId":1003,
"sensorieee":"00158d0000ca594d",
"command":"DelPassword"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.8 ClearPassword(清空密码)

清空密码

接口名称

ClearPassword

请求类型

COMMAND

命令格式

{
"sensorieee":"00158d0000ca594d",
"command":"ClearPassword"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.9 ClusterCMD节点指令透传

命令格式

接口名称

ClusterCMD

请求类型

COMMAND

命令格式

{"command":" ClusterCMD",
"commandId":"1000279",
"gatewayieee":"00137A000001E6AA",
"sensorieees":["00137A000001E6AA01"]
"cmd": ""//透传命令内容
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.10 IRLearn红外学习

适用于红外指令学习

命令格式

接口名称

IRLearn

请求类型

COMMAND

命令格式

{"command":" IRLearn",
"sensorieee":"00137A000001E6AA01"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.11 G IRControl红外指令发送

适用于红外指令指令发送

命令格式

接口名称

IRControl

请求类型

COMMAND

命令格式

{"command":" IRControl",
"value":"002233222",
"sensorieee":"00137A000001E6AA01"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.12 ClusterCMD节点指令透传

命令格式

接口名称

ClusterCMD

请求类型

COMMAND

命令格式

{"command":" ClusterCMD",
"commandId":"1000279",
"gatewayieee":"00137A000001E6AA",
"sensorieees":["00137A000001E6AA01"]
"cmd":
""//透传命令内容
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.13 GroupClusterCMD节点集群指令透传

命令格式

接口名称

GroupClusterCMD

请求类型

COMMAND

命令格式

{"command":" GroupClusterCMD",
"commandId":"1000289",
"gatewayieee":"00137A000001E6AA",
"groupid":"0x17",
"cmd": ""
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

6.6.14 ReleaseAlarm

当发生误报时可以命令解除报警,关闭蜂鸣器等报警设备

接口名称

ReleaseAlarm

请求类型

COMMAND

命令格式

{
"sensorieees":["00158d0000ca594d"],
"command":"ReleaseAlarm"
}

返回类型

网关通过长联接通道接收网关命令,执行成功发送命令反馈报告。(请参考命令报告章节)

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
打开状态下报送:1

2

温度感应器

Temperature

25

3

漏水感应器

Zone_Status

0/1

正常状态下报送:0
漏水状态下报送:1

4

红外移动感应器

Zone_Status

0/1

正常状态下报送:0
异常状态下报送:1

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位以上硬加密模式。
认证证书由运营商统一完成下发发放。

补充说明

安全功能将做如下处理:
网关在收到组网需求后需要在认证中心下载制定的用户证书完成组网安全认证。
由网关来创建信托中心,并从云端认证中心下载指定用户的Master Key,然后调用ZDO发出APSME原语来执行。
信托中心功能实现应该满足如下需求:
允许信托中心转换active的网络钥匙;
允许信托中心从网络中移动设备;
允许ZigBee路由器通知任何一个设备的信托中心连接网络,更新现有网络。

8.2 认证流程

8.2.1 网关注册

名称、标识符

网关注册

功能描述

网关在首次家电入网时会登陆认证中心完成设备注册。并下发相关的认证信息

补充说明

认证信息包括:
1, 网关安全证书
2, 运营商信息
3, 固件基本信息
4, 参见认证流程

8.2.2 网关激活

名称、标识符

网关激活

功能描述

实现绑定网关与用户APP的绑定关系,并将用户信息下发到网关设备。

补充说明

8.2.3 申请证书

名称、标识符

申请证书

功能描述

网关可以单独发起申请证书操作。

补充说明

8.2.4 更换证书

名称、标识符

更换证书

功能描述

当网关完成激活时会发起证书申请,请求云端认证中心下发认证证书。

补充说明

8.2.5 添加设备

名称、标识符

添加设备

功能描述

当网关收到新设备的请求网络申请时,会将申请设备信息发送至认证中心。等待认证通过。

补充说明

云端根据具体运营商的需求会完成:
1, 是否支持该类型设备,
2, 是否已操作最大加入数量。

8.2.6 移除设备

名称、标识符

移除设备

功能描述

当网关收到,认证中心移除设备的指令后完成指定设备从网络中移除。

补充说明

8.2.7 固件下载

名称、标识符

固件下载

功能描述

当有新固件需要更新时提供固件的更新操作。

补充说明

云端应提供断点续传的支持

8.2.8 版本恢复

名称、标识符

版本恢复

功能描述

网关在固件出现问题时可以下载指定版本进行恢复。

补充说明

8.3 接口设计

8.3.1 CheckUpgrade检查更新

接口名称

CheckUpgrade

请求类型 request type

POST

必填字段 mandatory text

currVerson:当前版本号
serialNumber:设备号
type:设备类型
deviceId:设备Id

返回类型 return type

JSON JSONObject

URL

CheckUpgrade
http://host:port/firmware/CheckUpgrade

input

{
"serialNumber":"00137A000001E6AA01",
"deviceId":"00137A000001E6AA01",
"type":"1",
"currVersion":"1.5"//软件版本
}

返回值
returned value

Success:
{
"requestStatus":0
"data":{
"lastVerson":2.0
}
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

8.3.2 ApplyKey证书申请

接口名称
name of interface

ApplyKey

请求类型 request type

POST

必填字段mandatory text

返回类型 return type

JSON JSONObject

URL

ApplyKey
http://host:port/firmware/ApplyKey

input

{
"serialno":"00137A000001E6AA01",
"currVersion":"1.5"//软件版本
}

返回值
returned value

Success:
Return :InputStrame

8.3.3 RepaceKey证书更新

接口名称
name of interface

KeyDownload

请求类型 request type

POST

必填字段 mandatory text

返回类型 return type

JSON JSONObject

URL

http://host:port/firmware/KeyDownload

input

{
"serialno":"00137A000001E6AA01",
"currVersion":"1.5"//软件版本
}

返回值
returned value

Success:
Return :InputStrame

8.4 网关固件升级流程

8.5 网关错误报告

接口名称
name of interface

GatewayErrorReport

请求类型 request type

POST

返回类型 return type

JSON JSONObject

URL

http://host:port/Gateway/api/GatewayErrorReport

input

{
"deviceId":"5ec90328005f-10031-44d",
"gatewayAccount":"5ec90328005f-10031-44d",
//非必填
"keyword":"71d732ab-2e9f-4734-b970",//非必填
"mainServerUrl":"123.124.236.149:80",
"commandServerUrl":"
123.124.236.149:8077" ,
"currVersion":"1.5",//当前网关版本
"sessionId":"5deb046d-97c0-43bf-b304",//非必填
"systemCode":"gw2",//非必填
"errorCode":1001 //错误代码
}
Errcode List:
[
1001:Login error (登录不成功)
1002:CommandUrl timeout (长链接超时)
1003:CommandUrl fail (长链接失败)
1004:Activite fail (固件激活失败)
1005:Update fail(固件升级失败)
2001:Other Error (其他错误)
]

返回值
returned value

Success:
{
"requestStatus":0,
"data":{
"commandList"[ //网关执行命令
{"commandId":"1000210",
"command":"InitGateway"
}
]
}
}
Fail:
{
"requestStatus":-1,
"errcode":3001,
"errdes":
}
Errcode List:
[
3001:other error (其他错误)
]

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 (其他错误)

后台-插件-广告管理-内容页尾部广告(手机)
标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。