Amazon Alexa Flash Briefing
Flash Briefing 技能
从版本 0.31 开始,Home Assistant 支持新的 Alexa Flash Briefing Skills API
需求
亚马逊要求技能的端点通过 SSL 托管。自签名证书是可以的,因为我们的技能仅会在开发模式下运行。有关如何为 Home Assistant 设置加密的更多信息,请参见 我们的博客。使用 Let’s Encrypt 和 Duck DNS 插件是最简单的方法。如果您无法使 HTTPS 正常工作,请考虑使用 这个 AWS Lambda 代理用于 Alexa 技能。
另外,请注意,在撰写本文时,您的 Alexa 技能端点 必须 接受 443 端口的请求(Home Assistant 默认使用 8123)。您可以通过两种方式处理此问题:
- 在路由器中,将外部 443 转发到您的 Home Assistant 服务端口(默认为 8123) OR
- 将您的 Home Assistant 服务端口更改为 443,这在您的
configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件的http
部分中通过server_port
条目完成
在 Home Assistant 中配置 Flash Briefing 技能
您可以使用 [模板] 来配置 title
、audio
、text
和 display_url
参数。
以下是一个 Flash Briefing 技能的示例配置,它会告诉您谁在家:
# 示例 configuration.yaml 条目
alexa:
flash_briefings:
password: YOUR_PASSWORD
whoishome:
- title: 谁在家?
text: >
{%- if is_state('device_tracker.paulus', 'home') and
is_state('device_tracker.anne_therese', 'home') -%}
你们都在家,真傻
{%- else -%}
安妮·特蕾丝在 {{ states("device_tracker.anne_therese") }}
而保罗斯在 {{ states("device_tracker.paulus") }}
{% endif %}
如果您愿意,可以为一个 feed 添加多个条目。亚马逊要求的 UID 和时间戳将在启动时随机生成,并在每次重启 Home Assistant 时更改。
有关允许的配置参数和格式的更多信息,请参考 Amazon 文档
配置您的 Flash Briefing 技能
- 登录到 Amazon 开发者控制台
- 点击“创建 Alexa 技能”按钮
- 点击右上角的蓝色“控制台”按钮
- 点击右上角的淡蓝色“创建技能”按钮
- 技能信息
- 您可以输入您想要的任何名称
- 选择“选择模型”中的“Flash Briefing”
- 点击右上角的“创建技能”
- Flash Briefing
- 输入自定义错误消息,例如“此技能当前不可用。”
- 添加新 feed
- 在前言中输入“来自 Home Assistant”(或您喜欢的任何内容)
- 在名称中输入“Home Assistant”
- 选择内容类型“文本”
- 选择一个类别,例如“其他”
- 在 Feed 中输入
https://YOUR_HOST/api/alexa/flash_briefings/BRIEFING_ID?password=YOUR_PASSWORD
其中BRIEFING_ID
是您在配置中输入的键(例如上面的示例中的whoishome
)。注意: 请勿使用非标准 HTTP 或 HTTPS 端口,AWS 将无法连接。 - 您可以使用这个 特别尺寸的 Home Assistant logo 作为 Feed 图标
- 点击“添加”
- 点击右上角的“保存”
- 测试
- 经过所有验证后到达此屏幕,您现在可以点击“< 返回所有技能”,因为您的 Flash Briefing 现在作为“开发”服务可用。
- 技能信息
- 要调用您的 Flash Briefing,请在您的手机上打开 Alexa 应用程序或访问 Alexa 设置网站
,打开“技能”配置部分,选择“您的技能”,滚动到页面底部,点击刚刚创建的 Flash Briefing 技能,启用它,然后管理 Flash Briefing 并根据需要调整排序。最后请要求您的 Echo 提供您的“新闻”、“Flash Briefing”或“Briefing”。