本文档主要用于阐述杀虫灯与服务器端进行交互的通讯细节。
需要接收方编写接口以接收数据,使用 POST 请求。数据分为 status、data 和 offline 类型,可以共用一个接口,并根据 cmd 字段进行解析。
{
"payload": {
"cmd": "status",
"ext": {
"imei": "865650043207246",
"iccid": "89860401101700076471",
"csq": 29,
"dtype": 1,
"dver": "1.0.0",
"stm8vs": "100",
"ws": 0,
"ds": 1,
"tt": 7,
"tbs": 0,
"lps": 0,
"rps": 0,
"tps": 0,
"dps": 0,
"bt": 25,
"tcs": 0,
"st": 20,
"et": 2,
"clt": 30,
"dattim": 30,
"voltval": 40,
"gps": 1,
"lng": "113.67336",
"lat": "34.815187",
"stamp": "20180301211805",
"info": 2
}
},
"topic": "/yfkj/scd/pub/865650043207246"
}
字段说明
| 字段 | 描述 |
|---|---|
| imei | 通讯板唯一 ID |
| iccid | SIM 卡卡号 |
| csq | 信号强度 |
| dtype | 设备类型(杀虫灯设备类型为 2) |
| dver | 设备固件版本 |
| stm8vs | STM8 主板代码版本号 |
| ws | 工作状态 (0: 待机, 1: 工作, 2: 充电) |
| ds | 设备开关 (0: 关机, 1: 开机) |
| tt | 定时时长 (0~7 小时), 0 表示常亮 |
| tbs | 灯管状态 (0: 正常, 1: 保护) |
| lps | 光控状态 (0: 正常, 1: 保护) |
| rps | 雨控状态 (0: 正常, 1: 保护) |
| tps | 温控状态 (0: 正常, 1: 保护) |
| dps | 倾倒状态 (0: 正常, 1: 保护) |
| bt | 主板温度 (默认主板温度:25) |
| tcs | 时控开关 (0: 关闭, 1: 开启) |
| st | 时控开始时间 (单位:小时) |
| et | 时控结束时间 (单位:小时) |
| clt | 清虫时间间隔 (单位:分钟) |
| dattim | 数据上报时间间隔 (单位:分钟) |
| voltval | 用于内部调试 |
| gps | 定位方式 (0: 手动定位, 1: GPS 定位, 2: LBS 定位) |
| lng | 经度 |
| lat | 纬度 |
| stamp | 时间戳:20180301211805 |
| info | 用于内部调试 |
json
{
"payload": {
"cmd": "data",
"ext": {
"imei": "865650043207246",
"ds": 1,
"ws": 0,
"tt": 7,
"tbs": 0,
"lps": 0,
"rps": 0,
"tps": 0,
"dps": 0,
"cv": 18000,
"bv": 12800,
"at": "0",
"ah": "0",
"ct": 200,
"clt": 30,
"gps": 1,
"lng": "113.67336",
"lat": "34.815187",
"rcnt": "1",
"err": 2,
"tcs": 0,
"st": 20,
"et": 2,
"stamp": "20180301211805"
}
},
"topic": "/yfkj/scd/pub/865650043207246"
}
字段说明
| 字段 | 描述 |
|---|---|
| imei | 通讯板唯一 ID |
| ds | 设备开关 (0: 关机, 1: 开机) |
| ws | 工作状态 (0: 待机, 1: 工作, 2: 充电) |
| tt | 定时时长 (0~7 小时), 0 表示常亮 |
| tbs | 灯管状态 (0: 正常, 1: 保护) |
| lps | 光控状态 (0: 正常, 1: 保护) |
| rps | 雨控状态 (0: 正常, 1: 保护) |
| tps | 温控状态 (0: 正常, 1: 保护) |
| dps | 倾倒状态 (0: 正常, 1: 保护) |
| cv | 充电电压 mV |
| bv | 电池电压 mV |
| at | 环境温度 |
| ah | 环境湿度 |
| ct | 电击次数 范围 0~255 (每上报一次数据消息后清零) |
| clt | 清虫时间间隔 (单位:分钟) |
| gps | 定位方式 (0: 手动定位, 1: GPS 定位, 2: LBS 定位) |
| lat | 纬度 |
| lng | 经度 |
| rcnt | 设备重启次数 |
| err | 用于内部调试 |
| st | 时控开始时间 (单位:小时) |
| et | 时控结束时间 (单位:小时) |
| stamp | 时间戳:20180301211805 |
设备默认设置了 MQTT 遗愿消息。当设备异常下线时(客户端断开前未向服务器发送 DISCONNECT 消息),MQTT 消息服务器会发布异常下线设备的遗愿消息。
订阅设备遗愿消息,可实现对设备在线和离线状态的监控。
离线消息主题 /yfkj/scd/offline/
报文结构
{
"payload": {
"cmd": "offline",
"ext": {
"imei": "865650043207246"
}
},
"topic": "/yfkj/scd/pub/865650043207246"
}
本文档主要用于阐述物联网杀虫灯与服务器端进行交互的通讯细节,其中包括物联网杀虫灯与服务器之间使用的通信协议和交互通讯协议两部分。
关于主题 sub 和 pub 的说明,注意不要混淆:
/yfkj/scd/offline/<imei> 以外,pub、下行通信主题中是 sub,即:
/yfkj/scd/pub/<imei>/yfkj/scd/sub/<imei>其中 <imei> 指设备唯一标识。
| 缩写 | 描述 |
|---|---|
| imei | 杀虫灯设备的通讯 ID,可作为设备唯一标识 |
| MQTT | 公开的物联网通信协议 |
| QOS | 0,1,2 -- MQTT 的质量协议 |
| cmd | 协议命令字标识,为消息报文分类 |
| status | 状态报告协议命令字,报文中使用 |
| data | 数据报告协议命令字,报文中使用 |
| paramconf | 参数配置协议命令字,报文中使用 |
| serverconf | 服务器配置协议命令字,报文中使用 |
| read | 服务器下发查询协议命令字,报文中使用 |
| power | 服务器下发开关协议命令字,报文中使用 |
| timer | 服务器下发定时协议命令字,报文中使用 |
物联网杀虫灯使用主流公开的 MQTT 协议 V3.1.1 版本作为通讯协议,默认 QOS 质量等级为 0。服务器端需要实现 MQTT 协议的转发和解析,数据的上报为 JSON 格式。
MQTT V3.1.1 协议详见附件。
状态
status:状态报告
数据
data:数据报告
参数配置
paramconf:杀虫灯参数配置报告
服务器配置
serverconf:MQTT 服务器配置报告
开关
power:下发开关控制
定时
timer:下发工作定时时长
查询
read:下发查询根据 MQTT 的特性,下发服务不必回复,可以通过设置下位机的 QOS 为 2 或 1 来保证命令必达,也可以通过服务器主动下发查询状态和下发查询配置指令,来判断是否执行成功。
{
"cmd": "<协议命令字>",
"ext": {<message>}
}
协议命令字 cmd:为报文分类定义的英文标识。 ext:为各个命令字对应的信息内容。 以上数据内容为 JSON 格式。
2.4.1. 状态报告 报文结构
{
"cmd": "status",
"ext": {
"imei": "865650043207246",
"iccid": "89680401101700076471",
"csq": 29,
"dtype": 1,
"dver": "1.0.0",
"stm8vs": "1.0.0",
"ws": 0,
"ds": 1,
"tt": 7,
"tbs": 0,
"lps": 0,
"rps": 0,
"tps": 0,
"dps": 0,
"bt": 25,
"tcs": 0,
"st": 20,
"et": 22,
"info": 1,
"clt": 30,
"dattim": 30,
"lng": "113.67336",
"lat": "34.815187",
"stamp": "20180301211805"
}
}
字段说明
| 字段 | 描述 |
|---|---|
| imei | 通讯板唯一 ID |
| iccid | SIM 卡卡号 |
| csq | 信号强度 |
| dtype | 设备类型(杀虫灯设备类型为 2) |
| dver | 设备固件版本 |
| stm8vs | 主板代码版本号 |
| ws | 工作状态 (0: 待机, 1: 工作, 2: 充电) |
| ds | 设备开关 (0: 关机, 1: 开机) |
| tt | 定时时长 (0~7 小时), 0 表示常亮 |
| tbs | 灯管状态 (0: 正常, 1: 保护) |
| lps | 光控状态 (0: 正常, 1: 保护) |
| rps | 雨控状态 (0: 正常, 1: 保护) |
| tps | 温控状态 (0: 正常, 1: 保护) |
| dps | 倾倒状态 (0: 正常, 1: 保护) |
| bt | 主板温度 (默认 25 度) |
| tcs | 时控开关 (0: 关闭时控, 1: 开启时控) |
| st | 时控开始时间 (单位:小时) |
| et | 时控结束时间 (单位:小时) |
| info | 重启信息 (1: 正常, 2: socket 重连, 3: MQTT 重连) |
| clt | 清虫间隔时间 (单位:分钟) |
| dattim | 数据上传时间 (单位:分钟) |
| lng | 经度 |
| lat | 纬度 |
| stamp | 时间戳:20180301211805 |
2.4.2. 数据报告 报文结构:
{
"cmd": "data",
"ext": {
"imei": "865650043207246",
"ds": 1,
"ws": 0,
"tt": 7,
"tbs": 0,
"lps": 0,
"rps": 0,
"tps": 0,
"dps": 0,
"cv": 18000,
"bv": 12800,
"at": "0",
"ah": "0",
"ct": 1280,
"clt": 30,
"lng": "113.67336",
"lat": "34.815187",
"rcnt": 2,
"err": 1280,
"tcs": 0,
"st": 20,
"et": 22,
"stamp": "20180301211805"
}
}
字段说明
| 字段 | 描述 |
|---|---|
| imei | 通讯板唯一 ID |
| ds | 设备开关 (0: 关机, 1: 开机) |
| ws | 工作状态 (0: 待机, 1: 工作, 2: 充电) |
| tt | 定时时长 (0~7 小时), 0 表示常亮 |
| tbs | 灯管状态 (0: 正常, 1: 保护) |
| lps | 光控状态 (0: 正常, 1: 保护) |
| rps | 雨控状态 (0: 正常, 1: 保护) |
| tps | 温控状态 (0: 正常, 1: 保护) |
| dps | 倾倒状态 (0: 正常, 1: 保护) |
| cv | 充电电压 (单位:mV) |
| bv | 电池电压 (单位:mV) |
| at | 环境温度 |
| ah | 环境湿度 |
| ct | 电击次数 (每上报一次数据消息(data 消息)后清零) |
| clt | 清虫间隔时间 (单位:分钟) |
| lat | 纬度 |
| lng | 经度 |
| rcnt | 设备重启次数 |
| err | 重启原因 |
| tcs | 时控开关 (0: 关闭时控, 1: 开启时控) |
| st | 时控开始时间 (单位:小时) |
| et | 时控结束时间 (单位:小时) |
| stamp | 时间戳:20180301211805 |
3.1.下行通信 3.1.1. 下发查询请求: 查询状态报文结构:
{
"cmd": "read",
"ext": "status"
}
字段说明
| 命令字 | 描述 |
|---|---|
| status | 请求读取状态信息 |
| data | 请求读取数据信息 |
| paramconf | 请求读取参数配置信息 |
3.1.2. 参数配置 报文结构:
{
"cmd": "paramconf",
"ext": {
"vsunset": 6000,
"uvoff": 12500,
"vfloat": 13600,
"unlowt": 10,
"battype": 0,
"tt": 4,
"stamp": "20200713182415",
"vstart": 12000,
"imei": "865650043207246",
"overtemp": 70,
"unovert": 50,
"uvon": 11500,
"lowtemp": 5,
"vsunrise": 1500,
"vcutof": 14400,
"vrecharge": 12800
}
}
字段说明
| 字段 | 描述 |
|---|---|
| imei | 通讯板唯一 ID |
| tt | 定时时长 (0~7 小时), 0 表示常亮 |
| uvon | 电池欠压锁定电压 (单位:mV) |
| uvoff | 电池欠压解锁电压 (单位:mV) |
| vfloat | 电池浮充电压 (单位:mV) |
| vcutof | 电池充电截至电压 (单位:mV) |
| overtemp | 高温保护 (单位:℃) (默认:70) |
| lowtemp | 低温保护 (单位:℃) (默认:5) |
| battype | 电池类型 (0: 铅蓄电池, 1: 锂电池) |
| stamp | 时间戳:20180301211805 |
| vsunset | 日出电压 (单位:mV) |
| vsunrise | 日落电压 (单位:mV) |
| vrecharge | 充电回滞电压 (单位:mV) |
| vstart | 开机电压 (单位:mV) |
| unover | 解除高温保护 (单位:℃) (默认:50) |
| unlowt | 解除低温保护 (单位:℃) (默认:10) |
下发开机控制报文结构:
{
"cmd": "power",
"ext": {
"ds": 1
}
}
下发光控报文结构:
{
"cmd": "timer",
"ext": {
"tt": 4
}
}
下发时控报文结构:
{
"cmd": "timectr",
"ext": {
"timctrl": 1,
"st": 20,
"et": 22
}
}
下发清虫时间配置报文结构:(自清虫设备下发才能执行,可以查看版本号,版本号中含有ZQC的设备可以执行)
{
"cmd": "clear",
"ext": {
"clt": 30
}
}
下发重启报文结构:
{
"cmd": "reboot"
}
下发上报时间间隔:
{
"ext": {
"dattim": 35
},
"cmd": "dattim"
}
字段说明
| 命令字 | 描述 |
|---|---|
| cmd | 请求的内容类别,分别如下: |
| power | 设备电源开关 (ds=1:为开;ds=0:为关) |
| timer | 设备工作时长 (tt=0:为常亮模式,tt(1~7):为设置的定时工作时长) |
| timectr | 时控参数 |
| clear | 清虫时间 |
| reboot | 重启 |
timer 指令与参数配置指令的 tt 是一样的,此处单独列出来是方便光控模式的批量控制。
设备默认设置配置了 MQTT 遗愿消息。 当设备异常下线时(客户端断开前未向服务器发送 DISCONNECT 消息),MQTT 消息服务器会 发布异常下线设备的遗愿消息 订阅设备遗愿消息,可实现对设备在线和离线状态的监控; /yfkj/scd/offline/
{
"cmd": "offline",
"ext": {
"imei": "865650043207246"
}
}
答: 在 data 数据中,ct 字段就是代表杀虫数(电击次数),范围是 0~255。每次上报一次数据消息(data 消息)后,该字段会清零并不累积计算。
答: 可以从平台上进行调整,时间单位是分钟。
答: 不能区分。设备只能计算击杀数量,无法区分出击杀的具体害虫种类。
答: 设备有两种数据传输方式:
HTTP 对接方式:平台对平台的方式,通过服务器转发完成。客户需要提供接收数据的接口,被动接收数据。我们这边主动推送数据,推送数据频率与设备设置的数据上传时间有关。
MQTT 方式:需要客户那边启动一个 MQTT 服务。设备通过 MQTT 传输协议直接上传到客户服务器,客户只需要从 MQTT 服务取数据即可。
答: 设备数据包含以下信息: