Home Assistant 的 OpenWeatherMap 分钟级降水预报 Action 实战指南
发布时间:2026/9/17 14:50:48 锦皓数字建站

Home Assistant 的 OpenWeatherMap 分钟级降水预报 Action 实战指南【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本文以 Home Assistant 官方文档仓库中的source/_actions/openweathermap.get_minute_forecast.markdown为核心系统讲解openweathermap.get_minute_forecast动作action的调用前提、UI 与 YAML 两种配置方式、响应数据结构并结合仓库内脚本与自动化文档给出模板化消费响应数据的完整示例。读完本文你可以在自动化或脚本中按分钟读取未来一小时内降水预报实现雨前自动关窗浇灌决策出门带伞提醒等实战场景。这个动作解决什么问题openweathermap.get_minute_forecast用于从 OpenWeatherMap 获取未来一小时逐分钟的降水雨或雪预报。它的典型应用包括决定是否启动花园洒水器例如未来 60 分钟内有降水就跳过浇灌在降雨到达前给自己发送提醒例如提前通知收衣服、关窗户为后续自动化提供逐分钟降水趋势判断依据。该动作通过响应数据response data返回结果返回值为未来 60 分钟内每一分钟的预报降水或降雪量适合结合 模板处理响应数据 使用。调用前提集成模式必须为 v3.0{% important %} 分钟级预报仅在 OpenWeatherMap 集成的模式mode设置为v3.0时可用。若集成模式为current、forecast或air_pollution调用该动作会失败。 {% endimportant %}OpenWeatherMap 集成支持两类服务与多种模式详见 集成文档One Call API 3.0模式v3.0提供当前天气、48 小时逐小时预报与 8 天逐日预报是唯一支持分钟级预报的模式Free 服务模式current仅当前天气、forecast每 3 小时一步、共 5 天预报、air_pollution当前空气质量均不提供分钟级预报。因此在使用本动作前请先在 OpenWeatherMap 网站上激活 One Call API 3.0 订阅免费额度为每天 1000 次调用可在 Billing plans 页面设置每日调用上限以避免超量计费然后在 Home Assistant 的集成配置中选择模式v3.0。需要注意新注册的 API Key 激活可能需要 10 分钟到 2 小时且订阅激活最长可能需要 2 小时如果 API Key 与所选服务不匹配One Call 3.0 与 Free 混用会报 Invalid API-key 错误。通过 UI 调用该动作如果你习惯可视化地创建自动化或脚本Home Assistant 会逐步引导你完成该动作的配置无需编写 YAML。具体步骤如下进入设置自动化与场景Automations scenes打开一个已有的自动化或脚本或选择创建自动化创建新自动化若是新建自动化在When触发条件部分添加触发器脚本不需要触发器它们在被其他流程调用时运行在Then do执行动作部分选择添加动作在搜索框中搜索并选择OpenWeatherMap: Get minute forecast选择要获取预报的 OpenWeatherMap 天气实体weather entity在Response variable响应变量字段中填写一个名称用于存储返回数据例如weather_forecast点击保存。该动作在 UI 中除了目标target之外没有任何其他可配置选项。在 YAML 中调用该动作在自动化或脚本的 YAML 中动作名称为openweathermap.get_minute_forecast。因为它会返回数据所以需要将结果存入响应变量response variable。基本示例action: | action: openweathermap.get_minute_forecast target: entity_id: weather.openweathermap response_variable: weather_forecast该动作在 YAML 中同样没有目标之外的任何选项。关于响应变量的通用机制参见脚本文档中的 变量 与 使用模板处理响应数据response_variable可以自定义任意名称存储的数据可在同一脚本的后续动作中通过模板读取。动作的目标Target该动作必须指定目标。目标可以指向单个实体、设备、区域、楼层或标签Home Assistant 会对目标覆盖到的每一个 weather 实体执行该动作实体Entity某个具体的 weather 实体如weather.openweathermap设备Device属于某设备的所有 weather 实体区域Area某个房间或区域内的所有 weather 实体楼层Floor某个楼层上的所有 weather 实体标签Label共享某个标签的所有 weather 实体。你也可以在同一个动作中混合选择不同类型的目标例如同时指定一个具体实体和一个区域动作会同时作用于两者。响应数据结构动作会为每个被目标选中的 weather 实体返回预报数据返回结果以实体 ID 作为键。每个实体下包含一个forecast字段它是一个包含60 个条目的列表对应未来一小时的每一分钟。每个条目包含两个字段字段含义datetime该预报条件对应的时间ISO 8601 格式precipitation预报降水量单位毫米/小时mm/h一个精简后的响应示例weather.openweathermap: forecast: - datetime: 2024-10-19T18:59:0000:00 precipitation: 5.46 - datetime: 2024-10-19T19:00:0000:00 precipitation: 5.62 - datetime: 2024-10-19T19:01:0000:00 precipitation: 5.62在脚本中消费响应数据仓库中的动作文档将使用模板处理响应数据作为通用机制见 source/_docs/scripts/perform-actions.markdown响应数据适合存放动态的、体量较大的数据比如接下来一周的日历事件或详细的行车路线这类数据不适合放进实体状态。下面是一个把分钟级预报与通知动作组合起来的完整示例先调用动作把结果存入weather_forecast再通过模板遍历forecast列表判断未来 30 分钟内是否有降水若有则发送通知提醒。sequence: - action: openweathermap.get_minute_forecast target: entity_id: weather.openweathermap response_variable: weather_forecast - action: notify.mobile_app_phone data: title: 未来 30 分钟降水提醒 message: - {% set minutes weather_forecast[weather.openweathermap].forecast[:30] %} {% set raining minutes | selectattr(precipitation, gt, 0) | list %} {% if raining %} 未来 30 分钟内有降水最大强度约 {{ (raining | map(attributeprecipitation) | max) | round(1) }} mm/h。 {% else %} 未来 30 分钟预计无降水。 {% endif %}说明上述模板仅为演示响应数据的一种消费方式。实际字段可用的模板函数以 Home Assistant 官方模板文档为准具体通知方式取决于你所使用的 notify 服务类型。使用须知Good to know预报覆盖未来 60 分钟每分钟一个条目precipitation值为0表示该分钟预计无雨或无雪预报的准确性取决于 OpenWeatherMap 针对你所在位置提供的数据质量——它只提供数据源的预报能力不保证绝对精确。立即动手测试想不写 YAML 就验证效果打开设置工具动作Actions搜索openweathermap.get_minute_forecast填入目标实体并点击执行动作即可在真实实体上看到返回的响应数据确认你的集成模式与目标实体配置是否正确。相关背景资料集成整体说明支持模式、天气/空气质量传感器、API Key 获取与订阅激活source/_integrations/openweathermap.markdown动作响应数据的通用处理机制source/_docs/scripts/perform-actions.markdown脚本变量variables与response_variable的关联说明source/_docs/scripts.markdown该动作的维护记录见 CODEOWNERS其描述文案曾在 Home Assistant 2025.3 版本中优化见 source/changelogs/core-2025.3.markdown如果在使用中遇到问题社区通常能快速给出帮助可在 Home Assistant 官方 Discord 实时交流或带着你调用的动作与预期结果到社区论坛发帖求助。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。