EMQX + Server酱:MQTT 消息推送到微信
效果:EMQX 规则引擎匹配到指定 MQTT 消息时,自动推送到微信
前置条件
- 获取 Server酱 SendKey:30 秒获取教程
- 已部署运行 EMQX,且有客户端正在向其发送 MQTT 消息
配置步骤
在 EMQX Dashboard 中,通过数据集成创建 HTTP 桥接与规则,将消息路由到 Server酱。
1. 创建 HTTP 桥接
进入 数据集成 → 创建 HTTP 桥接(Webhook),填写以下配置:
- 请求方法:POST
- URL:
https://sctapi.ftqq.com/你的SENDKEY.send - Content-Type:
application/x-www-form-urlencoded - 请求体(Body):
title=EMQX告警&desp=${payload}
(如果使用 Server酱³,URL 端点改为 https://你的UID.push.ft07.com/send/你的SENDKEY.send,UID 取自 sctp 后的数字)
2. 创建规则
创建一条规则,从目标 Topic 提取数据并关联到上一步的桥接。
- SQL 语句:
SELECT payload FROM "your/topic"
将 "your/topic" 替换为你实际需要监听的 MQTT 主题。payload 变量将作为消息正文传递给桥接的 ${payload}。
- 动作:在规则详情中添加动作,选择刚刚创建的 HTTP 桥接。
配置完成后,当 your/topic 收到消息时,EMQX 会自动向 Server酱发送请求。
完整示例
以下是一个简单的配置示例,将 device/alert 主题的消息推送到微信。
规则 SQL:
SELECT payload FROM "device/alert"
桥接 Body 模板:
title=设备告警&desp=${payload}
常见问题
免费额度是多少?
免费额度为每天 5 条。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。
配置后消息没收到?
检查 EMQX 规则引擎的触发记录和错误日志(具体查看方式请参考 EMQX 官方文档)。同时参考 常见问题与排查 检查 SendKey 是否正确。
发送频率有限制吗?
API 每分钟上限为 50 条。如果 MQTT 消息频率极高,建议在规则 SQL 中增加条件过滤,或在业务端做聚合,避免触发频率限制。