Grid-Aware Energy Load Shifter — 网格感知能量负载转移器
v1.0.3适用于Home Assistant的电网感知能量负载转移器。实时读取电费价格(TOU,时间-of-use,动态定价),太阳能发电预测,电池状态,和消费数据来自Home Assistant。安排可延迟的家庭负载(EV充电,HVAC预调节,泳池泵,洗碗机,洗衣机,热水器)到最便宜的费率窗口。计算成本节省,优化太阳能自我消费,并支持虚拟电厂(VPP)需求响应信号。支持Nordpool,ENTSO-e,Tibber,Octopus Energy,Amber Electric和全球任何电费计划。为分布式能源资源(DER)优化和住宅需求侧管理而设计。使用API、CLI和GitHub等工具,实现Home Assistant与外部系统的集成。
运行时依赖
安装命令
点击复制技能文档
网格感知能量负载转移器 将重型住宅负载转移到最便宜的电费时间,使用 Home Assistant 能量数据。 快速开始 # 找到所有与能量相关的实体在 HA python3 {baseDir}/scripts/ha_bridge.py discover # 获取完整的能量仪表板快照(价格、太阳能、消耗、电池) python3 {baseDir}/scripts/ha_bridge.py energy-summary # 打开 EV 充电器 python3 {baseDir}/scripts/ha_bridge.py call-service switch/turn_on --entity-id switch.ev_charger 连接 有两条路径可以到达 Home Assistant: MCP(首选):如果 HA MCP 服务器已配置,直接使用 mcporter call homeassistant.。 REST API:使用 python3 {baseDir}/scripts/ha_bridge.py。需要 HA_URL 和 HA_TOKEN 环境变量。 安全 所需凭据: 变量 描述 HA_URL Home Assistant 基础 URL(例如 http://homeassistant.local:8123) HA_TOKEN Home Assistant 长期访问令牌 最小权限推荐: 为此技能创建一个专用的 Home Assistant 用户账户(例如 openclaw-energy) 从该账户生成长期访问令牌 限制账户的实体访问仅限于能量相关实体(如果您的 HA 设置支持实体级权限) 先使用只读命令(discover、energy-summary)进行测试,然后再启用设备控制 域名允许列表: call-service 命令限制动作仅限于能量相关域:switch、automation、script、climate、water_heater、input_boolean、input_number、number。其他域名(例如 lock、alarm_control_panel)将被阻止并返回退出代码 2。 命令 命令 所做的事情 示例 discover 列出所有能量实体 ha_bridge.py discover energy-summary 一次性仪表板(价格 + 消耗 + 太阳能 + 存储) ha_bridge.py energy-summary status <实体> 读取单个实体的状态和属性 ha_bridge.py status sensor.electricity_price call-service 调用能量相关的 HA 服务(限制为允许的域) ha_bridge.py call-service switch/turn_on --entity-id switch.ev_charger history <实体> 获取状态变化在最后 N 小时 ha_bridge.py history sensor.grid_import --hours 24 所有命令输出 JSON 到 stdout。 负载转移工作流 当被问及能量优化时,请按照以下步骤: 发现可用的能量实体:运行 discover 或 energy-summary 读取价格:检查价格实体的状态和属性 - 查找: 每小时价格数组在 today / tomorrow / prices_today / rates 属性中 price_level 属性(CHEAP / NORMAL / EXPENSIVE) 当前与平均价格比较 识别可延迟负载: 找到 switch. 实体用于可调度设备(EV 充电器、泳池泵、洗碗机、洗衣机/烘干机、水加热器) 找到最便宜的时间窗口: 扫描每小时价格以找到具有最低总和的连续 N 小时块(N = 设备预计运行时间) 执行: 在最优时间调用 switch/turn_on 或 automation/trigger(如果用户有现有的自动化) 解释价格数据 不同的集成以不同的方式暴露价格: 每小时数组(Nordpool、ENTSO-e、Octopus): 读取 today/tomorrow 属性 → 找到最便宜的小时 价格级别(Tibber): 读取 price_level → 在 CHEAP 或 VERY_CHEAP 时执行 实时(Amber Electric): 读取 5 分钟价格 → 当价格便宜时立即转移负载 公用事业表计费率: 读取 sensor._peak 与 sensor._offpeak → 用户的 HA 自动化在配置的时间切换费率 静态 TOU: 读取 current_price 属性 → 将其与历史平均值进行比较 节省成本估计 在推荐转移时,显示预估节省: 节省 = (当前费率 - 最便宜费率)× 设备功率(千瓦)× 运行时间(小时) 太阳能自我消耗 如果太阳能传感器存在,将负载与峰值生产对齐: 读取 sensor.forecast_solar_ 或 sensor.solcast_ 以获取今天的预测 将负载转移到具有最高预期生产的小时 这完全避免了网格导入 - 节省 = 全部零售费率 × 千瓦时转移 HVAC 预调节 HVAC 是最大的住宅负载(40-50% 的电力)。 在便宜/太阳能小时预冷或预热,以便房屋在昂贵的峰值期间保持热量: 读取 climate. 实体以获取当前 HVAC 模式和设定点 在最便宜的时间窗口期间: 降低冷却设定点 2-3F(预冷)或提高加热设定点 2-3F(预热) 在峰值时间窗口期间: 提高冷却设定点 2-3F 以便在热量中保持热量 节省估计: 1.5-3 千瓦转移 × 价格差异 × 小时 水加热器调度 电水加热器(典型 4.5 千瓦)是理想的可延迟负载: 找到 switch.water_heater 或 water_heater. 实体 在最便宜/太阳能时间窗口期间加热到全温度 在峰值小时关闭(水箱在 4-6 小时内保持温度) 节省估计: 4.5 千瓦 × 价格差异 × 3-4 小时/天 电池套利 如果家庭电池实体存在(sensor.battery_soc、sensor.powerwall_、sensor.enphase_*): 读取当前状态和充电/放电速率限制 在最便宜的小时从网格充电(或从太阳能) 在峰值价格小时向房屋放电以避免网格导入