ThingsBoard + Server酱:设备遥测越界、告警触发推送到微信
效果:ThingsBoard 告警触发时,规则链 REST API Call 节点向 Server酱 发送 HTTP 请求,消息即时推送到微信。
前置条件
- Server酱 SendKey(30 秒获取教程)
- ThingsBoard 实例(社区版或专业版均可),具备规则链编辑权限
- 已有设备接入并产生遥测数据,已配置告警规则
Server酱 支持推送到微信服务号/企业微信/钉钉/飞书等多个通道,详见 /getting-started/channels/。
配置步骤
1. 添加 REST API Call 节点并填写 Endpoint URL
进入 Rule chains,编辑目标规则链,拖入一个 REST API Call 节点,将其连接到告警规则的输出端口。Endpoint URL 填入:
https://sctapi.ftqq.com/你的SENDKEY.send
Server酱³ 用户(SendKey 以 sctp 开头)端点改为:
https://你的UID.push.ft07.com/send/你的SENDKEY.send
UID 是 sctp 与 t 之间的数字。Request method 选择 POST。
2. 设置 Content-Type 为表单格式
在节点配置中设置 Content-Type 为 application/x-www-form-urlencoded,这样 Body 直接用 title=xxx&desp=xxx 格式即可,无需构造 JSON。
3. 编写 Message body
Message body 中用 ${} 引用规则链元数据变量,拼接 title 和 desp 两个字段。最简写法:
title=告警通知&desp=设备触发告警,请及时处理
要插入动态内容,用 ${} 引用规则链中可用的元数据变量(具体变量名以规则链上下文为准):
title=告警通知&desp=设备 ${元数据变量} 触发告警
保存节点并发布规则链。下次告警触发时,消息会自动推送到微信。
完整示例
以下是一个可直接填入 REST API Call 节点的完整配置:
- Endpoint URL:
https://sctapi.ftqq.com/你的SENDKEY.send - Request method:POST
- Content-Type:
application/x-www-form-urlencoded - Message body:
title=告警通知&desp=设备触发告警,请及时登录 ThingsBoard 查看
将该节点连接到告警规则的输出端口,保存并发布规则链即可生效。
常见问题
每天能发多少条消息?
免费额度为每天 5 条,每分钟上限 50 条。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。
告警触发后没收到微信消息?
先在 ThingsBoard 规则链调试中确认 REST API Call 节点是否被执行、HTTP 响应状态码是否为 200。如果节点正常但微信没收到,参考 /getting-started/faq/ 排查 Server酱 侧问题。
高频告警会不会被限流?
Server酱 每分钟上限 50 条。如果设备告警频率较高,建议在 ThingsBoard 规则链中做去重或聚合后再触发推送。
REST API Call 节点返回错误怎么办?
检查 Endpoint URL 中的 SendKey 是否正确、URL 格式是否完整。Server酱 API 返回的 JSON 中 code 为 0 表示成功,非 0 时 message 字段会说明原因。