EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据

参考文章

本篇博客是基于EMQX企业版,企业版自带持久化数据到MySQL等数据库的插件,实现存贮数据比较方便,但考虑到企业版价格相对贵(特别是对学生党而言),所以我写了另一篇关于使用EMQX免费开源版的同样实现保存消息到MySQL的博客EMQX webhook保存消息到MySQL

首先在MySQL数据库创建对应的数据库,表格。
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第1张图片
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第2张图片
然后进入emqx服务器的控制台,就是dashboard,进入资源,创建资源
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第3张图片
连接成功后,到规则里去创建新规则,过滤出我们需要的temp温度数据,规则sql的意思是从负载payload中把键msg的值赋值给将要发送的json数据的temperature对应的值中
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第4张图片
接下来是触发动作,也就是把数据存入表格sensor里对应的位置,把temperature的值写入sensor表中对应的temp项,注意下图中的sensor的标点是` ,也就是键盘esc键下面那个键,注意不要看成 ' ,否则会新建出错
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第5张图片
点击确认后就可以测试了,启动websocket,先连接上emqx服务器,订阅temp主题,再向temp主题发送{‘msg’:‘26摄氏度’}的消息。
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第6张图片
然后在规则里我们可以看到该规则已经被命中一次,也触发相应的动作,详细的信息:
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第7张图片
究竟有木有保存到数据库中,耳听为虚眼见为实,我们还是要到数据库去看一看的。
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第8张图片
可以看到我们的数据库里确实保存了刚刚发送的消息26摄氏度,大功告成!

更新数据到数据库前面的操作和保存的操作基本一致,只在添加动作这个地方有点不一样

如官网所示,注意语法 `
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第9张图片
EMQX 规则引擎 简单实现将8266消息保存到MySQL数据库以及更新数据_第10张图片

你可能感兴趣的:(mysql)