# ESPHome 接入 Server酱：ESP 设备告警推送到微信（2026 教程）

> 通过 ESPHome 的 http_request 组件发送 Webhook，将传感器越界或按钮触发等设备事件实时推送到微信，附 YAML 配置示例。

- 网页版：https://sct.ftqq.com/docs/integrations/esphome/
- 更新日期：2026-07-17

# ESPHome + Server酱：ESP 设备告警推送到微信

> 效果：ESPHome 设备触发自动化时，通过 http_request 组件将告警消息推送到微信

## 前置条件

- **Server酱 SendKey**：登录 sct.ftqq.com，在「SendKey」页面复制（[30 秒获取教程](https://sct.ftqq.com/docs/getting-started/sendkey/)）。如需推送到企业微信/钉钉/飞书群，请查看 [通道对比](https://sct.ftqq.com/docs/getting-started/channels/)。
- **ESPHome 环境**及已配网的 ESP 设备。
- **TLS 支持**：ESP 走 HTTPS 需确保固件启用 TLS（推荐使用 esp-idf 框架，或在 Arduino 框架下配置 CA 证书）。

## 配置步骤

在 ESPHome 的 YAML 配置中添加 `http_request` 组件，并在自动化（`on_...`）里使用 `http_request.post` 调用 Server酱 API。

1. 在配置中启用 `http_request` 组件：

```yaml
http_request:
```

2. 在您的自动化（如传感器触发、按钮按下等）中调用 `http_request.post`，body 需以 form 格式传递 `title` 和 `desp`。具体配置方法请查阅 ESPHome 官方文档。

```yaml
# 示例：在自动化中调用 http_request.post
# on_...:
#   then:
#     - http_request.post:
#         url: "https://sctapi.ftqq.com/你的SENDKEY.send"
#         # body 需以 form 格式发送 title 和 desp
#         # 具体配置方法请查阅 ESPHome 官方文档
```

若使用 Server酱³，API 端点改为 `https://你的UID.push.ft07.com/send/你的SENDKEY.send`（UID 取自 sctp 后的数字）。

## 完整示例

以下为包含 `http_request` 组件与 API 调用的 YAML 片段，请根据实际触发条件调整并替换 `你的SENDKEY` 后使用：

```yaml
http_request:

# 示例自动化（触发条件请根据实际硬件修改）
# on_...:
#   then:
#     - http_request.post:
#         url: "https://sctapi.ftqq.com/你的SENDKEY.send"
#         # body 需以 form 格式发送 title 和 desp
#         # 具体配置方法请查阅 ESPHome 官方文档
```

如需将传感器动态数值拼进 `desp`，可在自动化动作中使用 ESPHome 的模板语法拼接字符串（具体语法以 ESPHome 官方文档为准）。

## 常见问题

**ESP 设备请求 HTTPS API 报错怎么办？**
ESP 走 HTTPS 需确保固件启用 TLS。推荐使用 esp-idf 框架，或在 Arduino 框架下配置 CA 证书，否则请求会被拒绝。

**消息没收到怎么排查？**
检查 ESPHome 日志中 HTTP 请求的返回状态码，确认 SendKey 是否正确。也可参考 [常见问题与排查](https://sct.ftqq.com/docs/getting-started/faq/)。

**发送频率和额度有什么限制？**
Server酱免费版每天有 5 条额度，每分钟上限 50 条。订阅会员目前特价最低 3 元/月，一天最多可发 1000 条（[价格详情](https://sct.ftqq.com/subscribe)）。请避免在自动化中高频触发。

**如何把传感器数值拼进消息正文？**
在 `on_...` 自动化动作中，可通过 ESPHome 的模板语法将传感器状态拼接到 `desp` 字段中（具体语法以 ESPHome 官方文档为准）。

## 相关集成

- [/integrations/uptime-kuma/](https://sct.ftqq.com/docs/integrations/uptime-kuma/) —— Uptime Kuma 宕机告警
- [/integrations/qinglong/](https://sct.ftqq.com/docs/integrations/qinglong/) —— 青龙面板任务通知
- [/integrations/python/](https://sct.ftqq.com/docs/integrations/python/) —— Python 脚本推送


## 懒人方案：把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手，它就会替你完成 Server酱 的接入：

```text
请帮我把 Server酱 微信通知接入到我当前的项目/工具中：
1. API：POST https://sctapi.ftqq.com/{SendKey}.send，参数 title（必填，不能含换行）、desp（正文，支持 Markdown，可选）；成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头，则改用 https://{uid}.push.ft07.com/send/{SendKey}.send，uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取；如果没有，提醒我到 https://sct.ftqq.com 免费获取（每天 5 条额度）。
4. 安全要求：不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定：任务结束发 1 条结果摘要即可，批量任务合并成一条，不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。
```

