4G产品MQ协议_V2
<h1>硬件V2协议</h1>
<p><code>**提示:只有comm与sync指令的parmas分v1与v2协议,其他指令不分;**</code></p>
<h2>一、参数说明</h2>
<ul>
<li>devicesn: devicesn 是区分网关设备与网关子设备的,topic地址里有个网关sn,子设备sn = 网关sn + devicesn,如果devicesn是空的就代表这条数据是网关数据</li>
<li>Mode_id:数据解析规则编号,每个mode_id对应独立的云端数据解析器。网关设备的mode_id为 2006</li>
<li>servicesid :设备控制页面匹配用,每个serviceid都有独立的展示页面。</li>
<li>timeStamp:时间戳,避免收到过期指令。(暂未使用)</li>
<li>node_id : 网关那边区分设备用的</li>
<li>action:指令集。Command:触发上报数据及控制指令。Sync:定时上报数据,时间可配置。Config:配置设备及读取设备配置。</li>
<li>params:</li>
</ul>
<table>
<thead>
<tr>
<th>KEY</th>
<th>名称</th>
<th>范围/阈值</th>
<th>指令集</th>
<th>示例</th>
<th>数据类型</th>
<th>上报频率</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>锁</td>
<td>true/false</td>
<td>command/ sync</td>
<td>{"11":true}</td>
<td>boolean</td>
<td>触发/定时</td>
<td>发给设备则是控制指令</td>
</tr>
<tr>
<td>12</td>
<td>温度2</td>
<td>-80~+100℃</td>
<td>sync</td>
<td>{"12":" 36.5" }</td>
<td>String</td>
<td>定时</td>
<td>外置温度传感器</td>
</tr>
<tr>
<td>23</td>
<td>温度2告警</td>
<td>command</td>
<td>{"12":38,"23":1}</td>
<td>Number</td>
<td>触发</td>
<td>只有command时发送,1为大于阈值告警,2为小于阈值告警</td>
</tr>
<tr>
<td>13/14</td>
<td>GPS</td>
<td>sync</td>
<td>{"13":"29.6167812","14":" 106.5049362"}</td>
<td>String</td>
<td>触发的定时</td>
<td>直接可用经纬度。(震动触发,震动停止后延时5分钟停止)</td>
</tr>
<tr>
<td>15</td>
<td>信号强度</td>
<td>sync</td>
<td>{"15":"72"}</td>
<td>String</td>
<td>定时</td>
<td>百分比</td>
</tr>
<tr>
<td>16/17</td>
<td>温湿度-温度/湿度</td>
<td>-40~85℃/0-95%</td>
<td>sync</td>
<td>{"16":36.5, "17":72}</td>
<td>Number</td>
<td>定时</td>
<td>湿度为百分比</td>
</tr>
<tr>
<td>18/19</td>
<td>AGPS</td>
<td>sync</td>
<td>{"18":"29.6167812","19":" 106.5049362"}</td>
<td>String</td>
<td>每1小时</td>
<td>直接可用经纬度</td>
</tr>
<tr>
<td>20</td>
<td>电量</td>
<td>sync</td>
<td>{"20":"80"}</td>
<td>String</td>
<td>定时</td>
<td>百分比</td>
</tr>
<tr>
<td>21</td>
<td>是否倾倒</td>
<td>true/false</td>
<td>command</td>
<td>{"21":true}</td>
<td>boolean</td>
<td>触发</td>
<td>倾倒为true不倾倒为false</td>
</tr>
<tr>
<td>22</td>
<td>温度1</td>
<td>-40~+85℃</td>
<td>sync</td>
<td>{"22":"37.6"}</td>
<td>String</td>
<td>定时</td>
</tr>
<tr>
<td>23</td>
<td>温度报警</td>
<td>0,1,2</td>
<td>alarm</td>
<td>{"22":"37.6"}</td>
<td>String</td>
<td>定时</td>
<td>0恢复报警,1高温报警,2低温报警</td>
</tr>
<tr>
<td>24</td>
<td>继电器</td>
<td>true/false</td>
<td>command/ sync</td>
<td>{"24":true}</td>
<td>boolean</td>
<td>触发/定时</td>
<td>发给设备则是控制指令</td>
</tr>
<tr>
<td>25</td>
<td>12温度的上限</td>
<td>-80~+100℃</td>
<td>config</td>
<td>{"25":100 }</td>
<td>Number</td>
<td>\</td>
<td>25/26/27必须一起上报</td>
</tr>
<tr>
<td>26</td>
<td>12温度的下限</td>
<td>-80~+100℃</td>
<td>config</td>
<td>{"26":-80 }</td>
<td>Number</td>
<td>\</td>
<td>25/26/27必须一起上报</td>
</tr>
<tr>
<td>27</td>
<td>12温度告警的回差</td>
<td>∞</td>
<td>config</td>
<td>{"27":5 }</td>
<td>Number</td>
<td>\</td>
<td>25/26/27必须一起上报</td>
</tr>
<tr>
<td>28</td>
<td>采集周期</td>
<td>10-3600</td>
<td>config</td>
<td>{"28":"3600"}</td>
<td>String</td>
<td>\</td>
<td>单位/秒</td>
</tr>
<tr>
<td>29</td>
<td>配置二维码</td>
<td>| config</td>
<td>String</td>
<td>\</td>
<td>URL最大长度100</td>
</tr>
<tr>
<td>30</td>
<td>位移检测阈值</td>
<td>| config</td>
<td>String</td>
<td>\</td>
<td>单位mg</td>
</tr>
<tr>
<td>31</td>
<td>碰撞检测阈值</td>
<td>| config</td>
<td>String</td>
<td>\</td>
<td>单位mg</td>
</tr>
<tr>
<td>32</td>
<td>倾倒检测阈值</td>
<td>| config</td>
<td>String</td>
<td>\</td>
<td>单位°</td>
</tr>
<tr>
<td>40</td>
<td>播放语音</td>
<td>| command</td>
<td>{"40":"欢迎"}</td>
<td>String</td>
<td>\</td>
<td>""空表示停止播放</td>
</tr>
<tr>
<td>41</td>
<td>播放音量</td>
<td>1-7</td>
<td>command</td>
<td>{"40":"欢迎","41":7}</td>
<td>Number</td>
<td>\</td>
<td>可省略,默认系统设置音量</td>
</tr>
<tr>
<td>42</td>
<td>是否循环播放</td>
<td>true/false</td>
<td>command</td>
<td>{"40":"欢迎","42":false}</td>
<td>boolean</td>
<td>\</td>
<td>可省略,默认false</td>
</tr>
<tr>
<td>43</td>
<td>语音文本编码</td>
<td>true/false</td>
<td>command</td>
<td>{"40":"欢迎","43":false}</td>
<td>boolean</td>
<td>\</td>
<td>可省略,默认false;true=utf8,false=gb2312</td>
</tr>
<tr>
<td>46</td>
<td>开锁保持时间</td>
<td>1-0x7FFFFFFF</td>
<td>command</td>
<td>{"24":true,"46":1000}</td>
<td>Number</td>
<td>\</td>
<td>可省略,单位:ms。默认系统设置保持时间,0=常开</td>
</tr>
<tr>
<td>47</td>
<td>2号位保持时间</td>
<td>1-0x7FFFFFFF</td>
<td>command</td>
<td>{"24":true,47":2000}</td>
<td>Number</td>
<td>|可省略,单位ms。0=常开</td>
</tr>
<tr>
<td>1101</td>
<td>新版开锁1</td>
<td>1/0</td>
<td>cammand</td>
<td><code>{&quot;1101&quot;:&quot;1&quot;,&quot;46&quot;:0}</code></td>
<td>string</td>
<td>|注意是字符串</td>
</tr>
<tr>
<td>1102</td>
<td>新版开锁2</td>
<td>1/0</td>
<td>cammand</td>
<td><code>{&quot;1102&quot;:&quot;1&quot;,&quot;47&quot;:0}</code></td>
<td>string</td>
<td>|注意是字符串</td>
</tr>
</tbody>
</table>
<p>47/47最大值由3600 000改为0x7FFFFFFF,版本号3.6.3,发布日期20241010</p>
<h2>二、数据上报数据展示</h2>
<p><strong>1</strong> 、 <strong>SYNC</strong> 定时上报数据样例 :</p>
<p>Topic: /xm/sh/response/mqtt/网关sn号/2006/v2</p>
<p>Data:</p>
<pre><code class="language-json">{
&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},
&quot;payload&quot;:{
&quot;devices&quot;:[{
&quot;devicesn&quot;:&quot;&quot;,
&quot;action&quot;:&quot;sync&quot;,
&quot;params&quot;:{
&quot;11&quot;:true,
&quot;12&quot;:&quot;36.5&quot;,
&quot;13&quot;:&quot;29.124653&quot;,
&quot;14&quot;:&quot;106.45633&quot;,
&quot;15&quot;:&quot;72&quot;,
&quot;16&quot;:&quot;36.5&quot;,
&quot;17&quot;:&quot;72&quot;,
&quot;18&quot;:&quot;29.123456&quot;,
&quot;19&quot;:&quot;106.45678&quot;,
&quot;20&quot;:&quot;59&quot;,
&quot;21&quot;:true
},
&quot;serviceid&quot;:&quot;20060101&quot;
}]
}
}
</code></pre>
<p><strong>2</strong> 、 <strong>Conmmand</strong> 触发上报样例 :</p>
<p>示例: 温度大于阈值告警</p>
<p>Topic: /xm/sh/response/mqtt/网关sn号/2006/v2</p>
<p>Data:</p>
<pre><code class="language-json">{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;devicesn&quot;:&quot;&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;12&quot;:&quot;36.5&quot;,&quot;23&quot;:&quot;1&quot;},&quot;serviceid&quot;:&quot;20060101&quot;}]}}</code></pre>
<h2>三、非常规配置修改查询(新)</h2>
<p>(根据配置变量名直接操作,变量名见产品资料,不同4g产品配置不同。)
<strong>下发非常规配置:</strong></p>
<pre><code class="language-json">{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;writeconfig&quot;,&quot;params&quot;:{&quot;PT100_DIFF&quot;:100}}]}}</code></pre>
<p><strong>通过串口方式操作:</strong></p>
<pre><code class="language-json">//串口发送指令需要在json前面加引导符“+comm,”。
//发送 (提示读取参数值必须有,不使用但json解析需要,可固定为“0”)
&gt;[Tx-&gt;][下午 7:17:42][asc]
+comm,{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;writeconfig&quot;,&quot;params&quot;:{&quot;POWER_CHECK_WAIT_TIM&quot;:5000}}]}}
&gt;[Rx&lt;-][下午 7:17:42][asc]
set POWER_CHECK_WAIT_TIM=5000 is true,
//读取
&gt;[Tx-&gt;][下午 7:17:57][asc]
+comm,{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;readconfig&quot;,&quot;params&quot;:{&quot;POWER_CHECK_WAIT_TIM&quot;:00}}]}}
&gt;[Rx&lt;-][下午 7:17:57][asc]
sync,00,20070101,{&quot;POWER_CHECK_WAIT_TIM&quot;:5000}</code></pre>
<h2>四、下发控制指令:</h2>
<p>开锁示例:</p>
<p>Topic: /xm/sh/request/mqtt/网关sn号/2006/v2</p>
<p>Data:</p>
<pre><code class="language-json">{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;devicesn&quot;:&quot;&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;11&quot;:true}}]}}</code></pre>
<p><strong>注意: ①全部为英文字符。 ②不能有空格。</strong></p>
<h2>五、action类型:</h2>
<p>command:控制指令
readconfig:读取配置
writeconfig:写入配置
restart:重启
sync:触发同步消息</p>
<h2>六、公共配置项</h2>
<table>
<thead>
<tr>
<th>参数名</th>
<th>权限</th>
<th>类型</th>
<th>样例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>version</td>
<td>R</td>
<td>string</td>
<td>4G_LOCK_V23.6.5</td>
<td>3.6.5版本后支持</td>
</tr>
<tr>
<td>MASTER_TOPIC</td>
<td>RW</td>
<td>string</td>
<td>xmiot</td>
<td>在收/发topic前进添加固定字符串,生效方法见注意事项7</td>
</tr>
<tr>
<td>DEFAULT_SUB_V2</td>
<td>R</td>
<td>string</td>
<td>/xm/sh/request/mqtt/gwsn/+/v2</td>
<td>默认订阅topic,生效方法见注意事项7</td>
</tr>
<tr>
<td>DEFAULT_PUB_V2</td>
<td>R</td>
<td>string</td>
<td>/xm/sh/response/mqtt/gwsn/pub;0;</td>
<td>默认发送topic,生效方法见注意事项7</td>
</tr>
<tr>
<td>SYNC_NUMBER</td>
<td>RW</td>
<td>600</td>
<td>number</td>
<td>同步间隔,单位秒</td>
</tr>
<tr>
<td>HOLD_TIME</td>
<td>RW</td>
<td>1000</td>
<td>number</td>
<td>开锁保持时间,单位毫秒</td>
</tr>
</tbody>
</table>
<h2>七、注意事项:</h2>
<p><strong>1、GPS需要到室外才能获取到数据,无效数据不发,空旷区域定位大约需要1分钟。</strong>
<strong>2、20230806日后发货设备,版本号3.3.7以后,支持默认密码写配置(默认密码:13256666293),默认配置不可读取。</strong>
<strong>3、配置工具使用“smartDTU configTool”,写配置将覆盖原配置,主要用于将设备“迅鸣云”迁移到“自建服务器”时使用。</strong>
<strong>4、3.6.5及之后版本支持“version”字段读取版本号。</strong>
<strong>5、reboot、sync指令params数据不解析,置空{}即可。</strong>
<strong>6、readconfig指令参数值不解析,置0即可。</strong>
<strong>7、主/收/发topic修改后还需使用usb或485接口的配置工具重置mqtt参数的接收、发送topic配置为空,并重启设备才会生效。</strong></p>
<hr />
<h2>八、智能终端功能:</h2>
<p><strong> 冷链项目显示屏内容解释如下: </strong></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=8d093c0b6430c66a8c29943fc2701133" alt="" /></p>
<table>
<thead>
<tr>
<th>区域</th>
<th>内容</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>全局信息</td>
<td>时间</td>
<td>联网后自动校准</td>
</tr>
<tr>
<td></td>
<td>日期</td>
<td>联网后自动校准</td>
</tr>
<tr>
<td></td>
<td>信号强度</td>
<td>>1 格信号有效,否则数据传输不稳定</td>
</tr>
<tr>
<td></td>
<td>电量</td>
<td>检测外部供电池电量,电池电压 12v</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>区域</th>
<th>内容</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>状态显示</td>
<td>锁 1</td>
<td>锁 1 的开关状态</td>
</tr>
<tr>
<td></td>
<td>继电器</td>
<td>继电器的开关状态</td>
</tr>
<tr>
<td></td>
<td>震动</td>
<td>检测到震动后显示,延时 5s 后隐藏,会触发 GPS 开机</td>
</tr>
<tr>
<td></td>
<td>倾斜</td>
<td>检测到倾倒后显示,恢复后延时 5s 隐藏,可设置检测角度</td>
</tr>
<tr>
<td></td>
<td>碰撞</td>
<td>检测到碰撞后显示,恢复后延时 5s 隐藏,可设置碰撞强度</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>区域</th>
<th>内容</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>计时</td>
<td>开机时间</td>
<td>开机到现在的运行时间,单位秒</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>区域</th>
<th>内容</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>环境温湿度</td>
<td>温度</td>
<td>SHT3X 的温度</td>
</tr>
<tr>
<td></td>
<td>最大值</td>
<td>开机到现在的温度最大值</td>
</tr>
<tr>
<td></td>
<td>最小值</td>
<td>开机到现在的温度最大值</td>
</tr>
<tr>
<td></td>
<td>湿度</td>
<td>SHT3X 的湿度</td>
</tr>
<tr>
<td></td>
<td>最大值</td>
<td>开机到现在的湿度最大值</td>
</tr>
<tr>
<td></td>
<td>最小值</td>
<td>开机到现在的湿度最小值</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>区域</th>
<th>内容</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>外部温度</td>
<td>告警最大值</td>
<td>外部温度传感器的告警最大值,支持小数点后 1 位</td>
</tr>
<tr>
<td></td>
<td>告警最小值</td>
<td>外部温度传感器的告警最小值,支持小数点后 1 位</td>
</tr>
<tr>
<td></td>
<td>最大值</td>
<td>开机到现在外部温度传感器的温度最大值</td>
</tr>
<tr>
<td></td>
<td>最小值</td>
<td>开机到现在外部温度传感器的温度最小值</td>
</tr>
<tr>
<td></td>
<td>平均值</td>
<td>开机到现在外部温度传感器的平均值</td>
</tr>
<tr>
<td></td>
<td>告警保持时间</td>
<td>开机到现在外部温度传感器超过告警阈值后持续的时间</td>
</tr>
<tr>
<td></td>
<td>当前温度</td>
<td>外部温度传感器当前值</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>区域</th>
<th>内容</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>定位</td>
<td>AGPS</td>
<td>有 4G 信号即可定位,精度±50m,1 小时上报 1 次,仅获取到有效数据时上报</td>
</tr>
<tr>
<td></td>
<td>GPS</td>
<td>室外有效,空旷区域定位时间<1 分钟,精度±5m,GPS 运行时图标会闪烁,震动触发开启,并延时 3 分钟关闭,仅获取到有效数据时上报</td>
</tr>
</tbody>
</table>
<h2>[点击查看 4G 智能终端产品简介](<a href="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=dbb1b175bb2e1a843c01cc0cedd19148">https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=dbb1b175bb2e1a843c01cc0cedd19148</a> "[迅鸣物联网智能终端功能列表.pdf")</h2>