1. pusher脚本说明

1.1. 文档说明

1.2. 修订记录

日期 版本 说明 编写
2020-12-11 1.0 R1 Pusher脚本规范 cdp

1.3. 格式规范

1.3.1. 二维json数组

每一行为一个映射关系,可以同时存在多行。例:

[
    ["Control_01", "Set Temperature", "设置温度", "OBJ", "$AprusID-1.L1_2_123", ""],
    ["Control_02", "Device Boot", "设备开机", "OBJ", "$AprusID-1.L1_2_234", "1"],
    ["Control_03", "Device Shutdown", "设备关机", "OBJ", "$AprusID-1.L1_2_345", "0"],
    ["AXUpgrade", "Aprus Upgrade", "适配器升级", "APR", "$AprusID-1", ""],
    ["Reboot", "Aprus Reboot", "适配器重启", "APR", "$AprusID-1", ""]
]

1.3.2. 行说明

一行有6个字段,用于保存对象和下发指令的关系。

1.3.3. 控制指令

第一个字段,控制指令。控制指令分为两种:自定义指令,保留指令。保留指是针对终端的预定义指令。用于匹配接收到的控制指令,并转成对应的mqtt报文。

保留命令 中文说明 备注
Reboot 重启终端的指令
Diag 终端自检的指令
Upgrade A2,A3使用ftp升级的指令 暂不支持
AXUpgrade AX使用ftp,http升级的指令 -

1.3.4. 英文标签

第二个字段,控制指令所对应的英文标签。

1.3.5. 中文标签

第三个字段,控制指令所对应的中文标签。

1.3.6. 控制类型

第四个字段,分别OBJ,APR,用于将确定控制指令所操作的具体对象。

变量类型 中文说明 备注
OBJ 对象控制 下发指令到对象所对应的终端的对应key
APR 终端控制 下发指令到对象所对应的终端

1.3.7. 控制点位

第五个字段,控制点位,用于指定下发指令的具体终端和点位。

控制类型 例子 说明
OBJ $AprusID-1.L1_2_3456 下发指令到对象所对应的第1个终端的L1_2_3456点位
OBJ $AprusID-2.L1_2_3456 下发指令到对象所对应的第2个终端的L1_2_3456点位
OBJ A32017051300249.L1_2_3456 下发指令到对象所对应的A32017051300249的L1_2_3456点位
APR $AprusID-1 下发指令到对象所对应的第1个终端
APR A32017051300249 下发指令到对象所对应的A32017051300249
APR $AprusID-1.L1_2_3456 下发指令到对象所对应的第1个终端

1.3.8. 控制值

第六个字段,默认控制值。默认当没有接收到控制值时,使用该控制值下发指令。

控制指令 控制值 说明
Reboot 不需要控制值
AXUpgrade LUA/MCU LUA或者MCU的任意一个,不支持其他的输入
Control 有输入控制值时,使用控制值,否则使用脚本中的该控制值

1.4. 使用说明及示例

1.4.1. 推送接口

1.4.1.1. 单指令发送

请求地址:

属性
URL /api/v1/publish
Method post
Content-Type application/json

请求参数:

参数名称 是否必选 数据类型 数据约束 示例数据 描述
object_id int int(11) --- 对象编号
command string varchar(64) --- 控制指令
value string varchar(64) --- 控制值

响应参数:

参数名称 是否必选 数据类型 描述
code int 返回码
msg string 提示消息
info string 详细信息
result object 返回结果

请求示例

curl -H "Content-Type: application/json" -X POST -d '{
    "project_id": 1,
    "object_id": 1,
    "command": "Control_01",
    "value": "1",
}' "https://xxx.mixiot.top/pusher/api/v1/publish"

返回示例:

{
    "code": 200,
    "msg": "成功"
}

1.5. 指令发送示例

object的编号为:1001

对应terminal_list为:A1,A2

对应的control_id为:1001

编号为1001的control的脚本如下:

[
    ["Control_01", "Set Temperature", "设置温度", "OBJ", "$AprusID-1.L1_2_123", ""],
    ["Control_02", "Device Boot", "设备开机", "OBJ", "$AprusID-2.L1_2_234", "1"],
    ["Control_03", "Device Shutdown", "设备关机", "OBJ", "$AprusID-1.L1_2_345", "0"],
    ["AXUpgrade", "Aprus Upgrade", "适配器升级", "APR", "$AprusID-1", ""],
    ["Reboot", "Aprus Reboot", "适配器重启", "APR", "$AprusID-1", ""]
]

启动不做限制pusher的项目:1001

project_id object_id command value 主题 指令 说明
1001 1001 Control_01 p2p/A1 {"Act":"Control","L1_2_123":""} ---
1001 1001 Control_02 p2p/A2 {"Act":"Control","L1_2_234":"1"} ---
1001 1001 Control_02 2 p2p/A2 {"Act":"Control","L1_2_234":"2"} ---
1001 1001 Reboot p2p/A1 {"Act":"Reboot"} ---
1001 1001 AXUpgrade LUA p2p/A1 {"Act":"AXUpgrade","Unit":"LUA"} ---
1001 1001 AXUpgrade MCU p2p/A1 {"Act":"AXUpgrade","Unit":"MCU"} ---
1002 1001 Control_03 项目1002没有启动,不会发送指令
1001 1002 Control_03 2 对象1002没有control脚本,不发送指令
1001 1001 Control_04 2 对象1001没有Control_04指令,不发送指令
2 项目编号,对象编号,指令,缺一不可

关于控制指令为AXUpgrade和Upgrade升级指令的特别说明。

Upgrade暂时不支持。

AXUpgrade指令会根据value升级指定的终端模块。升级的模块为LUA或者MCU。同时指令中除了会有上述的{"Act":"AXUpgrade","Unit":"LUA"}外,还有额外的{"URL":"","User":"","Pwd":""}。

也就是当控制指令为AXUpgrade时,指令为

{
  "Act": "AXUpgrade",//指令
  "Unit": "LUA",     //模块
  "URL": "",         //下载链接,支持ftp和http
  "User": "",         //ftp用户名,http链接时填空
  "Pwd": ""             //ftp密码,http链接时填空
}
© Mixlinker all right reserved,powered by Gitbook文件修订时间: 2021-03-05 16:09:24

results matching ""

    No results matching ""