协议规格

INT705 倾角振动传感器 MQTT JSON 接入协议

连接参数

参数值
协议MQTT v3.1.1
PayloadJSON 字符串
编码UTF-8
Client ID设备 IMEI(设备唯一标识)
UsernameMQTT 用户名;服务器不要求认证时留空
PasswordMQTT 密码;服务器不要求认证时留空

该设备只支持配置一个上行 Topic 和一个下行 Topic。服务端应按设备配置的 Topic 接收和下发。

主题配置

配置项方向说明示例
Pub Topic上行设备向服务端发布数据、状态和告警inclinometer/{IMEI}/up
Sub Topic下行服务端向设备下发参数配置或清零指令inclinometer/{IMEI}/down

{IMEI} 为设备 IMEI,作为设备唯一标识。实际项目中 Topic 字符串可以按 MQTT 服务器要求配置,但设备侧仍只有一个上行 Topic 和一个下行 Topic。建议使用普通业务主题,不使用 /sys/ 或 $SYS/ 前缀,避免与服务器系统主题、平台预留主题或访问控制规则混淆。


上行报文

设备通过 Pub Topic 上报 JSON 字符串。根对象必须包含 params,设备数据字段放在 params 对象内。

{
  "params": {
    "INDEX": 1,
    "IMEI": "862177241709877",
    "PID": 386025,
    "XANG": 0.000,
    "YANG": 0.000,
    "ZANG": 0.000,
    "XACC": 0.000,
    "YACC": 0.000,
    "ZACC": 0.000,
    "ALARM_FLG": 0,
    "ALARM_TYPE": 0,
    "ANG": 0.000,
    "ACC": 0.000,
    "CLR_FLG": 0,
    "FIX": 0,
    "FREQ": 28800,
    "RFAA": 600,
    "ACTC": 0,
    "CSQ": 0,
    "EQC": 0,
    "TEMP": 0.00,
    "LNGTD": 0.00,
    "LATTD": 0.00,
    "SOFTVERSION": "205A220916"
  }
}

上行报文为设备 JSON,不包含设备时间戳字段。服务端入库时可使用 MQTT 接收时间作为数据时间。

报文关键字说明

以下关键字均位于 params 对象内。

关键字含义格式范围备注
INDEX报文序号uint320 - 2^32上报自增
IMEI国际移动设备识别码String15 - 17 位设备唯一标识
PID产品 IDint320 - 2^31用户自分配
XANGX 轴与水平面的夹角Float-90 - 90°当前角度,超过角度阈值产生告警
YANGY 轴与水平面的夹角Float-90 - 90°当前角度,超过角度阈值产生告警
ZANGZ 轴与水平面的夹角Float-90 - 90°不清零,不告警
XACCX 轴加速度Float-2 - 2g加速度变化量,超过加速度阈值产生告警
YACCY 轴加速度Float-2 - 2g加速度变化量,超过加速度阈值产生告警
ZACCZ 轴加速度Float-2 - 2g加速度变化量,超过加速度阈值产生告警
ALARM_FLG告警标志int0 正常,1 告警默认 0
ALARM_TYPE告警类型int0 正常,1 角度告警,2 加速度告警,3 角度和加速度同时告警默认 0
ANG角度阈值Float0 - 90°默认 0°
ACC加速度阈值Float0 - 1g默认 0g
CLR_FLG清零标志int0 绝对零点,1 相对零点默认 0
FIX安装方向int0 水平向上,1 垂直向上,2 垂直向左,3 垂直向右,4 水平向下默认 0
FREQ休眠周期int600 - 259200s默认 86400 秒
RFAA告警周期int600 - 259200s默认 600 秒
ACTC告警确认int0 - 30min默认 0 分钟
CSQ信号强度int0 - 99<=10 信号差,11 - 18 信号一般,>18 信号好
EQC电量int0 - 100百分比
TEMP温度Float-128 - 127°C单位:摄氏度
LNGTD经度Float-180 - 180°单位:度
LATTD纬度Float-90 - 90°单位:度
SOFTVERSION软件版本String10 个字符-

解析说明

  • 服务端应先读取根对象 params,再解析其中的设备字段。
  • 字段名区分大小写,必须按上表的大写关键字解析。
  • INDEX 是报文序号,不是时间戳。上行报文不包含设备时间字段,数据时间建议使用服务端收到 MQTT 消息的时间。
  • IMEI 是设备唯一标识,建议校验 Topic 中的 {IMEI} 与报文中的 params.IMEI 是否一致。
  • ANG 和 ACC 是当前配置阈值,不是实时测量值。实时测量值分别为 XANG、YANG、ZANG 和 XACC、YACC、ZACC。
  • 角度告警由 XANG、YANG 与 ANG 判断;ZANG 只上报,不参与清零和告警。
  • 加速度告警由 XACC、YACC、ZACC 与 ACC 判断。
  • FIX 表示设备安装方向,服务端展示或计算角度时应保留该配置值。

下行报文

服务端通过 Sub Topic 下发 JSON 字符串。根对象必须包含 params,配置字段放在 params 对象内。字段名保持设备定义的大写格式。

批量配置

{
  "params": {
    "ANG": 5,
    "ACC": 0.082,
    "FREQ": 43200,
    "RFAA": 1200,
    "ACTC": 3,
    "CLR_FLG": 1
  }
}

单项配置

{"params":{"ANG":5}}
{"params":{"ACC":0.082}}
{"params":{"FREQ":43200}}
{"params":{"RFAA":1200}}
{"params":{"ACTC":3}}
{"params":{"CLR_FLG":1}}

下行字段

字段类型范围说明
params.ANGFloat0 - 90°倾角告警阈值
params.ACCFloat0 - 1g振动加速度告警阈值
params.FREQInteger600 - 259200s休眠周期
params.RFAAInteger600 - 259200s告警周期
params.ACTCInteger0 - 30min告警确认
params.CLR_FLGInteger0 或 1清零标志,0 表示绝对零点,1 表示相对零点

下发时直接发布完整 JSON 对象字符串,不要把整个 JSON 再作为字符串值封装;不要使用单引号、注释或尾逗号;所有下行参数必须放在 params 对象内,字段名区分大小写。

配置下发后,服务端可通过后续上行报文中的 ANG、ACC、FREQ、RFAA、ACTC 等字段确认设备当前配置值;清零动作可结合后续角度数据判断是否生效。


告警与清零

条件字段
正常ALARM_FLG = 0,ALARM_TYPE = 0
倾角超过阈值ALARM_FLG = 1,ALARM_TYPE = 1
振动加速度超过阈值ALARM_FLG = 1,ALARM_TYPE = 2
倾角和振动加速度同时超过阈值ALARM_FLG = 1,ALARM_TYPE = 3
设置相对零点服务端下发 {"params":{"CLR_FLG":1}}

服务端解析上行数据时应优先判断 ALARM_FLG,再根据 ALARM_TYPE 区分告警类型。