4.2.12 MQTT通道文件配置

MQTT通道文件配置模板

mqtt开头,表示该文件为MQTT协议通道配置文件。模板请在配置文件模板中下载。

通道参数配置

MQTT通道参数配置如下信息。

  1. 通道名称:字符串类型,可包含中文。
  2. 中继器IP:字符串类型,格式为IPv4地址格式。
  3. 中继器端口:u64类型,用正整数表示。
  4. 测点个数:u64类型,用正整数表示这个通道中测点的个数。
  5. 状态测点号:u64类型,用正整数表示,关联的测点需要为离散量。通过该状态测点号还可以实现“总召唤”功能,详细操作见注。
  6. 读主题:字符串类型,读主题地址。
  7. 写主题:字符串类型,写主题地址。
  8. 登录用户名:可选,mqtt协议用户名。
  9. 登录密码:可选,mqtt协议密码。
  10. 心跳周期:可选,mqtt心跳周期。
  11. 是否Json格式:布尔类型,TRUE则mqtt使用Json格式报文,FALSE则mqtt使用protobuf格式报文。
  12. 是否转发:布尔类型,是否将测点信息自动转发。
  13. 数组提取:字符串类型,配置了数组提取后,会对接收到的json消息进行内容提取再进行过滤匹配。

测点寄存器参数配置

测点寄存器参数配置,可以参见MQTT通道文件测点寄存器参数配置

  1. MQTT通道实现总召唤的方法:

    例如,MQTT转发通道的通信状态测点号设置为“100010”,MQTT接收通道中增加一个可写的点“100010”,对该点写任意数值(并不是真的写入)可以实现“总召唤”的效果,即MQTT转发通道会将通道中的测点值publish一次。

  2. 数组提取示例:

    对于接收到如下Json格式的数据:

    {
        "token":"37476",
        "timestamp":"2025-04-08T07:23:55.000+0800",
        "data row": "single",
        "body":[{
                "name":"tgAFCISelfcheckingFault",
                "val":"0”,
                "quality":"0",
                "index": "NULL","timestamp":"2025-04-08T07:23:55.000+0800'
            },{
                "name":"tgBoxTemp",
                 "val":"0.0",
                 "quality":"0",
                 "index":"NULL",
                 "timestamp":"2025-04-08T07:23:55.000+0800"
            }
            ]
    }
    

    若数组提取配置项内容为body,将会把body整个提出来,再进行后续过滤。

    配置文件示例如下: MQTT数组提取配置示例