开关基础命令
<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="red"><strong>&times;</strong></font></td>
<td><font color="green"><strong>&radic;</strong></font></td>
<td><font color="red"><strong>&times;</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>插槽开关动作(action)</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>action</td>
</tr>
<tr>
<td>slotNum</td>
<td>是</td>
<td>int</td>
<td>插槽编号,从1开始。0表示所有插槽开关</td>
</tr>
<tr>
<td>action</td>
<td>是</td>
<td>string</td>
<td>开关动作。on-打开;off-关闭;toggle-翻转</td>
</tr>
<tr>
<td>hasStopDelayTask</td>
<td>否</td>
<td>bool</td>
<td>是否停止延时任务。true-是;false-否</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;action&quot;,
&quot;slotNum&quot;: 1,
&quot;action&quot;: &quot;on&quot;,
&quot;hasStopDelayTask&quot;: false,
&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>action</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>slots</td>
<td>array</td>
<td>插槽状态int数组,按顺序从插槽1到插槽n,子项值:0-关闭;1-打开</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;action&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;slots&quot;: [0],
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>多插槽开关动作(actions)</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>actions</td>
</tr>
<tr>
<td>slotNums</td>
<td>是</td>
<td>array</td>
<td>插槽编号数组,子项值从1开始。</td>
</tr>
<tr>
<td>action</td>
<td>是</td>
<td>string</td>
<td>开关动作。on-打开;off-关闭;toggle-翻转</td>
</tr>
<tr>
<td>hasStopDelayTask</td>
<td>否</td>
<td>bool</td>
<td>是否停止延时任务。true-是;false-否</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;actions&quot;,
&quot;slotNums&quot;: [1,3,4],
&quot;action&quot;: &quot;on&quot;,
&quot;hasStopDelayTask&quot;: false,
&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>actions</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>slots</td>
<td>array</td>
<td>插槽状态int数组,按顺序从插槽1到插槽n,子项值:0-关闭;1-打开</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;actions&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;slots&quot;: [0],
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>获取延时任务列表(getDelayTasks)</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>getDelayTasks</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;getDelayTasks&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>getDelayTasks</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>tasks</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>tasks数组对象说明</li>
</ul>
<table>
<thead>
<tr>
<th>key</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>enable</td>
<td>bool</td>
<td>是否启用,true-是;false-否</td>
</tr>
<tr>
<td>sAction</td>
<td>string</td>
<td>开关开始动作。on-打开;off-关闭;toggle-翻转</td>
</tr>
<tr>
<td>eAction</td>
<td>string</td>
<td>开关延时结束动作。on-打开;off-关闭;toggle-翻转</td>
</tr>
<tr>
<td>secs</td>
<td>int</td>
<td>延时秒数</td>
</tr>
<tr>
<td>cnt</td>
<td>int</td>
<td>当前计数秒数</td>
</tr>
</tbody>
</table>
<p><strong>应答示例</strong></p>
<pre><code>{
&quot;method&quot;: &quot;getDelayTasks&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;tasks&quot;: [
{
&quot;cnt&quot;: 7,
&quot;eAction&quot;: &quot;toggle&quot;,
&quot;sAction&quot;: &quot;none&quot;,
&quot;secs&quot;: 100,
&quot;enable&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>开始延时任务(startDelayTask)</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>startDelayTask</td>
</tr>
<tr>
<td>slotNum</td>
<td>是</td>
<td>int</td>
<td>插槽编号,从1开始。0表示所有插槽开关</td>
</tr>
<tr>
<td>enable</td>
<td>是</td>
<td>bool</td>
<td>是否启用,true-是;false-否</td>
</tr>
<tr>
<td>sAction</td>
<td>是</td>
<td>string</td>
<td>开关开始动作。on-打开;off-关闭;toggle-翻转;none-无动作</td>
</tr>
<tr>
<td>eAction</td>
<td>是</td>
<td>string</td>
<td>开关延时结束动作。on-打开;off-关闭;toggle-翻转</td>
</tr>
<tr>
<td>secs</td>
<td>是</td>
<td>int</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;startDelayTask&quot;,
&quot;slotNum&quot;: 1,
&quot;sAction&quot;: &quot;none&quot;,
&quot;secs&quot;: 100,
&quot;eAction&quot;: &quot;toggle&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>startDelayTask</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;startDelayTask&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>
<h2>停止延时任务(stopDelayTask)</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>stopDelayTask</td>
</tr>
<tr>
<td>slotNum</td>
<td>是</td>
<td>int</td>
<td>插槽编号,从1开始。0表示所有插槽开关</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;stopDelayTask&quot;,
&quot;slotNum&quot;: 1,
&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>stopDelayTask</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;stopDelayTask&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>
<h2>延时任务事件上报(delayEvent)</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>delayEvent</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。ok-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>slotNum</td>
<td>是</td>
<td>int</td>
<td>插槽编号,从1开始</td>
</tr>
<tr>
<td>slots</td>
<td>array</td>
<td>插槽状态int数组,按顺序从插槽1到插槽n,子项值:0-关闭;1-打开</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;delayEvent&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;slotNum&quot;: 1,
&quot;slots&quot;: [0],
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>
<h2>获取电量计实时信息(getEMRealtime)</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>getEMRealtime</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;getEMRealtime&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>getEMRealtime</td>
</tr>
<tr>
<td>result</td>
<td>string</td>
<td>返回结果。<code>ok</code>-成功;其他-具体失败原因</td>
</tr>
<tr>
<td>data</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>data</code>数组对象说明</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</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;method&quot;: &quot;getEMRealtime&quot;,
&quot;result&quot;: &quot;ok&quot;,
&quot;data&quot;: [
{
&quot;v&quot;: 0.018,
&quot;p&quot;: 0,
&quot;c&quot;: 0
}
],
&quot;imei&quot;: &quot;1745396239780&quot;,
&quot;frameId&quot;: &quot;1745396239780&quot;,
&quot;timestamp&quot;: 1745396759
}</code></pre>
<p><strong>备注</strong>
无</p>