Skip to content

Commit 1149e93

Browse files
authored
Merge pull request #107 from Monitor-My-Solar/feature/unified-topics
Feature/unified topics
2 parents 945f2b6 + f28bc6e commit 1149e93

47 files changed

Lines changed: 5172 additions & 1258 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/tests.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
jobs:
9+
pytest:
10+
name: pytest (Python ${{ matrix.python-version }})
11+
runs-on: ubuntu-latest
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
python-version: ["3.12", "3.13"]
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
21+
- name: Set up Python ${{ matrix.python-version }}
22+
uses: actions/setup-python@v5
23+
with:
24+
python-version: ${{ matrix.python-version }}
25+
cache: pip
26+
27+
- name: Install test dependencies
28+
run: |
29+
python -m pip install --upgrade pip
30+
pip install -r requirements-test.txt
31+
32+
- name: Byte-compile the integration
33+
run: python -m py_compile custom_components/monitormysolar/*.py
34+
35+
- name: Run pytest
36+
run: python -m pytest tests/ -q

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,10 @@ monitormysolar-schedule-card/
1111
*.claude
1212
claude.md
1313
docs/
14+
.idea/
15+
.idea
16+
# Test virtualenv
17+
.venv/
18+
__pycache__/
19+
.pytest_cache/
20+
RELEASE_NOTES_4.0.0.md

.idea/.gitignore

Lines changed: 0 additions & 6 deletions
This file was deleted.

.idea/modules.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

.idea/monitormysolar.iml

Lines changed: 0 additions & 8 deletions
This file was deleted.

.idea/vcs.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

README.md

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,39 @@
11
# Monitor My Solar - Home Assistant Integration
22

3-
[![Version](https://img.shields.io/badge/version-3.0.0-blue.svg)](https://github.com/Monitor-My-Solar/monitormysolar)
3+
[![Version](https://img.shields.io/badge/version-4.0.0-blue.svg)](https://github.com/Monitor-My-Solar/monitormysolar)
4+
[![Tests](https://github.com/Monitor-My-Solar/monitormysolar/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/Monitor-My-Solar/monitormysolar/actions/workflows/tests.yaml)
45
[![HACS](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/hacs/integration)
56
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
67

78
A powerful Home Assistant integration for solar inverter monitoring and control through Monitor My Solar hardware dongles.
89

9-
## Dongles are required to be on Version 3.0.0 for all the features below to work.
10-
- Dongles that do not update to Version 3.0.0 before 02/07/2025 will no longer receive OTA updates and you will need to contact Monitor My Solar to get a upgrade path
10+
## Dongle firmware 4.3.0+ recommended for v4.0.0.
11+
- The integration still works with older dongle firmware, but the best experience
12+
(change-only data streaming, instant write confirmation, and over-the-air
13+
firmware updates) needs **firmware 4.3.0 or newer**.
14+
- **Firmware updates from Home Assistant now require firmware 4.3.0+.** If your
15+
dongle is older, update it to 4.3.0 by the previous method or mobile app first.
16+
- The dongle's IP address is **no longer needed** for anything in v4.0.0.
17+
18+
See the [CHANGELOG](custom_components/monitormysolar/CHANGELOG.md) for the full v4.0.0 notes.
1119

1220

1321
## 🌟 Features
1422

1523
- **Real-time monitoring** of all inverter parameters
1624
- **Full control** over inverter settings
1725
- **Multi-inverter support** with automatic synchronization
18-
- **GridBoss support** (NEW in v3.0.0) for advanced distribution monitoring
26+
- **GridBoss support** for advanced distribution monitoring
1927
- **Conditional Entity System** - Smart entity availability based on configuration
20-
- **Firmware updates** with progress tracking
28+
- **Over-the-air firmware updates over MQTT** with live progress (firmware 4.3.0+)
2129
- **No cloud dependency** - fully local control
2230

2331
## 📋 Supported Inverters
2432

2533
| Brand | Status | GridBoss Support |
2634
|-------|--------|------------------|
27-
| LuxPower | ✅ Fully Supported | ✅ IAAB Firmware |
35+
| LuxPower | ✅ Fully Supported | ✅ GridBoss (I-family firmware) |
36+
| Deye / SunSynk / SolArk / NeoVolta | ✅ Supported ||
2837
| Solis | 🔜 Coming Soon ||
2938
| Solax | 🔜 Coming Soon ||
3039
| Growatt | 🔜 Coming Soon ||
@@ -109,17 +118,17 @@ Configure your dongle(s) based on setup type:
109118
| Field | Description | Example |
110119
|-------|-------------|---------|
111120
| Dongle ID | From dongle web interface | dongle-12:34:56:78:90:ab |
112-
| Dongle IP | For firmware updates (optional) | 192.168.1.150 |
121+
122+
> Note: The dongle IP address is no longer collected. Firmware updates and admin
123+
> actions run over MQTT in v4.0.0.
113124
114125
**Parallel Inverters:**
115126
- Master dongle ID (required)
116127
- Up to 5 slave dongle IDs (optional)
117-
- IP addresses for each dongle (optional)
118128

119129
**GridBoss Setup:**
120130
- GridBoss dongle ID (required)
121131
- Up to 3 slave dongle IDs (optional)
122-
- IP addresses for each dongle (optional)
123132

124133
<p align="center">
125134
<a href="https://github.com/Monitor-My-Solar/monitormysolar/blob/main/images/page1.png?raw=true" target="_blank">
@@ -132,9 +141,11 @@ Configure your dongle(s) based on setup type:
132141
</a>
133142
</p>
134143

135-
## 🆕 GridBoss Configuration (v3.0.0)
144+
## 🆕 GridBoss Configuration
136145

137-
GridBoss support is available for LuxPower inverters with firmware code **IAAB**.
146+
GridBoss support is available for LuxPower GridBoss units (I-family firmware). A
147+
GridBoss unit is detected automatically from its firmware, so it appears as its own
148+
device with only its relevant entities.
138149

139150
### GridBoss Setup Types
140151

@@ -148,12 +159,11 @@ GridBoss support is available for LuxPower inverters with firmware code **IAAB**
148159
- Ideal for larger commercial installations
149160
- Provides 8 SmartLoads and 8 AC Coupling ports total
150161

151-
### Enabling GridBoss for Existing Installations
162+
### GridBoss detection
152163

153-
1. Go to integration → **Configure**
154-
2. Select **Update Settings**
155-
3. Check **"GridBoss Connected"**
156-
4. Click **Submit**
164+
GridBoss units are detected from their firmware, so there is no manual "GridBoss
165+
Connected" toggle to set. Choose the Single GridBoss or Dual GridBoss setup type
166+
when adding the integration, and enter the GridBoss dongle ID(s).
157167

158168

159169

@@ -182,7 +192,11 @@ Access via **Configure** button on the integration:
182192
### 1. Manage Dongles
183193
- Add parallel inverters
184194
- Remove dongles
185-
- Update IP addresses
195+
- Replace a dongle (transfers all entities and history to the new one)
196+
197+
### Restore Deleted Entities
198+
- Bring back entities that were deleted or disabled, without deleting and re-adding
199+
the whole integration.
186200

187201
<p align="center">
188202
<a href="https://github.com/Monitor-My-Solar/monitormysolar/images/configflow.png" target="_blank">
@@ -191,8 +205,10 @@ Access via **Configure** button on the integration:
191205
</p>
192206

193207
### 2. Update Settings
194-
- Database write intervals
195-
- GridBoss enable/disable
208+
- Use input box for numbers (instead of sliders)
209+
- Enable device grouping (organise entities into sub-devices)
210+
- Add the dongle ID to entity names (single-dongle installs)
211+
- Use Beta Firmware track
196212

197213
<p align="center">
198214
<a href="https://github.com/Monitor-My-Solar/monitormysolar/blob/main/images/updateSettings.png?raw=true" target="_blank">
@@ -213,11 +229,13 @@ Access via **Configure** button on the integration:
213229

214230
## 🔄 Firmware Updates
215231

216-
1. Ensure dongle IP is configured
217-
2. Click on the update entity
218-
3. View available updates and release notes
219-
4. Click **Install** to update
220-
5. Monitor real-time progress
232+
Firmware updates run **over MQTT** (firmware 4.3.0+ required), no dongle IP needed.
233+
234+
1. Click on the update entity
235+
2. View available updates and release notes
236+
3. Click **Install** to update
237+
4. Monitor real-time progress; the dongle reboots during the update
238+
5. Optional: choose the prod or beta track via the **Use Beta Firmware** setting
221239

222240
<p align="center">
223241
<a href="https://github.com/Monitor-My-Solar/monitormysolar/blob/main/images/firmware.png?raw=true" target="_blank">
@@ -251,9 +269,11 @@ sensor.combined_sync_status # Monitor sync status
251269
| No entities created | Check MQTT connection and logs |
252270
| Firmware timeout | Verify dongle ID is lowercase |
253271
| Time settings not saving | Switch to 24-hour format |
254-
| GridBoss entities missing | Verify firmware code IAAB |
272+
| GridBoss entities missing | Verify the unit is a GridBoss (I-family firmware) |
255273
| Entities grayed out | Check conditional entity configuration |
256274
| Port settings unavailable | Set port mode first, then configure settings |
275+
| Duplicate `_2` entities after upgrade | Cleaned up automatically on first start; see `monitormysolar_migration.log` in your config folder |
276+
| An entity is stuck "unavailable" | Your unit may not report it (varies by family); remove it, or use Options → Restore Deleted Entities |
257277

258278

259279
### Debug Tools

0 commit comments

Comments
 (0)