通用命令
<p>[TOC]</p>
<table>
<thead>
<tr>
<th>4G喇叭</th>
<th>4G开关</th>
<th>WiFi喇叭</th>
<th>WiFi开关</th>
</tr>
</thead>
<tbody>
<tr>
<td><font color="green"><strong>&radic;</strong></font></td>
<td><font color="green"><strong>&radic;</strong></font></td>
<td><font color="green"><strong>&radic;</strong></font></td>
<td><font color="green"><strong>&radic;</strong></font></td>
</tr>
</tbody>
</table>
<p>支持此功能的设备类型:<font color="green"><strong>&radic;</strong></font>-支持 <font color="red"><strong>&times;</strong></font>-不支持</p>
<h2>获取设备基本信息(getDevInfo)</h2>
<p><strong>简要描述</strong>
获取设备基本信息,如固件版本号等。</p>
<p><strong>命令参数</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必须</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>是</td>
<td>string</td>
<td>getDevInfo</td>
</tr>
<tr>
<td>frameId</td>
<td>否</td>
<td>string</td>
<td>帧ID</td>
</tr>
</tbody>
</table>
<p><strong>命令示例</strong></p>
<pre><code> {
&quot;method&quot;: &quot;getDevInfo&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;
}</code></pre>
<p><strong>应答参数说明</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>string</td>
<td>getDevInfo</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>version</td>
<td>string</td>
<td>版本号</td>
</tr>
<tr>
<td>slotAmount</td>
<td>int</td>
<td>插槽数量,开关类设备支持</td>
</tr>
<tr>
<td>phaseAmount</td>
<td>int</td>
<td>相位数量,开关类设备支持</td>
</tr>
<tr>
<td>imei</td>
<td>string</td>
<td>设备imei</td>
</tr>
<tr>
<td>frameId</td>
<td>string</td>
<td>同命令frameId</td>
</tr>
<tr>
<td>timestamp</td>
<td>int</td>
<td>秒级时间戳,WiFi款不支持</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;getDevInfo&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;version&quot;: &quot;SWITCH-EC618X-R24-O-V4.0.8&quot;,
&quot;slotAmount&quot;: 1,
&quot;phaseAmount&quot;: 1,
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>获取设备实时状态信息(getDevStatus)</h2>
<p><strong>简要描述</strong>
获取设备实时状态信息,如固件版本号等。</p>
<p><strong>命令参数</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必须</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>是</td>
<td>string</td>
<td>getDevStatus</td>
</tr>
<tr>
<td>frameId</td>
<td>否</td>
<td>string</td>
<td>帧ID</td>
</tr>
</tbody>
</table>
<p><strong>命令示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;getDevStatus&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;
}</code></pre>
<p><strong>应答参数说明</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>string</td>
<td>getDevStatus</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>netType</td>
<td>string</td>
<td>联网类型。4G,WiFi</td>
</tr>
<tr>
<td>iccid</td>
<td>string</td>
<td>物联卡ICCID,4G款支持</td>
</tr>
<tr>
<td>signal</td>
<td>int</td>
<td>信号强度,1-31</td>
</tr>
<tr>
<td>temperature</td>
<td>float</td>
<td>温度</td>
</tr>
<tr>
<td>gps</td>
<td>int</td>
<td>gps,格式:经度,维度</td>
</tr>
<tr>
<td>slots</td>
<td>array</td>
<td>插槽状态int数组,按顺序从插槽1到插槽n,子项值:0-关闭;1-打开</td>
</tr>
<tr>
<td>tasks</td>
<td>array</td>
<td>插槽订单任务对象数组</td>
</tr>
<tr>
<td>EMdata</td>
<td>array</td>
<td>插槽电量计对象数组,按顺序从插槽1到插槽n</td>
</tr>
<tr>
<td>imei</td>
<td>string</td>
<td>设备imei</td>
</tr>
<tr>
<td>frameId</td>
<td>string</td>
<td>同命令frameId</td>
</tr>
<tr>
<td>timestamp</td>
<td>int</td>
<td>秒级时间戳,WiFi款不支持</td>
</tr>
</tbody>
</table>
<ul>
<li><code>tasks</code>数组对象说明</li>
</ul>
<table>
<thead>
<tr>
<th>key</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>slotNum</td>
<td>int</td>
<td>插槽编号,从1开始</td>
</tr>
<tr>
<td>type</td>
<td>string</td>
<td>订单类型,TIME-计时;POWER-计量</td>
</tr>
<tr>
<td>status</td>
<td>string</td>
<td>订单状态,idle-空闲/结束;working-进行中</td>
</tr>
<tr>
<td>timeSec</td>
<td>int</td>
<td>计时秒数。该参数在type为TIME时有效</td>
</tr>
<tr>
<td>powerKwh</td>
<td>double</td>
<td>计量电量,单位度。该参数在type为POWER时有效</td>
</tr>
<tr>
<td>powerMaxSec</td>
<td>int</td>
<td>计量最大秒数,总运行秒数到达计量最大秒数,任务停止。0为不限制。该参数在type为POWER时有效</td>
</tr>
<tr>
<td>maxPower</td>
<td>int</td>
<td>最大功率,单位W。超过最大功率,任务自动停止。0为使用设备默认值1400(不同设备有不同默认值)</td>
</tr>
<tr>
<td>pullOutStop</td>
<td>bool</td>
<td>拔出自停。true-启用;false-禁用</td>
</tr>
<tr>
<td>pullOutStopPower</td>
<td>int</td>
<td>拔出自停功率,在拔出自停启用,且当前功率小于拔出自停功率时,任务自动停止。0为使用设备默认拔出自停功率3(不同设备有不同默认值)</td>
</tr>
<tr>
<td>pullOutStopStartSec</td>
<td>int</td>
<td>订单启动后拔出自停开始判断秒数,默认0秒</td>
</tr>
<tr>
<td>chargeFullStop</td>
<td>bool</td>
<td>充满自停。true-启用;false-禁用</td>
</tr>
<tr>
<td>chargeFullStopPower</td>
<td>int</td>
<td>充满自停功率。0为使用设备默认值5(不同设备有不同默认值)</td>
</tr>
<tr>
<td>chageFullStopSec</td>
<td>int</td>
<td>充满自停秒数,在充满自停启用,且当前功率小于充满自停功率并持续充满自停秒数后,任务自动停止。0为使用设备默认值60(不同设备有不同默认值)</td>
</tr>
<tr>
<td>chargeFullStopStartSec</td>
<td>int</td>
<td>订单启动后充满自停开始判断秒数,默认0秒</td>
</tr>
<tr>
<td>remark</td>
<td>string</td>
<td>订单备注,启动订单时传入,可用于记录订单编号</td>
</tr>
<tr>
<td>closeReason</td>
<td>string</td>
<td>关闭原因</td>
</tr>
<tr>
<td>totalSec</td>
<td>int</td>
<td>总运行秒数</td>
</tr>
<tr>
<td>totalKwh</td>
<td>double</td>
<td>总运行度数</td>
</tr>
<tr>
<td>voltage</td>
<td>double</td>
<td>有效电压,单位V</td>
</tr>
<tr>
<td>current</td>
<td>double</td>
<td>有效电流,单位A</td>
</tr>
<tr>
<td>power</td>
<td>double</td>
<td>有效功率,单位W</td>
</tr>
</tbody>
</table>
<ul>
<li><code>closeReason</code>说明</li>
</ul>
<table>
<thead>
<tr>
<th>value</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>CLOSED</td>
<td>任务完成,定时任务totalSec达到timeSec;计量任务totalKwh达到powerKwh</td>
</tr>
<tr>
<td>MANUAL_CLOSED</td>
<td>下发结束订单命令关闭</td>
</tr>
<tr>
<td>PULL_OUT_STOP_CLOSE</td>
<td>拔出自停,pullOutStop为true且满足拔出自停条件</td>
</tr>
<tr>
<td>CHARGE_FULL_STOP_CLOSE</td>
<td>充满自停,chargeFullStop为true且满足拔出自停条件</td>
</tr>
<tr>
<td>OVER_POWER_CLOSE</td>
<td>超出最大功率停止,power持续超出maxPower</td>
</tr>
<tr>
<td>OVER_TEMPERATURE_CLOSE</td>
<td>超出最大温度停止,temperature持续超出设备报警温度(不同设备有不同报警温度值)</td>
</tr>
<tr>
<td>REACH_MAX_TIME_CLOSE</td>
<td>达到最长时长关闭,计量任务totalSec达到powerMaxSec</td>
</tr>
</tbody>
</table>
<ul>
<li><code>EMdata</code>数组对象说明</li>
</ul>
<table>
<thead>
<tr>
<th>key</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>double</td>
<td>有效电压,单位V</td>
</tr>
<tr>
<td>c</td>
<td>double</td>
<td>有效电流,单位A</td>
</tr>
<tr>
<td>p</td>
<td>double</td>
<td>有效功率,单位W</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;imei&quot;: &quot;864536072949900&quot;,
&quot;gps&quot;: &quot;113.2170916,023.4001628&quot;,
&quot;method&quot;: &quot;getDevStatus&quot;,
&quot;timestamp&quot;: 1745398605,
&quot;signal&quot;: 25,
&quot;result&quot;: &quot;ok&quot;,
&quot;model&quot;: &quot;Air780E&quot;,
&quot;EMdata&quot;: [
{
&quot;c&quot;: 0.067,
&quot;v&quot;: 239.0090179,
&quot;p&quot;: 2.9530001
}
],
&quot;slots&quot;: [
0
],
&quot;netType&quot;: &quot;4G&quot;,
&quot;iccid&quot;: &quot;898608481024C0310590&quot;,
&quot;tasks&quot;: [
{
&quot;chargeFullStop&quot;: false,
&quot;pullOutStopStartSec&quot;: 0,
&quot;timeSec&quot;: 23596,
&quot;voltage&quot;: &quot;239.009&quot;,
&quot;slotNum&quot;: 1,
&quot;totalKwh&quot;: &quot;0.000&quot;,
&quot;pullOutStop&quot;: false,
&quot;pullOutStopPower&quot;: 5,
&quot;chargeFullStopPower&quot;: 10,
&quot;remark&quot;: &quot;QQO20250417092634&quot;,
&quot;chargeFullStopStartSec&quot;: 0,
&quot;closeReason&quot;: &quot;CLOSED&quot;,
&quot;current&quot;: &quot;0.067&quot;,
&quot;type&quot;: &quot;TIME&quot;,
&quot;power&quot;: &quot;2.953&quot;,
&quot;status&quot;: &quot;idle&quot;,
&quot;chargeFullStopSec&quot;: 60,
&quot;maxPower&quot;: 2000,
&quot;totalSec&quot;: 23596
}
],
&quot;temperature&quot;: &quot;32.4&quot;,
&quot;frameId&quot;: &quot;1745398603262&quot;
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>设备连接MQTT成功事件上报(connected)</h2>
<p><strong>简要描述</strong>
设备连接MQTT成功触发事件。</p>
<p><strong>命令参数</strong>
无</p>
<p><strong>命令示例</strong>
无</p>
<p><strong>应答参数说明</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>string</td>
<td>connected</td>
</tr>
<tr>
<td>imei</td>
<td>string</td>
<td>设备imei</td>
</tr>
<tr>
<td>timestamp</td>
<td>int</td>
<td>秒级时间戳,WiFi款不支持</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;connected&quot;,
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>按键事件上报(keyEvent)</h2>
<p><strong>简要描述</strong>
设备单击按键时触发。</p>
<p><strong>命令参数</strong>
无</p>
<p><strong>命令示例</strong>
无</p>
<p><strong>应答参数说明</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>string</td>
<td>keyEvent</td>
</tr>
<tr>
<td>imei</td>
<td>string</td>
<td>设备imei</td>
</tr>
<tr>
<td>timestamp</td>
<td>int</td>
<td>秒级时间戳,WiFi款不支持</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;keyEvent&quot;,
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>获取按键配置(getKeyConfig)</h2>
<p><strong>简要描述</strong>
获取按键配置。</p>
<p><strong>命令参数</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必须</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>是</td>
<td>string</td>
<td>getKeyConfig</td>
</tr>
<tr>
<td>frameId</td>
<td>否</td>
<td>string</td>
<td>帧ID</td>
</tr>
</tbody>
</table>
<p><strong>命令示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;getKeyConfig&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;
}</code></pre>
<p><strong>应答参数说明</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>string</td>
<td>getKeyConfig</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>mode</td>
<td>int</td>
<td>按键模式。0-无动作;1-切换开关;2-离线切换开关,联网不动作</td>
</tr>
<tr>
<td>uploadEnable</td>
<td>bool</td>
<td>是否上报按键事件</td>
</tr>
<tr>
<td>frameId</td>
<td>string</td>
<td>同命令frameId</td>
</tr>
<tr>
<td>timestamp</td>
<td>int</td>
<td>秒级时间戳,WiFi款不支持</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;getKeyConfig&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;mode&quot;: 1,
&quot;uploadEnable&quot;: true,
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>设置按键配置(setKeyConfig)</h2>
<p><strong>简要描述</strong>
设置按键配置。</p>
<p><strong>命令参数</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必须</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>是</td>
<td>string</td>
<td>setKeyConfig</td>
</tr>
<tr>
<td>mode</td>
<td>是</td>
<td>int</td>
<td>按键模式。0-无动作;1-切换开关;2-离线切换开关,联网不动作</td>
</tr>
<tr>
<td>uploadEnable</td>
<td>是</td>
<td>bool</td>
<td>是否上报按键事件</td>
</tr>
<tr>
<td>frameId</td>
<td>否</td>
<td>string</td>
<td>帧ID</td>
</tr>
</tbody>
</table>
<p><strong>命令示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;setKeyConfig&quot;,
&quot;mode&quot;: 1,
&quot;uploadEnable&quot;: true,
&quot;frameId&quot;: &quot;1745396239780&quot;
}</code></pre>
<p><strong>应答参数说明</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>string</td>
<td>setKeyConfig</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>mode</td>
<td>int</td>
<td>按键模式。0-无动作;1-切换开关;2-离线切换开关,联网不动作</td>
</tr>
<tr>
<td>uploadEnable</td>
<td>bool</td>
<td>是否上报按键事件</td>
</tr>
<tr>
<td>frameId</td>
<td>string</td>
<td>同命令frameId</td>
</tr>
<tr>
<td>timestamp</td>
<td>int</td>
<td>秒级时间戳,WiFi款不支持</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;setKeyConfig&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;mode&quot;: 1,
&quot;uploadEnable&quot;: true,
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>重启(reboot)</h2>
<p><strong>简要描述</strong>
远程重启设备。</p>
<p><strong>命令参数</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必须</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>是</td>
<td>string</td>
<td>reboot</td>
</tr>
<tr>
<td>frameId</td>
<td>否</td>
<td>string</td>
<td>帧ID</td>
</tr>
</tbody>
</table>
<p><strong>命令示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;reboot&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;
}</code></pre>
<p><strong>应答参数说明</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>method</td>
<td>string</td>
<td>reboot</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>imei</td>
<td>string</td>
<td>设备imei</td>
</tr>
<tr>
<td>frameId</td>
<td>string</td>
<td>同命令frameId</td>
</tr>
<tr>
<td>timestamp</td>
<td>int</td>
<td>秒级时间戳,WiFi款不支持</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;reboot&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>