18c47052e6555d2f6a6c6f9be9916a4d41757aa4
- 修复 config_flow.py 中的 KeyError 风险 - 添加 MQTT broker 地址和端口验证 - 完善翻译文件,添加所有配置字段的中文翻译 - 修复 sensor.py 中的弃用 API 使用 - 改进错误处理,转换失败时设置 available 为 False - 添加 device_info 中的 sw_version 字段 - 清理 manifest.json 中不必要的 paho-mqtt 依赖 - 修正 README.md 中的路径错误 - 更新版本号到 1.0.3
JackeryHome - Home Assistant 能源监控集成
这是一个 Home Assistant 自定义集成,通过 MQTT 监控太阳能、电网、电池和家庭能源数据。
功能
- 模拟太阳能发电、电网供电、家庭用电和电池充放电数据
- 通过 MQTT 自动发现功能将传感器添加到 Home Assistant
- 提供 Home Assistant 自定义集成,用于接收和显示 MQTT 数据
- 提供 Energy Flow Card Plus 卡片配置示例
项目结构
本项目包含两个主要部分:
- MQTT 模拟器 (
main.py) - 模拟发送能源监控数据到 MQTT broker - Home Assistant 自定义集成 (
custom_components/JackeryHome/) - 接收 MQTT 数据并创建传感器实体
传感器列表
本项目会创建以下传感器:
sensor.solar_power: 太阳能发电功率(W)sensor.home_power: 家庭用电功率(W)sensor.grid_import: 从电网购买功率(W)sensor.grid_export: 向电网出售功率(W)sensor.battery_charge: 电池充电功率(W)sensor.battery_discharge: 电池放电功率(W)sensor.battery_soc: 电池电量百分比(%)
安装
方式一:通过 HACS 安装(推荐)
-
添加自定义存储库
- 打开 HACS
- 点击右上角三个点 → "自定义存储库"
- 添加仓库 URL:
https://github.com/suyulin/jackery_home - 类别选择:
Integration - 点击"添加"
-
安装集成
- 在 HACS 中搜索 "JackeryHome"
- 点击"安装"
- 重启 Home Assistant
-
配置集成
- 进入 设置 → 设备与服务 → 添加集成
- 搜索 "JackeryHome"
- 输入 MQTT 主题前缀(默认:
homeassistant/sensor) - 点击提交完成配置
方式二:手动安装
- 下载最新的 Release
- 将
custom_components/JackeryHome文件夹复制到你的 Home Assistant 配置目录的custom_components/文件夹中 - 重启 Home Assistant
- 按照上述"配置集成"步骤进行配置
快速开始
使用 MQTT 模拟器
-
安装依赖并运行模拟器
# 使用 uv(推荐) uv sync uv run main.py # 或使用 pip pip install paho-mqtt python main.py -
配置 MQTT Broker
编辑
main.py中的地址:MQTT_BROKER = "192.168.0.101" # 修改为你的 MQTT Broker 地址 -
在 Home Assistant 中查看传感器
传感器会自动通过 MQTT Discovery 添加
配置和使用
-
确保已安装并配置集成(参考上面的安装步骤)
-
运行模拟器
# 使用 uv(推荐) uv run main.py # 或使用 python python main.py -
查看传感器数据
- 进入 开发者工具 → 状态
- 搜索 "solar_power"、"home_power" 等传感器
Energy Flow Card Plus 配置
安装卡片
-
通过 HACS 安装(推荐):
- 打开 HACS
- 点击"前端"(Frontend)
- 搜索 "Energy Flow Card Plus"
- 点击安装
- 重启 Home Assistant
-
手动安装:
- 从 GitHub 下载最新版本
- 将文件放到
www/community/energy-flow-card-plus/目录 - 在 Home Assistant 中添加资源:
- 设置 -> 仪表板 -> 右上角三点 -> 资源
- URL:
/hacsfiles/energy-flow-card-plus/energy-flow-card-plus.js - 类型: JavaScript 模块
添加卡片到仪表板
- 进入仪表板编辑模式
- 点击"添加卡片"
- 选择"手动"(Manual)
- 复制
energy_flow_card_config.yaml中的配置 - 保存
基础配置示例
type: custom:energy-flow-card-plus
entities:
solar:
entity: sensor.solar_power
name: 太阳能
grid:
entity:
consumption: sensor.grid_import # 从电网购买
production: sensor.grid_export # 向电网出售
name: 电网
battery:
entity:
consumption: sensor.battery_charge # 充电
production: sensor.battery_discharge # 放电
state_of_charge: sensor.battery_soc
name: 电池
home:
entity: sensor.home_power
name: 家庭用电
更多配置选项请查看 energy_flow_card_config.yaml 文件。
项目文件说明
核心文件
main.py: MQTT 传感器模拟器主程序custom_components/JackeryHome/: Home Assistant 自定义集成__init__.py: 集成入口manifest.json: 集成元数据sensor.py: 传感器平台实现config_flow.py: UI 配置流程strings.json: 本地化字符串translations/zh-Hans.json: 中文翻译README.md: 集成技术文档
文档和工具
INTEGRATION_GUIDE.md: 详细的集成使用指南energy_flow_card_config.yaml: Energy Flow Card Plus 配置示例install.sh: Linux/macOS 自动安装脚本install.ps1: Windows PowerShell 自动安装脚本README.md: 项目主文档(本文件)
数据流向逻辑
- 太阳能发电:随机生成 200-3000W
- 家庭用电:随机生成 500-3500W
- 电网功率:
- grid_import(从电网购买):当家庭用电 > 太阳能发电时的差值
- grid_export(向电网出售):当太阳能发电 > 家庭用电时的差值
- 电池功率:
- battery_charge(充电):0-1000W
- battery_discharge(放电):0-1000W
- 电池电量:根据充放电动态变化(20%-100%)
注意事项
- 确保 Home Assistant 已配置好 MQTT 集成
- MQTT Broker 需要在运行此脚本之前启动
- 传感器会每 5 秒更新一次数据
- 数据为模拟值,用于演示目的
文档
- HACS 发布指南 - 如何发布到 HACS
- 自定义集成 README - 集成技术文档
开发者
发布新版本
使用提供的发布脚本:
./prepare_release.sh
或手动发布:
- 更新
custom_components/JackeryHome/manifest.json中的版本号 - 提交更改并推送到 GitHub
- 创建新的 Git tag(如
v1.0.1) - 在 GitHub 创建 Release
详细说明请查看 HACS 发布指南
相关链接
- Energy Flow Card Plus GitHub
- Home Assistant MQTT Discovery
- Home Assistant 开发文档
- Paho MQTT Python Client
许可证
MIT License
Languages
Python
90.8%
Shell
9.2%