ESPHome + pushplus:设备事件推到微信
效果:开发板走到
on_触发器后,自己 POST 一条 JSON,微信收到开门、漏水或按键事件。
在 YAML 里用 http_request.post。设备固件里没有 pushplus 专用组件。
前置条件
- 一个 pushplus token(官网扫码获取)
- 设备已能连网并编译带
http_request的固件
配置步骤
- 在 ESPHome 配置中启用 HTTP 客户端,并在事件里 POST JSON:
http_request:
binary_sensor:
- platform: gpio
pin: GPIO0
name: "Demo Button"
on_press:
then:
- http_request.post:
url: https://www.pushplus.plus/send
request_headers:
Content-Type: application/json
json:
token: !secret pushplus_token
title: ESPHome 按键
content: 按钮已按下
template: markdown
- 把 token 放进
secrets.yaml的pushplus_token,不要写进会公开的 YAML。 - 同样写法可用于
on_boot、on_click、on_value、on_multi_click等。content必填。 - 新版本字段名可能是
headers而不是request_headers,以你使用的 ESPHome 文档为准。 - 编译烧录后按一次按键。设备 DNS / 防火墙需放行
www.pushplus.plus。
完整字段见 消息接口。与 Home Assistant 联动时,也可以只在 HA 侧推送,见 Home Assistant。
验证
curl -X POST "https://www.pushplus.plus/send" \
-H "Content-Type: application/json" \
-d '{"token":"你的token","title":"ESPHome 配置测试","content":"token 可用","template":"markdown"}'
常见问题
编译过了但没推? 看设备日志里 http_request 的状态码;返回 JSON 的 code 应为 200。额度见 收不到消息、接口限制。
GPIO 抖动连发? 加 delayed_on / 软件滤波,或在 HA 里做冷却。