把 iPhone 短信发到 Home Assistant
作者:Fwrd · · 更新于
要把 iPhone 短信发到 Home Assistant,请给一个自动化设置 Webhook 触发器,通过 Home Assistant Cloud 或你自己的域名为它获取一个 HTTPS 地址,再让“快捷指令”的“信息”自动化把每条新短信发布到这个地址。Home Assistant 会把短信读作 trigger.json,所以来自报警器的短信可以打开一盏灯,或让音箱播报快递到了。
你需要: 接收短信的 iPhone、一台 Home Assistant 服务器,以及它的 HTTPS 地址,可以通过 Home Assistant Cloud(Nabu Casa)获得,也可以用你自己的域名和反向代理。要使用 Fwrd,还需要 iOS 26 或更高版本。
短信如何到达 Home Assistant?
通过 Webhook。没有哪个 App 能自己读取你的短信,所以由“快捷指令”自动化把每条符合条件的短信交给一个操作,由它发布到 Home Assistant 的 Webhook 地址。
Home Assistant 的自动化触发器文档(2026 年 10 月 18 日阅读)说明,地址是 /api/webhook/ 加上你的 Webhook ID,并且在触发器里设置 ID 之后就会立即创建。文档还说明,只要请求以 application/json 发送(Fwrd 正是这样做的),发给它的 JSON 就可以作为 trigger.json 使用。
如何把 iPhone 短信发到 Home Assistant
创建自动化。 在 Home Assistant 中,前往“Settings”>“Automations & scenes”>“Create automation”>“Create new automation”。在“When”部分,选取“Add trigger”,添加一个“Webhook”触发器,保持“Webhook ID”不变。
选择 iPhone 如何连接到它。 Home Assistant 的文档说明,Webhook 默认只响应同一网络中的设备,或 Nabu Casa Cloud 的 Webhook。如果使用 Home Assistant Cloud,请保持“Only accessible from the local network”处于打开状态。如果使用你自己的域名或反向代理,请选取“Webhook ID”旁边的齿轮图标并把它清除,因为你的 iPhone 无论在哪里都会发布请求。
获取 HTTPS 地址。 使用 Home Assistant Cloud 时,保存自动化,前往“Settings”>“Cloud”,向下滚动到 Webhook 卡片,选取你那个 Webhook 旁边的“Manage”。Nabu Casa 的 Webhook 文章(2026 年 10 月 18 日阅读)说明,对话框会显示它唯一的 URL。使用你自己的域名时,地址是
https://、你的域名、/api/webhook/和 ID 依次连起来。在 Fwrd 中添加 Webhook 目标。 打开 Fwrd,轻点 +,选取“Webhook”。把完整的 HTTPS 地址粘贴到“配置”中。轻点“发送测试信息”,然后用 ✓ 保存。
在“快捷指令”中创建“信息”自动化。 在 iOS 27 上,打开“快捷指令”,轻点“资料库”,再轻点“自动化”,然后轻点 +,选取“信息”。在 iOS 26 上,打开“自动化”标签页,轻点 +,然后选取“信息”。选取“信息包含”,输入你的短信共有的一个词,例如 alarm。
让它不经询问直接运行。 在 iOS 27 上,轻点触发条件旁边的箭头,检查“运行前确认”是否已关闭。在 ⓘ 下的“隐私”中,检查“锁定时允许运行”是否已打开。在 iOS 26 上,选取“立即运行”,然后轻点“下一步”和“创建新快捷指令”。
添加 Fwrd 的操作。 搜索“转发”,添加“转发信息到所有目标”。把它的“信息”设为“输入快捷指令的信息”(在 iOS 26 上,依次选取“输入快捷指令的信息”和“信息”)。轻点返回以保存(在 iOS 26 上轻点“完成”)。
这就完成了。 包含你的词的新短信现在会自动发到 Home Assistant,无论 iPhone 是否锁屏。
Webhook 指南列出了 Fwrd 的每个屏幕,把 iPhone 短信转发到 Webhook 完整介绍了这个请求。
这个自动化的 YAML 是什么样子?
Fwrd 的请求体是 {"content": "…", "text": "…"},两个字段里都是原样的短信,所以自动化读取 trigger.json.content。下面这个自动化会在短信提到 alarm 时打开门廊的灯:
alias: Alarm text turns on the porch light
triggers:
- trigger: webhook
webhook_id: "a-long-random-id-only-you-know"
allowed_methods:
- POST
local_only: false # only needed without Home Assistant Cloud
conditions:
- condition: template
value_template: "{{ 'alarm' in trigger.json.content | lower }}"
actions:
- action: light.turn_on
target:
entity_id: light.porch
把操作换成音箱播报,快递员发来的“正在派送”短信就能告诉全家包裹快到了。在 Fwrd 的“设置”中打开“附上发件人”,并填好 Fwrd 操作上的“发件人”栏,请求体里还会多一个 sender 字段,你可以用 trigger.json.sender 读取它。
Fwrd 为 Webhook 增加了什么?
Fwrd 的 Webhook 目标负责发布,所以自动化只有一个操作:
- 筛选条件。 Webhook 目标可以只保留含有你指定词语的短信、看起来像验证码的短信,或者在特定时段收到的短信。“试一条短信”会用示例来检查筛选条件。被筛选条件跳过的短信不占用免费转发次数。
- 一条短信,发到多个地方。 同一个操作可以同时把短信发到 Home Assistant 和 Slack、Discord、Telegram 或 Teams 上的家庭聊天。
- 重试而不重复。 如果发送超时或服务器繁忙,Fwrd 最多会再试两次,每次都带相同的
Idempotency-Key头部。 - 地址保持私密。 Fwrd 把 URL 保存在 iPhone 的钥匙串里,而不是放在“快捷指令”中。没有 Fwrd 账户,也没有 Fwrd 服务器;每条短信都从你的 iPhone 直接发到 Home Assistant。
- iPhone 上的记录。 它会显示每次转发,以及 Home Assistant 是否接受了它。
需要了解的限制
- Webhook ID 就是密码。 Home Assistant 的文档说明,Webhook 不需要其他登录,所以请使用足够长、无法猜到的 ID,并保密。Fwrd 不会添加登录头部。
- 不要用它来开锁。 同一份文档提醒,不要用 Webhook 自动化去打开门锁或车库门。灯、音箱和通知更合适。
- Fwrd 需要公开的 HTTPS 地址。 它会拒绝 IP 地址和以 .local 结尾的名称,也不接受重定向,所以请粘贴最终的地址。云端 Webhook URL 需要订阅 Home Assistant Cloud。
- 手机必须保持开机并联网。 只有符合自动化条件的新短信才会发送,重新启动之后,转发要等到你解锁一次 iPhone 才会继续。
大家接下来常问的问题
Home Assistant 能读取短信本身吗?
能。Fwrd 在 content 和 text 中发送完整的短信,所以像 trigger.json.content 这样的模板里就有它。你可以在条件里匹配词语,把短信放进通知,或让音箱把它读出来。
我需要 Home Assistant Cloud 吗?
不需要。任何能到达你服务器的 HTTPS 地址都可以,例如反向代理后面你自己的域名。Home Assistant 的远程访问页面(2026 年 10 月 18 日阅读)称 Home Assistant Cloud 是最简单的选择,不需要在路由器上开放端口。
我不在家时能用吗?
能,通过 Home Assistant Cloud 的 Webhook URL,或者在关闭“Only accessible from the local network”之后,通过你自己的公开 HTTPS 域名。iPhone 通过 Wi-Fi 或蜂窝数据发布请求,无论它在哪里。
Fwrd 要花多少钱?
Fwrd 每月有 15 条免费转发,同一条短信无论发到几个地方都只算一次。Fwrd Pro 取消次数限制,美国售价为每月 $4.99 或每年 $29.99。
想让短信启动 Home Assistant 自动化?
Fwrd 在“快捷指令”里只加一个操作,就会把每条符合条件的短信以 JSON 发到你的 Home Assistant Webhook。不需要账户。每月先有 15 条免费转发。
每月 15 条免费转发。Fwrd Pro 取消转发和筛选条件的上限,并增加“永不转发”列表,每月 $4.99 或每年 $29.99,符合条件的客户在年度订阅上可享 7 天免费试用。
iPhone · iOS 26 或更高版本