From e5cde3d457a2d1dacf229a66d34f7e2ad9d4776d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E6=B1=82=E5=9C=A3=E5=89=91?= Date: Wed, 26 Nov 2025 15:45:40 +0800 Subject: [PATCH] chore: remove obsolete files and clean up repository - Deleted unused files including `AGENTS.md`, `data_transmission_example.py`, `delete.py`, and `main.py` to streamline the project structure. - Updated `README.md` to reflect the removal of these files and clarify integration details. - Minor adjustments made to `strings.json` for consistency. --- AGENTS.md | 30 -- README.md | 305 ++++++--------------- custom_components/JackeryHome/strings.json | 2 +- data_transmission_example.py | 272 ------------------ delete.py | 54 ---- img/app_config_mqtt.png | Bin 0 -> 78260 bytes img/demo.png | Bin 0 -> 94108 bytes img/jackery_home_add.png | Bin 0 -> 267557 bytes img/jackery_home_config.png | Bin 0 -> 309232 bytes img/mqtt_config.png | Bin 0 -> 124977 bytes img/mqtt_config_2.png | Bin 0 -> 276038 bytes main.py | 191 ------------- 12 files changed, 90 insertions(+), 764 deletions(-) delete mode 100644 AGENTS.md delete mode 100644 data_transmission_example.py delete mode 100644 delete.py create mode 100644 img/app_config_mqtt.png create mode 100644 img/demo.png create mode 100644 img/jackery_home_add.png create mode 100644 img/jackery_home_config.png create mode 100644 img/mqtt_config.png create mode 100644 img/mqtt_config_2.png delete mode 100644 main.py diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 3ea4c51..0000000 --- a/AGENTS.md +++ /dev/null @@ -1,30 +0,0 @@ -# Repository Guidelines - -## Project Structure & Module Organization -- Energy simulator lives at `main.py`; MQTT examples under `data_transmission_example.py`. -- Home Assistant integration is in `custom_components/JackeryHome/` with `__init__.py`, `sensor.py`, `config_flow.py`, translations, and docs. -- Branding assets sit in `brands/`; release helpers and docs (e.g., `prepare_release.sh`, `README.md`, `energy_flow_card_config.yaml`) are at the repo root. -- Tests currently consist of targeted scripts such as `test_mqtt.py`; add new suites beside related modules. - -## Build, Test, and Development Commands -- `uv sync` — install the Python toolchain defined in `pyproject.toml` (uses uv for fast, reproducible envs). -- `uv run main.py` — run the MQTT simulator against the broker configured inside the script. -- `python test_mqtt.py` — quick publishing/subscription sanity check for MQTT topics. -- `./prepare_release.sh` — bump integration metadata and prep a tagged release; review the script before running. - -## Coding Style & Naming Conventions -- Python source follows 4-space indentation, snake_case identifiers, and descriptive constants (e.g., `MQTT_BROKER`). -- Keep Home Assistant entity IDs lowercase with underscores (`sensor.solar_power`). -- Maintain docstrings or top-of-file comments for modules that expose user-facing behavior; prefer concise inline comments for non-obvious logic. -- JSON/YAML assets should stay UTF-8, two-space indented, with trailing commas avoided. - -## Testing Guidelines -- Favor lightweight integration tests that exercise MQTT flows end-to-end (publish via simulator, assert consumption by HA sensors). -- Mirror Home Assistant’s naming pattern: `test_.py` with `async` helpers where applicable. -- Run tests locally before opening a PR; when adding new sensors, include topic fixtures and expected payload assertions. - -## Commit & Pull Request Guidelines -- Commits typically use an imperative summary (e.g., "Add inverter sensor mapping") followed by focused changes. -- Reference relevant issues in the body (`Fixes #42`) and keep commits scoped so they are reviewable. -- Pull requests should describe motivation, outline testing performed (`uv run main.py`, HA log screenshots), and mention any config migrations. -- Include UI screenshots/GIFs when altering Lovelace card guidance or other user-facing docs. diff --git a/README.md b/README.md index 13cef35..ef6dcc2 100644 --- a/README.md +++ b/README.md @@ -1,272 +1,145 @@ -# JackeryHome - Home Assistant 能源监控集成 +## JackeryHome – Home Assistant Energy Monitoring Integration [![hacs_badge](https://img.shields.io/badge/HACS-Custom-orange.svg)](https://github.com/hacs/integration) [![GitHub Release](https://img.shields.io/github/release/suyulin/jackery_home.svg)](https://github.com/suyulin/jackery_home/releases) [![License](https://img.shields.io/github/license/suyulin/jackery_home.svg)](LICENSE) -这是一个 Home Assistant 自定义集成,通过 MQTT 监控太阳能、电网、电池和家庭能源数据。 +JackeryHome is a **custom Home Assistant integration** that uses **MQTT** to monitor solar, grid, battery, EPS and home energy data from a Jackery energy system. -## 功能 +The integration is implemented in `custom_components/JackeryHome/sensor.py` and is built around a shared **coordinator** (`JackeryDataCoordinator`) that efficiently manages subscriptions and data requests for all sensors. -- 模拟太阳能发电、电网供电、家庭用电和电池充放电数据 -- 通过 MQTT 自动发现功能将传感器添加到 Home Assistant -- **提供 Home Assistant 自定义集成,用于接收和显示 MQTT 数据** -- 提供 Energy Flow Card Plus 卡片配置示例 -## 项目结构 +### Features -本项目包含两个主要部分: +- **Custom Home Assistant integration** (no YAML entities required) +- **MQTT-based data flow** with a shared `JackeryDataCoordinator` +- Periodic `data_get` requests every **5 seconds** for all sensors +- Real-time **power sensors** (W) and cumulative **energy sensors** (kWh) +- **Battery SoC** in percent with proper scaling +- Ready-to-use example configuration for **Energy Flow Card Plus** -1. **MQTT 模拟器** (`main.py`) - 模拟发送能源监控数据到 MQTT broker -2. **Home Assistant 自定义集成** (`custom_components/JackeryHome/`) - 接收 MQTT 数据并创建传感器实体 -### 集成架构 +### Prerequisites -集成采用**协调器模式**(Coordinator Pattern): -- 所有传感器共享一个 `JackeryDataCoordinator` 实例 -- 统一管理 MQTT 订阅和数据请求 -- 每 5 秒发送一次包含所有传感器 `meter_sn` 的数据请求 -- 自动解析响应并分发给对应的传感器实体 +Before the JackeryHome integration can receive any data, **two things must be in place**: -## 传感器列表 - -本项目会创建以下传感器: - -### 功率传感器(实时监测) - -- `sensor.jackeryhome_solar_power`: 太阳能发电功率(W) -- `sensor.jackeryhome_home_power`: 家庭用电功率(W) -- `sensor.jackeryhome_grid_import`: 从电网购买功率(W) -- `sensor.jackeryhome_grid_export`: 向电网出售功率(W) -- `sensor.jackeryhome_battery_charge`: 电池充电功率(W) -- `sensor.jackeryhome_battery_discharge`: 电池放电功率(W) -- `sensor.jackeryhome_battery_state_of_charge`: 电池电量百分比(%) - -### 能源传感器(用于能源仪表板) - -- `sensor.jackeryhome_solar_energy`: 太阳能发电总量(kWh) -- `sensor.jackeryhome_home_energy`: 家庭用电总量(kWh) -- `sensor.jackeryhome_grid_import_energy`: 电网购买总量(kWh) -- `sensor.jackeryhome_grid_export_energy`: 电网出售总量(kWh) -- `sensor.jackeryhome_battery_charge_energy`: 电池充电总量(kWh) -- `sensor.jackeryhome_battery_discharge_energy`: 电池放电总量(kWh) - -## 安装 - -### 方式一:通过 HACS 安装(推荐) - -1. **添加自定义存储库** - - 打开 HACS - - 点击右上角三个点 → "自定义存储库" - - 添加仓库 URL:`https://github.com/suyulin/jackery_home` - - 类别选择:`Integration` - - 点击"添加" - -2. **安装集成** - - 在 HACS 中搜索 "JackeryHome" - - 点击"安装" - - 重启 Home Assistant - -3. **配置集成** - - 进入 **设置** → **设备与服务** → **添加集成** - - 搜索 "JackeryHome" - - 输入 MQTT 主题前缀(默认:`homeassistant/sensor`) - - 点击提交完成配置 - -### 方式二:手动安装 - -1. 下载最新的 [Release](https://github.com/suyulin/jackery_home/releases) -2. 将 `custom_components/JackeryHome` 文件夹复制到你的 Home Assistant 配置目录的 `custom_components/` 文件夹中 -3. 重启 Home Assistant -4. 按照上述"配置集成"步骤进行配置 - -## 快速开始 - -### 使用 MQTT 模拟器 - -1. **安装依赖并运行模拟器** - ```bash - # 使用 uv(推荐) - uv sync - uv run main.py +1. **MQTT broker/server is configured and reachable** - # 或使用 pip - pip install paho-mqtt - python main.py - ``` - -2. **配置 MQTT Broker** + - A running MQTT broker (e.g. Mosquitto, EMQX, etc.) is required. + - Home Assistant's built‑in **MQTT integration** must be configured to connect to this broker. + - The broker address, port, username/password (if any) should match what your device and simulator are using. + - In your MQTT configuration, **replace the IP with the address of your own MQTT server**. + ![mqtt_config](./img/mqtt_config.png) + ![mqtt_config](./img/mqtt_config_2.png) +2. **Device is configured from the JackeryHome app** - 编辑 `main.py` 中的地址: - ```python - MQTT_BROKER = "192.168.0.101" # 修改为你的 MQTT Broker 地址 - ``` + - Use the vendor/JackeryHome mobile app to add the device/gateway and complete its initial setup. + - Make sure the device has network access and is configured so that it can connect to your MQTT/cloud backend. + - In the Jackery Home app, long-press the app logo to open the configuration screen. + - In the Jackery Home app configuration, **replace the IP with the address of your own MQTT server**. + ![jackery_home_config](./img/app_config_mqtt.png) -3. **在 Home Assistant 中查看传感器** +--- + +### Installation + +#### Option A: Install via HACS (recommended) + +1. **Add custom repository** - 传感器会自动通过 MQTT Discovery 添加 - -### 配置和使用 - -1. **确保已安装并配置集成**(参考上面的安装步骤) - -2. **运行模拟器** - ```bash - # 使用 uv(推荐) - uv run main.py + - Open HACS in Home Assistant + - Click the three dots in the top-right → **Custom repositories** + - Add repository URL: `https://github.com/suyulin/jackery_home` + - Category: `Integration` + - Click **Add** +2. **Install the integration** - # 或使用 python - python main.py - ``` + - In HACS, search for **"JackeryHome"** + - Click **Install** + - Restart Home Assistant +3. **Configure the integration** + + - Go to **Settings → Devices & Services → Add Integration** + - Search for **"JackeryHome"** + - Enter an MQTT topic prefix if needed (default: `homeassistant/sensor`) + - Submit to finish configuration + ![config](./img/jackery_home_add.png) + ![config](./img/jackery_home_config.png) +> **Requirement**: The built-in **MQTT integration** must be configured and connected to your MQTT broker **before** JackeryHome will work. -3. **查看传感器数据** - - 进入 **开发者工具** → **状态** - - 搜索 "jackeryhome" 或传感器名称(如 "Solar Power"、"Home Power" 等) - - 实体 ID 格式:`sensor.jackeryhome_{sensor_id}` +### Example: Energy Flow Card Plus -## Energy Flow Card Plus 配置 +You can use these sensors with the [Energy Flow Card Plus](https://github.com/flixlix/energy-flow-card-plus) Lovelace card. -### 安装卡片 +#### Install the card -1. **通过 HACS 安装(推荐):** - - 打开 HACS - - 点击"前端"(Frontend) - - 搜索 "Energy Flow Card Plus" - - 点击安装 - - 重启 Home Assistant +- Via HACS (recommended): + + - HACS → **Frontend** → search for **"Energy Flow Card Plus"** → install → restart HA. +- Manual: + + - Download from the GitHub repository. + - Place files under `www/community/energy-flow-card-plus/`. + - Add a Lovelace resource pointing to `/hacsfiles/energy-flow-card-plus/energy-flow-card-plus.js` (type: JavaScript module). -2. **手动安装:** - - 从 [GitHub](https://github.com/flixlix/energy-flow-card-plus) 下载最新版本 - - 将文件放到 `www/community/energy-flow-card-plus/` 目录 - - 在 Home Assistant 中添加资源: - - 设置 -> 仪表板 -> 右上角三点 -> 资源 - - URL: `/hacsfiles/energy-flow-card-plus/energy-flow-card-plus.js` - - 类型: JavaScript 模块 - -### 添加卡片到仪表板 - -1. 进入仪表板编辑模式 -2. 点击"添加卡片" -3. 选择"手动"(Manual) -4. 复制 `energy_flow_card_config.yaml` 中的配置 -5. 保存 - -### 基础配置示例 +#### Basic configuration example ```yaml type: custom:energy-flow-card-plus entities: solar: - entity: sensor.jackeryhome_solar_power - name: 太阳能 + entity: sensor.solar_power + name: Solar icon: mdi:solar-power grid: entity: - consumption: sensor.jackeryhome_grid_import # 从电网购买 - production: sensor.jackeryhome_grid_export # 向电网出售 - name: 电网 + consumption: sensor.grid_import_power # buying from grid + production: sensor.grid_export_power # selling to grid + name: Grid icon: mdi:transmission-tower battery: entity: - consumption: sensor.jackeryhome_battery_charge # 充电 - production: sensor.jackeryhome_battery_discharge # 放电 - state_of_charge: sensor.jackeryhome_battery_state_of_charge - name: 电池 + consumption: sensor.battery_charge_power # charging + production: sensor.battery_discharge_power # discharging + state_of_charge: sensor.battery_soc + name: Battery icon: mdi:battery home: - entity: sensor.jackeryhome_home_power - name: 家庭用电 + entity: sensor.home_power + name: Home icon: mdi:home-lightning-bolt display_zero_lines: mode: show transparency: 50 - grey_color: - - 189 - - 189 - - 189 + grey_color: [189, 189, 189] w_decimals: 0 kw_decimals: 2 color_icons: true animation_speed: 10 energy_date_selection: false ``` +![demo](img/demo.png) -**注意**:实体 ID 格式为 `sensor.jackeryhome_{sensor_id}`,其中 `{sensor_id}` 对应传感器 ID(如 `solar_power`、`grid_import` 等)。 +### Notes & Requirements -更多配置选项请查看 `energy_flow_card_config.yaml` 文件。 +- The MQTT broker must be running before you start the simulator or expect data in Home Assistant. +- The integration sends a single `data_get` request every 5 seconds for **all sensors**, reducing MQTT traffic. +- The device serial number (`device_sn`) is automatically obtained from LWT messages; no manual configuration is required. +- When the MQTT broker is unavailable, the coordinator logs a warning and retries automatically. + -## 项目文件说明 +--- -### 核心文件 -- `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`: 集成技术文档(包含架构设计、MQTT 协议格式等) +### Links -### 文档和工具 -- `INTEGRATION_GUIDE.md`: 详细的集成使用指南 -- `energy_flow_card_config.yaml`: Energy Flow Card Plus 配置示例 -- `install.sh`: Linux/macOS 自动安装脚本 -- `install.ps1`: Windows PowerShell 自动安装脚本 -- `README.md`: 项目主文档(本文件) +- **Energy Flow Card Plus** – `https://github.com/flixlix/energy-flow-card-plus` +- **Home Assistant MQTT Discovery** – `https://www.home-assistant.io/integrations/mqtt/#mqtt-discovery` +- **Home Assistant Developer Docs** – `https://developers.home-assistant.io/` +- **Paho MQTT Python Client** – `https://github.com/eclipse/paho.mqtt.python` -## 数据流向逻辑 +--- -1. **太阳能发电**:随机生成 200-3000W -2. **家庭用电**:随机生成 500-3500W -3. **电网功率**: - - grid_import(从电网购买):当家庭用电 > 太阳能发电时的差值 - - grid_export(向电网出售):当太阳能发电 > 家庭用电时的差值 -4. **电池功率**: - - battery_charge(充电):0-1000W - - battery_discharge(放电):0-1000W -5. **电池电量**:根据充放电动态变化(20%-100%) - -## 注意事项 - -- 确保 Home Assistant 已配置好 MQTT 集成 -- MQTT Broker 需要在运行此脚本之前启动 -- 集成会每 5 秒主动请求一次数据(所有传感器共享同一个请求) -- 数据为模拟值,用于演示目的 -- 集成会自动从 LWT 消息获取设备序列号,无需手动配置 - -## 文档 - -- [**HACS 发布指南**](HACS_PUBLISHING_GUIDE.md) - 如何发布到 HACS -- [自定义集成 README](custom_components/JackeryHome/README.md) - 集成技术文档 - -## 开发者 - -### 发布新版本 - -使用提供的发布脚本: - -```bash -./prepare_release.sh -``` - -或手动发布: - -1. 更新 `custom_components/JackeryHome/manifest.json` 中的版本号 -2. 提交更改并推送到 GitHub -3. 创建新的 Git tag(如 `v1.0.1`) -4. 在 GitHub 创建 Release - -详细说明请查看 [HACS 发布指南](HACS_PUBLISHING_GUIDE.md) - -## 相关链接 - -- [Energy Flow Card Plus GitHub](https://github.com/flixlix/energy-flow-card-plus) -- [Home Assistant MQTT Discovery](https://www.home-assistant.io/integrations/mqtt/#mqtt-discovery) -- [Home Assistant 开发文档](https://developers.home-assistant.io/) -- [Paho MQTT Python Client](https://github.com/eclipse/paho.mqtt.python) - -## 许可证 +### License MIT License diff --git a/custom_components/JackeryHome/strings.json b/custom_components/JackeryHome/strings.json index d6dc86b..4ff5736 100644 --- a/custom_components/JackeryHome/strings.json +++ b/custom_components/JackeryHome/strings.json @@ -19,4 +19,4 @@ "single_instance_allowed": "只允许一个此集成的实例" } } -} +} \ No newline at end of file diff --git a/data_transmission_example.py b/data_transmission_example.py deleted file mode 100644 index 36bbd57..0000000 --- a/data_transmission_example.py +++ /dev/null @@ -1,272 +0,0 @@ -#!/usr/bin/env python3 -""" -数据传输示例 -演示如何使用修改后的 Energy Monitor 系统进行数据传输 -""" - -import json -import time -import random -import paho.mqtt.client as mqtt -battery_soc_point = "21548033" - ## 能量累计 -solar_energy_point = "16961537" -home_energy_point = "16980993" -grid_import_energy_point = "16969729" -grid_export_energy_point = "16970753" -battery_charge_energy_point = "16964609" -battery_discharge_energy_point = "16965633" - ## 实时功率 -solar_power_point = "1026001" -home_power_point = "21171201" -grid_import_power_point = "16930817" -grid_export_power_point = "16930817" -battery_charge_power_point = "16931841" -battery_discharge_power_point = "16931841" -class DataTransmissionExample: - - - def __init__(self, broker="192.168.1.100", port=1883): - self.broker = broker - self.port = port - self.client = None - self.running = False - self.device_status = "offline" - self.device_sn = "" - self.battery_soc = 0 - self.solar_energy = 0 - self.solar_energy = 0 - self.home_energy = 0 - self.grid_import_energy = 0 - self.grid_export_energy = 0 - self.battery_charge_energy = 0 - self.battery_discharge_energy = 0 - - self.energy_data = { - "solar_energy": 0, - "home_energy": 0, - "grid_import_energy": 0, - "grid_export_energy": 0, - "battery_charge_energy": 0, - "battery_discharge_energy": 0, - } - - ## 构造发送数据 - def construct_send_data(self): - data = { - "cmd": "data_get", - "gw_sn": self.device_sn, - "timestamp": str(int(time.time() * 1000)), - ## 随机数是字符串 - "token": str(random.randint(1000, 9999)), - "info": { - "dev_list": [ - { - "dev_sn": "ems_" + self.device_sn, - "meter_list": [ - battery_soc_point, - solar_energy_point, - home_energy_point, - grid_import_energy_point, - grid_export_energy_point, - battery_charge_energy_point, - battery_discharge_energy_point, - solar_power_point, - home_power_point, - grid_import_power_point, - grid_export_power_point, - battery_charge_power_point, - battery_discharge_power_point, - ] - } - ] - } - } - return data - ## 解析数据 - def parse_data(self, payload): - # payload 已经是字典类型,不需要再次解析 - if isinstance(payload, str): - data = json.loads(payload) - else: - data = payload - info = data["info"] - dev_list = info["dev_list"] - for dev in dev_list: - dev_sn = dev["dev_sn"] - meter_list = dev["meter_list"] - for meter in meter_list: - meter_sn = meter[0] - # 先转换为 float,然后判断是否可以转换为 int - meter_value_float = float(meter[1]) - # 如果小数部分为 0,则转换为 int,否则保留 float - meter_value = int(meter_value_float) if meter_value_float == int(meter_value_float) else meter_value_float - print(f"📨 收到设备数据: {dev_sn} {meter_sn} {meter_value}") - if meter_sn == battery_soc_point: - self.battery_soc = meter_value - print(f"📨 收到电池电量: {self.battery_soc}") - if meter_sn == solar_energy_point: - self.solar_energy = meter_value - print(f"📨 收到太阳能能量: {self.solar_energy}") - if meter_sn == home_energy_point: - self.home_energy = meter_value - print(f"📨 收到家庭能量: {self.home_energy}") - if meter_sn == grid_import_energy_point: - self.grid_import_energy = meter_value - print(f"📨 收到电网购买能量: {self.grid_import_energy}") - if meter_sn == grid_export_energy_point: - self.grid_export_energy = meter_value - print(f"📨 收到电网出售能量: {self.grid_export_energy}") - if meter_sn == battery_charge_energy_point: - self.battery_charge_energy = meter_value - print(f"📨 收到电池充电能量: {self.battery_charge_energy}") - if meter_sn == battery_discharge_energy_point: - self.battery_discharge_energy = meter_value - print(f"📨 收到电池放电能量: {self.battery_discharge_energy}") - if meter_sn == solar_power_point: - self.solar_power = meter_value - print(f"📨 收到太阳能功率: {self.solar_power}") - if meter_sn == home_power_point: - self.home_power = meter_value - print(f"📨 收到家庭功率: {self.home_power}") - ## 电网功率 负值为购买,正值为出售 - if meter_sn == grid_import_power_point: - self.grid_import_power = meter_value - if meter_value < 0: - self.grid_import_power = -meter_value - print(f"📨 收到电网购买功率: {self.grid_import_power}") - else: - self.grid_export_power = meter_value - print(f"📨 收到电网出售功率: {self.grid_export_power}") - ## 电池充放电功率 负值为充电,正值为放电 - if meter_sn == battery_charge_power_point: - self.battery_charge_power = meter_value - if meter_value < 0: - self.battery_charge_power = -meter_value - print(f"📨 收到电池充电功率: {self.battery_charge_power}") - else: - self.battery_discharge_power = meter_value - print(f"📨 收到电池放电功率: {self.battery_discharge_power}") - - def setup_mqtt(self): - """设置 MQTT 客户端""" - self.client = mqtt.Client(client_id="energy_device", callback_api_version=mqtt.CallbackAPIVersion.VERSION2) - self.client.on_connect = self.on_connect - self.client.on_message = self.on_message - - def on_connect(self, client, userdata, flags, rc, properties): - """MQTT 连接回调""" - if rc == 0: - print("✅ 连接到 MQTT 代理成功") - # 订阅数据获取请求主题 - client.subscribe("v1/iot_gw/gw/data") - client.subscribe("v1/iot_gw/gw_lwt") - print("✅ 订阅 v1/iot_gw/gw_data 主题成功") - print("✅ 订阅 v1/iot_gw/gw_lwt 主题成功") - else: - print(f"❌ 连接 MQTT 代理失败,错误码: {rc}") - - def on_message(self, client, userdata, msg): - """MQTT 消息接收回调""" - if msg.topic == "v1/iot_gw/gw/data": - print(f"📨 收到数据请求: {msg.payload.decode()}") - # 解析JSON - data = json.loads(msg.payload) - self.parse_data(data) - if msg.topic == "v1/iot_gw/gw_lwt": - print(f"📨 收到设备状态: {msg.payload.decode()}") - # 解析JSON - data = json.loads(msg.payload) - self.device_sn = data["gw_sn"] - info = data["info"] - print(f"📨 收到设备状态: {self.device_sn} {info}") - # 更新设备状态 - self.device_status = info - print(f"📨 设备状态: {self.device_status}") - - - def send_device_data(self): - data = self.construct_send_data() - - # 转换为 JSON 格式 - json_data = json.dumps(data, ensure_ascii=False, indent=2) - - # 发布到 device/data 主题 - result = self.client.publish("v1/iot_gw/cloud/data", json_data) - - if result.rc == mqtt.MQTT_ERR_SUCCESS: - print("📤 发送设备数据:") - print(f" 主题: v1/iot_gw/cloud/data") - print(f" 数据: {json_data}") - print() - else: - print(f"❌ 发送数据失败,错误码: {result.rc}") - - def start_simulation(self, duration=60): - """启动数据模拟""" - print("🚀 启动数据传输模拟") - print(f"📡 MQTT 代理: {self.broker}:{self.port}") - print(f"⏱️ 运行时长: {duration} 秒") - print("=" * 50) - - try: - # 连接 MQTT 代理 - self.client.connect(self.broker, self.port, 60) - self.client.loop_start() - self.running = True - - # 等待连接建立 - time.sleep(2) - - # 发送初始数据 - print("📤 发送初始数据...") - if self.device_sn != "": - self.send_device_data() - else: - print("❌ 设备SN为空,无法发送数据") - # return - - # 运行指定时间 - start_time = time.time() - while self.running and (time.time() - start_time) < duration: - time.sleep(1) - - # 每5秒发送一次数据(模拟设备主动发送) - if int(time.time() - start_time) % 5 == 0: - print("📤 设备主动发送数据...") - if self.device_sn != "": - self.send_device_data() - else: - print("❌ 设备SN为空,无法发送数据") - # return - - except KeyboardInterrupt: - print("\n⏹️ 用户中断模拟") - except Exception as e: - print(f"❌ 模拟出错: {e}") - finally: - self.stop_simulation() - - def stop_simulation(self): - """停止模拟""" - self.running = False - if self.client: - self.client.loop_stop() - self.client.disconnect() - print("✅ 模拟已停止") - -def main(): - """主函数""" - print("🏠 Energy Monitor 数据传输示例") - print("=" * 50) - print() - - # 创建示例实例 - example = DataTransmissionExample() - example.setup_mqtt() - - # 启动模拟(运行60秒) - example.start_simulation(duration=1000) - -if __name__ == "__main__": - main() diff --git a/delete.py b/delete.py deleted file mode 100644 index d90df4b..0000000 --- a/delete.py +++ /dev/null @@ -1,54 +0,0 @@ -import json -import paho.mqtt.client as mqtt - -MQTT_BROKER = "192.168.1.100" -MQTT_PORT = 1883 -MQTT_USERNAME = "" -MQTT_PASSWORD = "" -MQTT_CLIENT_ID = "ha_delete_discovery" - -SENSOR_IDS = [ - "solar_power", - "home_power", - "grid_import", - "grid_export", - "battery_charge", - "battery_discharge", - "battery_soc", - "battery_power", - "grid_power" -] - -# ==== 修改后的回调 ==== -def on_connect(client, userdata, flags, reason_code, properties=None): - if reason_code == 0: - print("✅ 已连接到 MQTT Broker") - else: - print(f"❌ 连接失败,原因码: {reason_code}") - -def on_publish(client, userdata, mid, reason_code, properties=None): - print(f"🧹 已发送删除命令 (mid={mid})") - -def delete_discovery_configs(): - client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, MQTT_CLIENT_ID) - if MQTT_USERNAME: - client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD) - - client.on_connect = on_connect - client.on_publish = on_publish - - print("🚀 正在连接 MQTT Broker ...") - client.connect(MQTT_BROKER, MQTT_PORT, 60) - client.loop_start() - - for sensor_id in SENSOR_IDS: - topic = f"homeassistant/sensor/{sensor_id}/config" - client.publish(topic, None, retain=True) - print(f"🗑️ 已发布空配置以删除实体:{sensor_id}") - - client.loop_stop() - client.disconnect() - print("✅ 所有 Discovery 配置已删除") - -if __name__ == "__main__": - delete_discovery_configs() diff --git a/img/app_config_mqtt.png b/img/app_config_mqtt.png new file mode 100644 index 0000000000000000000000000000000000000000..d0745fb863312d7f4667b4ad3ed1e59629f011c5 GIT binary patch literal 78260 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 literal 0 HcmV?d00001 diff --git a/img/demo.png b/img/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..07e09598dba4c139c2f3d2c25df228823d81d02e GIT binary patch literal 94108 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