前端开发说明¶
前台终端包括PC桌面端、安卓/IOS的APP、大屏等,支持各种语言及开发工具,前端与后端通讯主要包括两种方式,一种为直接访问实时数据:通过MQTT协议,可以通过Web Socket技术直接获取某个设备类型(频道) 的设备实时数据并进行实时控制,另一种是经过后台业务逻辑模块处理的业务数据:通过HTTPS协议,RESTful API的方式提供访问,数据格式采用JSON。本文档包含了所有数据的频道名、数据格式等,具体API参数、调用样例等说明请查阅 API 文档。
连接地址与端口¶
版本环境 |
地址 |
端口 |
|---|---|---|
生产版 |
dev.iotqsgf.com |
https(8443) |
测试版 |
||
开发版 |
版本与发布机制¶
系统开发与发布采用3个版本迭代开发的方式,同时存在三个版本:生产版、测试版、开发版。 举例说明:系统在第一次迭代的过程如下:首先产生开发版–1.0.0,开发版随时可能重启,因为程序是以最激进的方式在变化,当开发版做出一定功能时,将迭代到测试版上线:1.0.0,此时开发版为:1.0.0。测试版用于测试,代码稳定不更新,待通过一定测试后,将迭代到生产环境上线:1.0.0,此时测试版为:1.0.0,开发版为:1.0.2。后续以此类推。 前端开发过程中可以根据需要连接目标环境。
注:系统尚未上线,开发测试均使用生产版环境
实时通讯¶
实时数据访问端口:
11885(Socket,未加密,稍后将关闭) 118886(Socket,加密访问) wss://tbh.iotqsgf.com/wss:443 (Web Socket,加密访问)
实时通讯即通过云平台的代理服务,直接获取某个站和设备的实时数据,也可以下达实时命令,为保证通讯时效性,该数据未经云平台端处理,直接与在地端设备进行点对点实时通讯。
实时通讯采用可能成为物联网标准协议的MQTT协议。MQTT协议是一个面向物联网应用的即时通信协议,使用TCP/IP提供网络连接,能够对负载内容实现消息屏蔽传输,开销小,可以有效降低网络流量。
实时通讯基于Topic的订阅、发布以及消息推送,可以实现设备间的消息单播以及组播。
主题(Topic)格式定义¶
字段 |
说明 |
举例 |
|---|---|---|
tdqs |
Topic (主题 ) |
tdqs |
能源站ID |
五位字符串 |
00001 |
版本 |
点分十进制(3段) |
1.0.0 |
频道类型 |
|
rd |
设备类型 |
设备类型ID |
1 |
格式例子:
tdqs/00001/1.0.0/rd/1
表示:订阅或发布 站ID=00001 (能源站即智能网关)的电表(类型ID为1)的实时数据
具体数据在消息字段内容中(JSON)
tdqs/00001/1.0.0/cmd/1
表示:订阅或发布 站ID=00001 的电表的实时命令
具体数据在消息字段内容中 (JSON)
实时数据消息内容(JSON)格式定义¶
格式:
{
"time":"时标","data":[
{
"设备ID" : 设备1的ID值,
"数据信息码1" : 数据值,
"数据信息码2" : 数据值,
"数据信息码n" : 数据值
},
{
"设备ID" : 设备2的ID值,
"数据信息码1" : 数据值,
"数据信息码2" : 数据值,
"数据信息码n" : 数据值
},
{
"设备ID" : 设备n的ID值,
"数据信息码1" : 数据值,
"数据信息码2" : 数据值,
"数据信息码n" : 数据值
}
]
}
例子:
{
"time":"2017-12-22 8:30:00","data": [
{
"ID" : 1,
"1001" : 10.3,
"1006" : 12.1,
"1007" : 16.2
},
{
"ID" : 2,
"1001" : 11.1,
"1006" : 14.2,
"1007" : 19.2
},
{
"ID" : 3,
"1001" : 19.2,
"1006" : 12.3,
"1007" : 16.1
}
]
}
本例子表示发布或订阅到设备ID=1,2,3三个电表设备的有功电能值、有功功率、无功功率三个值。
说明:
字段 |
说明 |
举例 |
|---|---|---|
时标 |
YYYY-MM-DD HH:MM:SS |
2017-12-22 8:30:00 |
设备ID |
数值类型为整数 |
“ID” : 1 |
数据信息码 |
数值类型为浮点数 |
“1001” : 19.2 |
命令类型通讯格式定义(JSON)¶
格式:
{
"time" : "时标",
"userid" : "用户ID ",
"data" : [
{
"设备ID" : 设备1的ID值,
"数据信息码1" : 数据值,
"数据信息码2" : 数据值,
"数据信息码n" : 数据值
},
{
"设备ID" : 设备2的ID值,
"数据信息码1" : 数据值,
"数据信息码2" : 数据值,
"数据信息码n" : 数据值
},
{
"设备ID" : 设备n的ID值,
"数据信息码1" : 数据值,
"数据信息码2" : 数据值,
"数据信息码n" : 数据值
}
]
}
API格式与样例¶
API是经过能源平台后台服务模块采集数据后,通过各种算法模块进行大数据逻辑分析以后提供的服务功能函数,采用RESTful API方式提供服务。
为保证安全性,任何一次服务功能的调用必须提供安全认证Token,该Token是一个采用随机加密算法处理的字符串,用户在通过身份认证后会获得该Token,以后每次功能调用必须提供,用户注销或重新登陆该Token失效,验证算法保存在服务器端,可以保证安全性。
基本格式:
地址/版本号/API函数名
例子:
https://www.iotqsgf.com/1.0.0/confirmcode
GET方式例子:
curl -X GET
-H "Session-Token: XXXXXXX"
-H "Project-ID: XXXXX"
https://www.iotqsgf.com/1.0.0/queryapi\?tablename\=ts_user
POST方式例子:
curl -X POST
-H "Session-Token: XXXXXXX"
-H "Project-ID: XXXXX"
-d '{"userid":"xxxxx","data":{"f1":"xx","f2":"xx"}}'
https://www.ioqsgf.com/1.0.0/update_user_info