设备厂商可通过物联网平台完成账号注册,用户注册时需填写联系方式、企业名称、企业代码等信息,用户注册成功后可通过平台界面或调用平台提供的设备注册接口来完成设备新增,设备新增成功后用户可查看该设备由平台生成的设备ID、apikey鉴权组合及设备二维码,通过设备ID、apikey可连接平台提供的设备接入服务,同时根据生成的设备二维码可制作相应标志牌,便于现场扫码查看设备。
监测类型 | 编码 | 监测方法 | 编码 | 数据字段 | 单位 | 备注 |
---|---|---|---|---|---|---|
变形监测 | L1 | 裂缝 | LF | value | mm(毫米) | 裂缝张开度,表明位移随时间的累计变化量值 |
地表位移 | GP | gpsInitial | - | GNSS原始数据(RTCM3.X格式原始观测数据与星历数据) | ||
gpsTotalX | mm(毫米) | 与GNSS监测点初始位置差值,X、Y、Z向位移,需要通过公式计算获取,表示该监测点随时间变化的累计变形量 | ||||
gpsTotalY | ||||||
gpsTotalZ | ||||||
深部位移 | SW | dispsX | mm(毫米) | 顺滑动、垂直坡面方向随时间的累计变形量,需要通过公式计算获取 | ||
dispsY | ||||||
加速度 | JS | gX | mg(加速度) | 一个采样周期内X、Y、Z轴方向加速度的最大变化量 | ||
gY | ||||||
gZ | ||||||
倾角 | QJ | X | °(度) | X、Y、Z轴分别与水平面的夹角,上传绝对角度值。范围为-90°~90° | ||
Y | ||||||
Z | ||||||
angle | XY轴所形成的平面与水平面的夹角。范围为-90°~90° | |||||
AZI | 方位角:X轴在水平面的投影与磁北的夹角。范围为0°~360° | |||||
振动 | ZD | PLX | Hz(赫兹) | 传感器X、Y、Y轴振动频率 | ||
PLY | ||||||
PLZ | ||||||
value | mm(振幅) | 振动幅度 | ||||
SJX | mm(瞬间位移) | 传感器初始位置为原点,X、Y、Z轴瞬间位移 | ||||
SJY | ||||||
SJZ | ||||||
SJValue | 传感器初始位置为原点,合方向上瞬间位移 | |||||
物理场监测 | L2 | 应力 | YL | value | kN(千牛) | 通过在地质灾害体中埋设土压力盒或应力传感器等设备,量测得到的岩土体内部或岩土体与防治工程之间的作用力 |
土压力 | TY | value | kPa(千帕) | 土体作用在建筑物或构筑物上的力 | ||
次声 | CS | OSP | Pa(帕) | 主要指由泥石流运动产生且在空气中传播的频率在20Hz以下的次声原始声压 | ||
VSP | 有效声压 | |||||
freq | Hz(赫兹) | 频率 | ||||
地声 | DS | OSP | Pa(帕) | 主要指崩塌、滑坡、泥石流等地质灾害发生时,近地表岩土体在其变形、运动过程中, 因内部破裂或与其背景岩土体、空气等发生接触和相对运动而产生的弹性波传播过程所形成的原始声压 | ||
VSP | 有效声压 | |||||
freq | Hz(赫兹) | 频率 | ||||
影响因素监测 | L3 | 雨量 | YL | value | mm(毫米) | 表示一次数据上报间隔内的降雨量 |
totalValue | mm(毫米) | 当日雨量累积值 | ||||
气温 | QW | value | ℃(摄氏度) | 在野外空气流通、不受太阳直射下的空气温度 | ||
土壤温度 | TW | value | ℃(摄氏度) | 地面以下所监测层位土壤中的温度 | ||
土壤含水率 | HS | value | %(百分比) | 土壤中水分占有的体积和土壤总体积的比值 | ||
地表水 | DB | temp | ℃(摄氏度) | 陆地表面上的水的温度 | ||
value | m(米) | 陆地表面上的水面相对于基准面的高程 | ||||
地下水 | DX | temp | ℃(摄氏度) | 所监测层位的地下水的温度 | ||
value | m(米) | 所监测层位的稳定地下水面相对于基准面的高程 | ||||
孔隙水压力 | SY | temp | ℃(摄氏度) | 斜坡岩土体中地下水的温度 | ||
value | kPa(千帕) | 斜坡岩土体中地下水的压力 | ||||
渗透压力 | ST | value | kPa(千帕) | 渗流方向上水对单位体积土的压力 | ||
流速 | LS | value | m/s(米/秒) | 河道的水流速度 | ||
沉降 | CJ | value | mm(毫米) | 监测点的沉降量的测量值,实际变化量由平台获取 | ||
气压 | QY | value | Kpa(千帕) | 监测点的气压测量值 | ||
宏观现象监测 | L4 | 视频 | SP | - | - | 参考地质灾害监测通讯技术要求第9.2章节 |
泥(水)位 | NW | value | m(米) | 泥石流发生时沟道内泥水面相对于基准面的高程 | ||
雷达 | LD | X | m(米) | 以雷达为原点,监测物体在X、Y、Z轴方向坐标 | ||
Y | ||||||
Z | ||||||
speed | m/s(米/秒) | 监测物体移动速度 | ||||
预警喇叭 | LB | - | - | - |
监测类型 | 编码 | 监测方法 | 编码 | 数据字段 | 单位 | 备注 |
---|---|---|---|---|---|---|
设备状态 | S1 | 设备状态 | ZT | ext_power_volt | v(伏特) | 供电电压 |
solar_volt | v(伏特) | 太阳能板电压 | ||||
battery_dump_energy | %(百分比) | 电池剩量百分比 | ||||
temp | °(摄氏度) | 环境温度 | ||||
humidity | %(百分比) | 环境湿度 | ||||
lon | - | 设备位置-经度 | ||||
lat | - | 设备位置-纬度 | ||||
on_4g | - | 是否是4G网络 | ||||
signal_4g | rssi | 4g信号强度 | ||||
signal_NB | dB | 窄带信号强度 | ||||
signal_bd | dBm | 北斗信号强度 | ||||
sw_version | - | 固件版本号 | ||||
sensor_state | - | 传感器状态码,如: {"sensor1":0,"sensor2":0,"sensor3":0, "sensor4":-1} | ||||
pa_state | - | 功放状态(注: 预警喇叭才有此字段) |
错误码 | value | 说明 |
---|---|---|
CHANNEL_ERROR_START | 0 | 无错误 |
CHANNEL_POWER_ERR | -1 | 供电异常 |
CHANNEL_DATA_ERR | -2 | 传感器数据异常 |
CHANNEL_NO_DATA | -3 | 采样间隔内没有采集到数据 |
错误码 | value | 说明 |
---|---|---|
SOUND_STATE_NO | 0 | 无 |
SOUND_STATE_LOW | 1 | 低 |
SOUND_STATE_MID | 2 | 中 |
SOUND_STATE_HIGH | 3 | 高 |
指令格式如下:
$cmd=xxx(指令类型)¶mA(参数)=xxx¶mB(参数)=xxx&apikey=xxx&msgid=xxx
指令格式:
$cmd=reqtime
指令返回结果格式:
$cmd=reqtime&time=YYYY-MM-DD hh:mm:ss
如: $cmd=reqtime&time=2018-05-01 12:00:00
设备端接收到时间校正指令后需完成一次自动校时操作
指令格式:
$cmd=settime&server=ntpserver
如:$cmd=settime&server=ntp.ntsc.ac.cn
指令返回结果格式:
设置终端时间成功:$cmd=settime&result=succ
设置终端时间失败:$cmd=settime&result=fail
用于下发查询命令给设备,设备主动返回当前设备状态,状态信息应包含供电电压、设备故障报告,并根据设备类型,宜包含温度、湿度、标准无线蜂窝网络信号或北斗信号等
指令格式:
$cmd=getstatus
指令响应格式:
$cmd=getstatus&status={"ext_power_volt":24.04,"temp":42.00,"4g_signal_4g":27.0,"sw_version":"1.0.1",....}
平台可以远程重启终端。
指令格式:
$cmd=reboot
指令返回结果格式:
重启成功:$cmd=reboot&result=succ
重启失败:$cmd=reboot&result=fail
获取接入传感器类型,返回所有安装的传感器类型 id 加序号(比如:L1_YL_1)。
指令格式:
$cmd=getsensorID
指令响应格式:
$cmd=getsensorID&sensor_id=value
传感器实时数据采集,适用于平台对传感器数据实时采集的应用场景,返回监测类型编码、传感器序号、实时数据。
指令格式:
$cmd=sample
指令响应格式:采用数据格式类型三上传,若接入多个传感器,返回多条数据流,比如指令响应:
单条: $cmd=sample&datastreams={"L1_LF_1":"67.45"}
多条: $cmd=sample&datastreams={"L1_LF_1":"34.56","L1_LF_2":"67.45","L1_LF_3":"12.2"}
设置传感器采集间隔、上传间隔、加报间隔三个参数时需要指定监测类型编码及传感器ID序号(比如:L1_LF_1),传感器ID具体说明见2.监测设备类型定义。
指令格式:
$cmd=setsensortime&sensor_id=value&sample_intv=value&upload_intv=value&plus_intv=value
指令响应格式:
设置成功: $cmd=setsensortime&result=succ
设置失败: $cmd=setsensortime&result=fail
获取传感器采集间隔、上传间隔、加报间隔三个参数时需要指定监测类型编码及传感器ID序号(比如:L1_LF_1),传感器ID具体说明如2.监测设备类型定义。
指令格式:
$cmd=reqsensortime&sensor_id=value
指令响应格式:
$cmd=reqsensortime&sensor_id=value&sample_intv=value&upload_intv=value&plus_intv=value
设置传感器阈值、上限值、下限值三个参数时需要指定传感器ID加序号(比如:L1_LF_1),传感器ID具体说明见附录B。其中上下限值是指正常的数据范围,属性值可以为数字类型或字符串类型,数字类型表示单值类型传感器,字符串类型用来处理多值,每个值用逗号隔开,比如GNSS结果数据的阈值:”1,2,3”, X 轴阈值是 1, Y 轴阈值 2, Z 轴是3,传感器ID具体说明见2.监测设备类型定义(上下限值指的是正常的数据范围)
指令格式:
$cmd=setsensorattr&sensor_id=value&threshold=value&upper_limit=value&lower_limit=value
指令响应格式:
设置成功:$cmd=setsensorattr&result=succ
设置失败:$cmd=setsensorattr&result=fail
获取传感器阈值、上限值、下限值三个参数时需要指定传感器ID加序号(比如:L1_LF_1),具体说明见2.监测设备类型定义(上下限值指的是正常的数据范围)
指令格式:
$cmd=getsensorattr&sensor_id=value
指令响应格式:
$cmd=getsensorattr&sensor_id=value&threshold=value&upper_limit=value&lower_limit=value
指令格式:
$cmd=setworkmode&mode=value
工作模式取值:
指令响应格式:
设置成功:$cmd=setworkmode&result=succ
设置失败:$cmd=setworkmode&result=fail
指令格式:
$cmd=getworkmode
工作模式取值,0:正常模式,1:节能模式,2:应急模式
指令响应格式:
$cmd=getworkmode&mode=value
根据数据采集设备所安装的地理位置信息,平台每日定时主动下发一条该位置对应的区域未来一定时长内(默认 24 小时)的地质灾害气象预警预报数据指令,指令内容主要包括气象预警的红、橙、黄等级、预警有效时长以及该区域经纬度范围,其中最大和最小的经纬度值之间用“,”隔开。数据采集设备接收到指令后可通过自身定位获取的经纬度与指令内容中经纬度范围进行核对,若在该区域中,则需根据气象预警等级及设备自身情况进行采样与上传频率等运行参数调整并回复响应成功,若不在该区域中需回复响应失败。
指令格式:
$cmd=meteorologicalearlywarning&level=value&effective_time=value&lon_range=value&lat_range=value
如:$cmd=meteorologicalearlywarninglevel&level=2&lon_range =114.40,114.5&lat_range=30.48,30.50&effective_time=24
level取值,0:红色预警,1:橙色预警,2:黄色预警
effective_time 单位为小时(h)
指令响应格式:
响应成功:$cmd=meteorologicalearlywarning&result=succ
响应失败:$cmd=meteorologicalearlywarning&result=fail
平台下发指令告知设备,设备根据获取的固件信息根据平台提供的固件获取方式采取响应的操作。下发的信息中包括固件的MD5值和固件大小(单位:字节),固件获取完成之后,设备可根据提供的固件Md5值和文件大小信息检验文件的有效性,若无效设备需主动放弃此次固件升级。
指令格式:
$cmd=upgrade&md5=value&size=value
指令响应格式:
升级成功:$cmd=upgrade&result=succ
升级失败:$cmd=upgrade&result=fail
MQTT协议和coAP协议升级步骤说明见章节4.2.4和4.3.4
设备在接收到升级指令后,主动响应所支持的传输数据包大小范围(单位:字节,最大值和最小值中间用“,”分隔)。
指令响应格式:
$cmd=supportsize&range=value
如:$cmd=supportsize&range=20,100
预警喇叭具备平台远程下发文字转语音播报功能,包括播报遍数及内容,其中内容为GB2312码。
指令格式:
$cmd=broadcast&b_num=value&b_size=value&b_content=value
指令响应格式:
响应成功:$cmd=broadcast&result=succ
响应失败:$cmd=broadcast&result=fail
获取设备当前支持的指令集版本。
指令格式:
$cmd=getcmdversion
指令响应格式:
$cmd=getcmdversion&version=value
如: $cmd=getcmdversion&version=1.1.0
用户可将设备不同版本的固件上传至固件库来进行管理,同时可通过设备管理模块中提供的固件升级功能实现设备的在线升级。
设备管理主要包含设备新增、设备信息管理、数据曲线查看、通信记录查看以及指令下发和固件升级功能。
①设备新增
设备新增时需填写设备SN、设备型号、通讯方式、接入协议等基本信息,以及选择对应的设备类型,设备类型主要分为单参数、多参数、本地组网三大类,如下说明:
单参数 指数据采集设备接入一种监测类型的传感模块。
多参数 指数据采集设备接入一种监测类型的传感模块。
本地组网 指数据采集设备通过近地组网方式实现与节点设备间的无线通信,组网方式主要有Lora、WIFI等,本地组网的数据采集设备也可通过RS485总线连接方式接入多种监测类型的传感模块。
监测序号 为传感器的序号,比如多参数设备添加1个雨量计,2个裂缝计,其中雨量计监测序号为1,裂缝计分别为1、2。
②设备信息管理
用户可查看或修改已新增/注册设备的基础信息,以及设备二维码的下载。
③数据曲线查看
用户可在设备详情-查看数据页面查看设备实时数据的变化曲线图。
④通信记录查看
用户可在设备详情的下发历史和通信记录页面查看设备与平台的通信记录及指令下发历史的详细情况。
⑤指令下发
根据指令定义模块中定义的具体指令及响应内容,通过指令下发可实现平台与设备间的交互功能。
⑥固件升级
在固件库中选择对应版本固件对目标设备下发固件升级指令,设备接收到指令后按照约定的固件升级流程即可实现设备的在线升级。
设备调用注册接口时需携带设备注册码,用户可在个人中心查看设备注册码,设备注册接口调用示例如下。
ip(域名):ghiot.cigem.cn port:8080 (以各项目提供设备接入地址及端口为准,详细可与对应技术支持联系)
单参数示例:
URL:http://ip(域名):port/api/devices/register?registerCode=xxxxxx(以各项目提供的地址及端口为准)
Method:post
Headers: {
Content-Type: application/json
}
Body: {
"sn":"388040221",
"deviceName": "h920",
"deviceType": "0", // 0: 单参数 1: 多参数 2: 本地组网
"network": "0", // 0: GPRS/3G/4G 1: NB-Iot
"protocol": "0", // 0: MQTT 1: HTTP 2: COAP
"monitorTypes": [
{
"type": "L1_LF",
"sid": "1"
}
]
}
多参数示例:
URL:http://ip(域名):port/api/devices/register?registerCode=xxxxxx
Method:post
Headers: {
Content-Type: application/json
}
Body: {
"sn":"388040221",
"deviceName": "h920",
"deviceType": "1", // 0: 单参数 1: 多参数 2: 本地组网
"network": "0", // 0: GPRS/3G/4G 1: NB-Iot
"protocol": "0", // 0: MQTT 1: HTTP 2: COAP
"monitorTypes": [
{
"type": "L1_LF",
"sid": "1"
},
{
"type": "L1_QJ",
"sid": "1"
}
]
}
本地组网示例:
URL:http://ip(域名):port/api/devices/register?registerCode=xxxxxx
Method:post
Headers: { Content-Type: application/json }
Body: {
"sn":"388040221",
"deviceName": "h920",
"deviceType": "1", // 0: 单参数 1: 多参数 2: 本地组网
"network": "0", // 0: GPRS/3G/4G 1: NB-Iot
"protocol": "0", // 0: MQTT 1: HTTP 2: COAP
"monitorTypes": [
{
"type": "L1_LF",
"sid": "1"
}
],
"childDevices": [
{
"sn":"123",
"deviceName": "node1",
"monitorTypes": [
{
"type": "L1_LF",
"sid": "1"
}
]
}
]
}
上传至物联网平台的数据应采用UTF-8编码格式的字符串型json格式数据,采用key:value键值对表示,key:value键值对可以灵活扩展。
监测设备上报的json字符串数据中应包含设备编号、监测类型编码、监测指标编码,请参考第2节:监测类型定义
适用于单个或多个监测类型的监测数据实时上传
起始位置 | 数据块格式 | 数据块说明 | |
---|---|---|---|
Byte 1 | binary | 数据格式类型:1 | |
Byte 2 | binary | 后面json字符串数据包大小 | 高位字节 |
Byte 3 | 低位字节 | ||
Byte 4 | string |
多类型:{"484021": {"L1_LF_1": 37.5, "L2_YL_1": 0}} 单类型:{"484021": {"L1_LF_1": 18.2}} |
|
Byte ... | |||
Byte n |
适用于单个或多个监测类型的历史数据上传
起始位置 | 数据块格式 | 数据块说明 | |
---|---|---|---|
Byte 1 | binary | 数据格式类型:2 | |
Byte 2 | binary | 后面json字符串数据包大小 | 高位字节 |
Byte 3 | 低位字节 | ||
Byte 4 | string |
{ "484021": { "L1_LF_1": { "2018-08-02T08:52:32.449Z或1533199952449": 11.2, "2018-08-02T09:52:32.449Z或1533203552449": 11.2, "2018-08-02T10:52:32.449Z或1533207152449": 10.9, }, "L1_LF_2": { "2018-08-02T09:02:32.449Z":36.5, } } } |
|
Byte 5 | |||
Byte ... | |||
Byte ... | |||
Byte n |
适用于文件类型的数据上传
起始位置 | 数据块格式 | 数据块说明 | |
---|---|---|---|
Byte 1 | binary | 数据格式类型:3 | |
Byte 2 | binary | 后面json字符串数据包大小 | 高位字节 |
Byte 3 | 低位字节 | ||
Byte 4 | string |
{ "did":"484021", "ds_id":"文件数据类型编码", (必填, 参考章节2中文件类型数据) "at":"2018-08-02T10:52:32.449Z或1533207152449", //时间 "desc": "xxxxx" //该数据段的描述信息 } |
|
Byte 5 | |||
Byte ... | |||
Byte ... | |||
Byte ... | |||
Byte n | |||
Byte n+1 | binary | 文件数据流的大小 | 高位字节 |
Byte n+2 | 低位字节 | ||
Byte n+3 | binary | 文件数据流 | |
Byte n+4 | |||
Byte n+... |
ip(域名):ghiot.cigem.cn port:8080 (以各项目提供设备接入地址及端口为准,详细可与对应技术支持联系)
URL:http://ip(域名):port/api/devices/datapoints?type=(1~2数据格式类型)
Method:post
Headers: {
"Content-Type": "application/json",
}
Body: {
"deviceId": (设备id), // 鉴权信息
"apikey": (设备key), // 鉴权信息
"data": payload
}
注:payload = 数据格式类型1~2中byte4 ~ byte n,JSON格式
适用于GNSS原始数据、文件以及图像等数据的上传
URL:http://ip:port/api/devices/datapoints?type=3&deviceId=(设备id)
Method:post
Headers: {
Content-Type: application/octet-stream
apikey: (设备key),
}
Body: 字节流数据
注:字节流 = 数据格式类型3中byte2 ~ 最后1字节,Byte格式
ip(域名): ghiot.cigem.cn port:1885 (以各项目提供设备接入地址及端口为准,详细可与对应技术支持联系)
平台所提供的MQTT协议通讯方式严格遵守MQTT v3.1.1标准协议,详情可参考
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf
设备连接成功后需要订阅主题, topic=“$creq/(deviceId)/+”, 订阅参数qos=1(用于确认和接收离线消息), 其中’+’: 表示通配一个层级,例如a/+,匹配a/x, a/y,设备能接收到三种主题消息,如下
设备使用publish类型报文进行数据上传或指令响应,其中固定头中qos类型当前平台只支持0或1,当Qos=0时,平台收到设备发送的数据会对其进行保存,当qos=1时,平台收到设备发送的数据后会进行保存并响应PubAck报文。
数据点上传报文格式如下:
VariableHeader:
参数名称 Field名称 说明 格式 Field1 Topic Name=”$dp” $dp为系统上传数据topic 5字节 Field2 Packet Identifier 2字节
Payload:payload数据块内容见章节4.3数据格式类型
设备使用publish报文来回复平台下发的指令,报文格式如下:
VariableHeader:
参数名称 Field名称 说明 格式 Field1 Topic Name=”$dr” $dr为设备回复平台下发topic 5字节 Field2 Packet Identifier 2字节
Payload:payload数据块内容见章节2.3指令定义中指令响应部分的内容
当前平台发布的消息主要是指令消息,其中publish报文中qos为1,若客户端订阅topic的报文中qos为1且connect报文中cleansession为false,设备则可以接收到平台的离线消息
平台与设备固件升级通信流程图如下:
物联网平台通过下发$creq/(deviceId)/cmd的主题消息到数据采集设备,告知设备需要接收固件数据包对数据采集设备进行升级,数据采集设备接收到消息后需响应puback并推送$creq/(deviceId)/supportsize主题消息告知地质灾害监测物联网平台支持传输的数据包大小范围(平台取设备返回固件包的最大值和最小值的平均值作为固件包大小进行下发且最大不超过65535字节,超过平台默认为65535字节),平台收到消息后,自定义一个固定数据包大小的值并通过$creq/(deviceId)/firmware主题消息来传输固件包(最后一个数据包可能小于或等于固定传输的数据包大小),数据采集设备每接收到一个数据包需响应puback消息以便开始接收下一个数据包,升级完成后需回复固件升级指令的升级结果,格式见2.3.14. 数据包格式如下:
起始位置 | 数据块格式 | 数据块说明 | |
---|---|---|---|
Byte 1 | binary | 当前数据包索引(从0开始) | 高位字节 |
Byte 2 | 低位字节 | ||
Byte 3 | binary | 当前数据包大小(最大为65535字节) | 高位字节 |
Byte 4 | 低位字节 | ||
Byte 5 | binary | 数据包总个数 | 高位字节 |
Byte 6 | 低位字节 | ||
Byte 7 | binary | 二进制和数据流 | |
Byte ... | |||
Byte n | |||
Byte n+1 | binary | MD5 值的长度, 最后一个数据包才有此数据 | |
Byte n+2 | binary | 固件MD5值, 最后一个数据包才有此数据 | |
Byte ... | |||
Byte n+... |
ip(域名): ghiot.cigem.cn port:5683 (以各项目提供设备接入地址及端口为准,详细可与对应技术支持联系)
平台支持数据的分块出传输,若设备需进行分块传输,对于上传数据需设置请求中Block1参数,获取平台数据需设置请求中Block2参数,且Block1和Block2参数中的num值必须从0开始,有关Block参数的详细说明请参考https://tools.ietf.org/html/draft-ietf-core-block-21。
下文主要介绍报文中的选项(Options)和负载(Payload)两部分.
设备在发送数据前,需发起认证请求,获取设备的token,每次上报数据时,都需要携带token信息,存放在报文头部的token字段中。如果token失效,则需要重新发起认证请求来获取token,设备可以将token缓存在本地,有效期48小时.
设备认证接口如下表:
属性名称 属性值 说明 Method post 请求方法类型 Url /device/auth 请求方法地址 Accept application/json 接收的数据编码方式 Content-Format application/json 上行数据的编码格式 Payload {“deviceId”:xxx,”apikey”:xxx} 消息体
设备发起连接鉴权请求后,平台会响应设备,响应码说明如下:
Code 描述 Payload 说明 2.05 Content 认证通过:Token对象 正确请求 4.01 Unauthorized 认证失败 授权失败 4.04 Not Found 未找到请求的资源 不存在此接口 5.00 Internal Server Error 返回错误信息 服务错误或异常超时
设备数据点上传接口如下:
属性名称 属性值 说明 Method post 请求方法类型 Url /device/datapoints 请求方法地址 Accept application/octet-stream 接收的数据编码方式 Content-Format application/octet-stream 上行数据的编码格式 Payload 数据内容,格式见3.3数据点格式类型 消息体
设备发起连接鉴权请求后,平台会响应设备,响应码说明如下:
Code 描述 Payload 说明 2.05 Content 认证通过:Token对象 正确请求 4.01 Unauthorized 认证失败 token过期或非法 4.04 Not Found 未找到请求的资源 不存在此接口 5.00 Internal Server Error 返回错误信息 服务错误或异常超时
用于接收平台对设备发送的下行指令,设备需以观察者的身份发起订阅请求,即指定 Observer(观察者)属性,值等于 0,请求成功后平台会保存设备订阅的情况,用户下发指令后平台会根据设备订阅记录将指令内容推送给设备。设备取消订阅(断开通信即将离线),需要发送请求告知平台,Observe 属性值等于 1。
订阅的接口如下:
属性名称 属性值 说明 Method get 请求方法类型 Url /device/directive 请求方法地址 Accept application/octet-stream 接收的数据编码方式 Content-Format application/octet-stream 上行数据的编码格式
设备发起连接鉴权请求后,平台会响应设备,响应码说明如下:
Code 描述 Payload 说明 2.05 Content 认证通过:Token对象 正确请求 4.01 Unauthorized 认证失败 token过期或非法 4.04 Not Found 未找到请求的资源 不存在此接口 5.00 Internal Server Error 返回错误信息 服务错误或异常超时
设备成功发起订阅请求后,需要将平台下发的指令进行回复,回复接口如下:
属性名称 属性值 说明 Method post 请求方法类型 Url /device/response 请求方法地址 Accept application/octet-stream 接收的数据编码方式 Content-Format application/octet-stream 上行数据的编码格式 Payload 数据内容,格式见3.4指令内容及响应格式中指令响应部分的内容 消息体
设备发起连接鉴权请求后,平台会响应设备,响应码说明如下:
Code 描述 Payload 说明 2.05 Content 认证通过:Token对象 正确请求 4.01 Unauthorized 认证失败 token过期或非法 4.04 Not Found 未找到请求的资源 不存在此接口 5.00 Internal Server Error 返回错误信息 服务错误或异常超时
设备与平台固件升级通信流程如下图:
固件的二进制流数据支持分块获取,若需要分块传输,请设置设备请求中的Block2参数,且从num=0开始按序获取数据包, 格式如下表:
属性名称 属性值 说明 Method get 请求方法类型 Options Block2 分块传输Block2参数值 Url /device/firmware 请求方法地址 Accept application/octet-stream 接收的数据编码方式 Content-Format application/octet-stream 上行数据的编码格式 Payload 数据内容,格式见3.4指令内容及响应格式中指令响应部分的内容 消息体
平台响应说明如下:
属性名称 属性值 说明 Options Block2 设备上一次获取数据块的参数 Payload 二进制数据流 数据块
三种设备状态:测试中、待启用(测试完成)、启用中,主要是针对设备安装阶段产生的测试数据与设备正式运行数据的区分,测试完成启用后才标记为正式数据。
设备状态流程
①测试中:通过测试验证面板查看数据上报是否正常,当该设备下定义的所有类型都正常上报后才能测试通过。
测试数据查看:
测试未通过:
测试通过:
②待启用:测试通过后进入待启用状态,该状态上报数据仍然是进入测试库。
③启用中:设备启用后,上报数据进入正式库,可在设备详情中查看设备曲线图
平台目前存在许多本地组网类型设备(即监测数据采集设备与无线网关通过近地组网方式实现无线通信),但设备厂商用户仍以多参数方式添加设备,这个与实际会存在偏差,如设备数量。针对该问题,平台对本地组网类型设备在以下功能界面做了调整。
主、子设备信息及二维码查看下载:
子设备数据查看:
在设备管理页面可勾选多个设备点击设备信息批量下载即可完成下载,下载内容如下图。
先确保设备类型与实际安装部署的类型一致,比如近地组网设备,需在平台上以本地组网新型新增,这样才能与实际数量保持一致。
设备接入平台时需使用设备新增时所选的通信协议进行接入,比如设备新增时选择了MQTT通信协议,设备在接入时必须使用MQTT协议,若使用其他协议则无法接入到平台(目前GNSS设备未做接入协议类型的限制)。
clientId使用设备ID,username可自定义平台不做限制,password使用设备key。若设备需接收离线指令,在连接时,cleansession需设置为false,订阅topic的QOS设置为1。
物联网平台提供MQTT链接状态的显示,若设备MQTT长连接则设备MQTT状态为在线;监测预警系统设备在线是根据该设备下70%传感器在历史24小时内上报过数据则认为该设备在线。
需先检查设备响应的指令内容是否携带msgid,若无,需添加msgid再进行响应。
对于多字段监测类型数据,平台支持字符串(如L1_GP_1数据点:”25.3,26.2,30.8”)、对象类型(如L1_GP_1数据点:{gpsTotalX:25.3, gpsTotalY:26.2, gpsTotalZ:30.8})的格式,数据上传时可任意选择其中一种格式进行上传,具体可参考该示例中的格式。
根据《地质灾害监测通讯技术要求》,设备每天需至少上报一组状态数据,其中状态的类型编码为S1_ZT_1,具体字段可在平台的设备状态定义中查看,其中上报的字段值类型需与平台定义的字段值类型保持一致。
最新版本平台已添加设备状态控制功能,新接入设备需完成设备测试并启用的操作,只有已启用设备才能在在详情中查看数据曲线,测试中的设备可在设备管理中进行查看,如下图:
出现该问题可在设备通讯记录界面查看设备上报的数据记录情况,若出现以下两种情况,需确认设备上传的数据格式是否与平台支持的格式(格式一、二、三)匹配,以及确认该设备是否添加对应的监测类型,如下图