General MQTT Client
1.1.驱动设置

- 启用与否:是否启用MQTT采集端
- Client Id:mqtt网络的中的唯一ID
- IP地址:MQTT服务器的地址
- Port:MQTT服务器的端口,需区分是否是SSL/TLS的端口
- Keep Alive:MQTT客户端的保活周期,推荐值60,单位秒
- 协议版本:需要与MQTT网络中运行的协议版本一致
- Clean Session:会话是否保留设置,在客户端断线后,服务器是否会在连接列表中清除客户端的名称

- 用户名:连接MQTT服务器的用户名
- 密码:连接MQTT服务器的密码

- 验证方式:是否启用SSL/TLS验证,请与MQTT服务器配置文件中一致
- TLS协议版本:请与MQTT服务器配置文件中一致
- CA File:CA文件,请选择并上传
- Cert File:Cert文件,请选择并上传
- Key File:Key文件,请选择并上传
秘钥生成步骤,仅供参考(pem格式):
1.直接生成适配 emqx 平台,pem证书的步骤
1.openssl genrsa -out ca.key 2048 -days 3650 #生成ca.key
2.openssl req -x509 -new -nodes -key ca.key -sha256 -out ca.pem -days 3650 #生成ca.pem
2.服务器端相关证书
1.openssl genrsa -out server.key 2048 -days 3650 #生成服务器端的私钥
2.openssl req -new -key ./server.key -out server.csr -days 3650 #生成服务器端的csr文件
3.openssl x509 -req -in ./server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server.pem -sha256 -days 3650 #生成服务器端的pem
3.客户端的相关证书
1.openssl genrsa -out client.key 2048 -days 3650 #生成客户端的私钥
2.openssl req -new -key ./client.key -out client.csr -days 3650 #生成客户端的csr文件
3.openssl x509 -req -in ./client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem -sha256 -days 3650 #生成客户端的pem
4.一些命名上的修改,需要与EMQ配置文件进行统一
将 server.pem key.pem
将 server.crt cert.pem
将 ca.pem cacert.pem
将 client.pem client-cert.pem
将 client.key client-key.pem

- 遗嘱主题:MQTT客户端断开时,接受遗嘱信息的主题
- Qos:遗嘱消息的消息级别
- Retained:是否在该主题中,保留最此消息
- 遗嘱内容:具体发送到主题中的消息,标识着网关已离线
1.2.设备属性设置

- 启用与否:是否启用该主题下的侦听
- 主题:接受MQTT实时数据主题
- 请勿使多个网关同时侦听同一个主题,可能会造成MQTT网络、网关内部数据解析运行效率低
- QOS:推荐使用"Qos 1 至少一次"
侦听主题支持使用#,但使用时,请注意下面规则:
当侦听主题使用#时,请确保"仅有1条相似主题使用#",否则会造成"匹配失败"
允许情形:
网关侦听: /test/topic1/#
发送 /test/topic1/device/id1
禁止情形:
网关侦听: /test/topic1/# /test/topic1/device/#
发送: /test/topic1/device/id1
1.3.采集标签配置

- 名称:设置采集标签的名称,将和组名形成唯一的标签
- 寄存器类型:固定为"只读字符串"
- 数值转换倍率:允许对原值进行浮点数的运算,默认值1不修改原值
侦听指定主题中下述格式的数据,根据Vtype字段,从Val取出值
- Client:网关在MQTT网络中的客户端ID
- Id:该网关下名称唯一的标签,由组名_点名组成
- Vtype:可选只要有"num"和"str"
- Val:
- 当Vtype字段的值为"str"时,Val字段的值应为"字符串"
- 当Vtype字段的值为"num"时,Val字段的值应为数值
[
{
"Client": "id1",
"Id": "Group1_Tag1",
"Vtype": "num",
"Val": 1781
},
{
"Client": "id1",
"Id": "Group1_Tag2",
"Vtype": "str",
"Val": "hello"
}
]