前言
(1)本文上一篇《使用docker安装tdengine,创建挂载目录_鲸鱼姐的博客-CSDN博客》文章已创建数据库表test.plc_data
(2)已完成emqx安装《emqx安装及mqttx连接使用_鲸鱼姐的博客-CSDN博客_emqx连接mqtt》
一. 新建资源
登录emqx,点击规则引擎—》资源菜单,新建资源,选择资源类型为webhook。
(1)请求URL是http://tDengine的服务器IP:6041/rest/sql
请求方式为post
(2)需添加 Authorization 请求头作为认证信息。
Authorization 的值为 Basic + TDengine 的 {username}:{password}
经过 Base64 编码之后的字符串, tDengin的默认账户和密码是 root:taosdata
编码后为 cm9vdDp0YW9zZGF0YQ==
,实际填入的值为:Basic cm9vdDp0YW9zZGF0YQ==
(3)填写完成后,单击测试连接查看是否填写正确。
二 新建规则引擎
(1)点击规则引擎—》规则—新建,填写如下,获取plc/data主题内容
SELECT
payload
FROM
"plc/data"
(2)添加响应
在响应动作栏目下新建响应
选择动作为发送数据到web服务,关联资源为上一步新建的资源,添加消息模版内容
模版内容如下,数据库表为test库中的plc_data
INSERT INTO test.plc_data VALUES(
now,
${payload.plc1},
${payload.plc2},
${payload.plc3},
${payload.plc_id},
${payload.plc4}
)
三. 测试验证emqx规则
(1)使用emqx的websocket工具,连接emqx的mqtt服务
(2)给plc/data主题发送消息,消息内容如下
{ "plc1": "22.1", "plc2": "22.3", "plc3": "22.4", "plc_id": "22.5", "plc4": "222" }
(3)在tDengine数据库里查看发送结果,显示成功
注意:消息内容的字段和payload字段需对应,否则会投递失败