ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Home Assistant 实战:使用 amberelectric.get_forecasts 获取 Amber Electric 电价预测并自动调度家电

Home Assistant 实战:使用 amberelectric.get_forecasts 获取 Amber Electric 电价预测并自动调度家电 Home Assistant 实战使用 amberelectric.get_forecasts 获取 Amber Electric 电价预测并自动调度家电【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.ioAmber Electric澳大利亚电力零售商向用户提供批发市场的实时电价与预测数据其 Home Assistant 集成不仅暴露了价格、预测、描述符等传感器还通过amberelectric.get_forecasts这一 action 让你在自动化与脚本中按需拉取某一站点的价格预测并将结果存入响应变量供后续步骤使用。本文以官方文档 source/_actions/amberelectric.get_forecasts.markdown 为主体结合集成文档 source/_integrations/amberelectric.markdown完整讲解该 action 的 UI 与 YAML 两种用法、全部参数与响应字段并给出在最低价时段自动启动电器的实战方案。一、先理解背景Amber Electric 的三个电价通道在调用amberelectric.get_forecasts之前需要先理解 Amber Electric 的价格体系。根据集成文档价格被划分为三种 channel通道类型general记录灯光、电器等所有常规用电的通道controlled_load受控负载仅在非高峰时段激活的特殊通道电热水系统常接入该通道feed_in馈电记录太阳能板与电池向电网输出的通道。该集成会为每个通道类型暴露价格Price$/kWh、预测Forecast未来 12 小时与描述符Descriptor传感器另有电价尖峰二进制传感器与可再生能源占比传感器。get_forecastsaction 正是让你按站点、按通道显式拉取这些预测数据而不是被动等待传感器更新。从仓库的 changelog 可以确认该 action 的演进轨迹source/changelogs/core-2025.8.markdownAdd forecast service to amberelectric由 madpilot 提交PR #144848——即本 action 的引入版本source/changelogs/core-2025.12.markdown 与 source/changelogs/core-2026.3.markdown后续对服务注册方式与 config entry 提取方式的内部重构不影响对外调用参数。二、在 UI 中调用该 action可视化方式amberelectric.get_forecasts与其他 action 一样支持完全通过 UI 搭建无需编写 YAML详见 source/_includes/actions/ui_header.md。操作步骤如下进入设置 自动化与场景Settings Automations scenes打开一个已有的自动化或脚本或者选择创建自动化 创建新自动化Create automation Create new automation如果新建的是自动化先在When触发条件部分添加一个触发器脚本则不需要触发器它由其他对象调用时才会运行在Then do执行动作部分选择添加动作Add action在搜索框中搜索并选择Amber Electric: Get price forecasts为配置条目Config entry选择站点并选择要获取的通道类型Channel type点击保存Save。需要注意该 action 不支持 targets目标对象。在 UI 中你不会被提示选择区域、设备、实体或标签。这也符合其语义——它面向站点级电价数据而非某个具体实体。UI 中的选项Options in the UI选项说明是否必填Config entry要获取预测的 Amber Electric 站点是Channel type要获取预测的通道可选general、controlled load或feed-in是三、在 YAML 中调用参数与响应变量如果你直接编写 YAML或者想了解 Home Assistant 在底层究竟做了什么可以参考 source/_includes/actions/yaml_header.md 中的技术参考。在 YAML 中该 action 的完整名称是amberelectric.get_forecasts结果必须存入一个响应变量response variable以便在自动化或脚本的后续步骤中使用。官方文档给出的基础示例action: | action: amberelectric.get_forecasts data: config_entry_id: 6b4be47a1fa7c3764f14cf756dc9899d channel_type: general response_variable: forecasts这段配置的作用是获取站点6b4be47a1fa7c3764f14cf756dc9899d的 general 通道价格预测并将结果存入名为forecasts的响应变量。注意示例中的config_entry_id是占位符实际使用时需替换为你自己站点的配置条目 ID可在设置 设备与服务中查看对应条目的 ID。YAML 参数详解Options in YAML参数类型是否必填说明config_entry_idstring是要获取预测的 Amber Electric 站点配置条目 IDchannel_typestring是要获取预测的通道。可选值general、controlled_load、feed_in需要特别留意的是channel_type在 YAML 中的取值使用下划线controlled_load与feed_in而在 UI 中则显示为controlled load与feed-in。这也是最容易踩坑的地方——直接照抄 UI 中的写法到 YAML 会导致参数校验失败。四、响应数据结构每一个预测区间字段详解调用成功后响应包含一个forecasts列表其中每个预测区间包含以下字段字段说明duration区间长度单位为分钟date区间所属的日期nem_date以澳大利亚国家电力市场NEM时间表示的区间结束时间per_kwh预测电价单位为美元/千瓦时$/kWhspot_per_kwh批发现货价格单位为美元/千瓦时$/kWhstart_time区间的开始时间end_time区间的结束时间renewables该区间电网中可再生能源的占比百分比spike_status该区间是否预测出现电价尖峰descriptor电价描述如low、neutral、high等官方文档给出的缩短版响应示例forecasts: - duration: 30 date: 2024-01-01 nem_date: 2024-01-01T12:30:0010:00 per_kwh: 0.08 spot_per_kwh: 0.04 start_time: 2024-01-01T12:00:0010:00 end_time: 2024-01-01T12:30:0010:00 renewables: 45 spike_status: none descriptor: low关于descriptor的取值集成文档给出了完整集合extremely_low、very_low、low、neutral、high和spike。集成同时提供一个电价尖峰二进制传感器当当前价格超过 $3/kWh 时触发可与spike_status字段互相印证。五、实战示例在一天中电价最低的时段启动洗衣机文档明确指出该 action 的核心价值例如在预测的最便宜时段启动电器。下面是一个完整的 YAML 自动化示例演示如何将响应变量与后续步骤串联——这比单次调用更能体现 response variable 的实战意义。假设你在夜间电价低时运行洗衣机可以编写如下自动化config_entry_id需替换为实际值alias: Run washing machine at cheapest hour trigger: - platform: time at: 23:30:00 action: - action: amberelectric.get_forecasts data: config_entry_id: 6b4be47a1fa7c3764f14cf756dc9899d channel_type: general response_variable: forecasts - variables: cheapest: - {{ forecasts.forecasts | selectattr(descriptor, eq, low) | sort(attributeper_kwh) | first }} - delay: hours: {{ cheapest.start_time | as_timestamp | timestamp_local }} # 此处按需插入启动洗衣机的动作 - action: switch.turn_on target: entity_id: switch.washing_machine这个示例展示了 response variable 的典型用法先调用 action 拿到完整的forecasts列表再通过 Jinja 模板在后续步骤中筛选、排序并定位最优区间进而控制设备。你可以依据同样的思路结合renewables字段可再生能源占比来选择既便宜又绿色的时段或结合spike_status避开尖峰时段。六、自行验证在开发者工具中测试如果你不想直接修改自动化可以先用开发者工具做一次零代码验证见 source/_includes/actions/try_it.md打开设置 工具 操作Settings Tools Actions搜索amberelectric.get_forecasts填写配置条目与通道类型点击执行操作Perform action。你会立即看到返回的forecasts列表与真实实体状态无需编写任何 YAML 即可确认参数与响应是否符合预期。若遇到问题可携带 action 名称与期望结果前往 Home Assistant 社区求助source/_includes/actions/stuck.md 提供了 Discord、官方论坛与 subreddit 等渠道。七、关键要点速查action 名称amberelectric.get_forecastsUI 显示为 Amber Electric: Get price forecasts。必填参数config_entry_id站点配置条目与channel_type通道类型。通道枚举YAML 中使用general、controlled_load、feed_in下划线形式UI 中显示为general、controlled load、feed-in。不支持 targets不会提示选择区域、设备、实体或标签。结果必须存入响应变量通过response_variable: forecasts供后续步骤使用。响应核心字段per_kwh预测电价、spot_per_kwh现货价、start_time/end_time区间起止、renewables可再生占比、spike_status尖峰状态、descriptor价格描述。可用版本该 action 自 2025.8 版本PR #144848引入后续版本仅涉及内部实现重构调用方式保持稳定。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表