Skip to content

Commit 0808d9d

Browse files
committed
update readme
1 parent 2c6b289 commit 0808d9d

2 files changed

Lines changed: 92 additions & 66 deletions

File tree

README.md

Lines changed: 91 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ Based on the official **[Growatt Modbus RTU Protocol V1.39](https://shop.franken
1313

1414
## ✨ Features
1515

16-
* 📊 **Real-time monitoring** - Direct Modbus communication with your inverter - no more 5-minute averages
17-
* 🌙 **Night-time friendly** - Sensors stay available when inverter is offline (no sun)
18-
***Smart power flow** - Automatic calculation of export, import, and self-consumption
19-
* 🔌 **Multiple connections** - TCP (WiFi/Ethernet adapters)
20-
* 📈 **Energy dashboard ready** - Automatic integration with HA Energy Dashboard
21-
* 🎯 **Official registers** - Uses verified Growatt protocol documentation
22-
* 🌡️ **Complete diagnostics** - Temperatures, fault codes, derating status
23-
* 💾 **No cloud dependency** - Local polling, your data stays yours
16+
- 📊 **Real-time monitoring** - Direct Modbus communication with your inverter
17+
- 🌙 **Night-time friendly** - Sensors stay available when inverter is offline (no sun)
18+
-**Smart power flow** - Automatic calculation of export, import, and self-consumption
19+
- 🔌 **Multiple connections** - TCP (WiFi/Ethernet adapters)
20+
- 📈 **Energy dashboard ready** - Automatic integration with HA Energy Dashboard
21+
- 🎯 **Official registers** - Uses verified Growatt protocol documentation
22+
- 🌡️ **Complete diagnostics** - Temperatures, fault codes, derating status
23+
- 💾 **No cloud dependency** - Local polling, your data stays yours
2424

2525
---
2626

27-
## 🔌 Supported Models*
27+
## 🔌 Supported Models
2828

2929
Based on Growatt MIN-10000-TL-X Modbus Register Map (Protocol V1.39):
3030

@@ -44,15 +44,13 @@ Based on Growatt MIN-10000-TL-X Modbus Register Map (Protocol V1.39):
4444

4545
All models support both base (0-124) and storage (3000-3124) register ranges.
4646

47-
* Based on the documented registers, may not be physically tested
48-
4947
---
5048

5149
## 🛠️ Hardware Setup
5250

5351
### Inverter Connection
5452

55-
Growatt inverters have a **SYS/COM port** on the bottom. It is likely that your installer has wired this to your smart meter and there's almost certainly space in the connector/gland to fit an additional cable. You need to connect **pins 3 & 4** to your RS485/WiFi adapter. The terminals are small screw terminals, so no additional/fancy tools required.
53+
Growatt inverters have a **SYS/COM port** on the bottom. It is likely that your inverter install ran a small cable only connecting the 2 pins to the smart meter. There should be space to put another cable through the gland to connect the RS485 adapter. You need to connect to **pins 3 & 4**. Conveniently, the terminals are just small screw terminals so no special tool/pins are required.
5654

5755
### Connection Hardware
5856

@@ -75,12 +73,14 @@ Growatt COM Pin 3 (A) ──────► Adapter RS485-A (or D+)
7573
Growatt COM Pin 4 (B) ──────► Adapter RS485-B (or D-)
7674
```
7775

78-
### Inverter Settings
76+
> ⚠️ **Note:** If data looks garbled, try swapping A and B connections. Some adapters label differently.
77+
78+
### Inverter Settings (optional)
7979

8080
1. Access inverter menu (usually hold OK button for 3 seconds)
8181
2. Navigate to **Communication** settings
82-
3. Set **Modbus Address** : `1` (default)
83-
4. Set **Baud Rate** : `9600` (default)
82+
3. Set **Modbus Address**: `1` (default)
83+
4. Set **Baud Rate**: `9600` (default)
8484
5. Save and exit
8585

8686
---
@@ -122,10 +122,10 @@ Growatt COM Pin 4 (B) ──────► Adapter RS485-B (or D-)
122122

123123
#### TCP Configuration
124124

125-
* **Host** : IP address of your RS485-TCP adapter (e.g., `192.168.1.100`)
126-
* **Port** : `502` (standard Modbus TCP port)
127-
* **Slave ID** : `1` (check inverter display if unsure)
128-
* **Register Map** : `MIN_10000_TL_X_OFFICIAL` (recommended)
125+
- **Host**: IP address of your RS485-TCP adapter (e.g., `192.168.1.100`)
126+
- **Port**: `502` (standard Modbus TCP port)
127+
- **Slave ID**: `1` (check inverter display if unsure)
128+
- **Register Map**: `MIN_10000_TL_X_OFFICIAL` (recommended)
129129

130130
### Register Maps
131131

@@ -135,6 +135,8 @@ Growatt COM Pin 4 (B) ──────► Adapter RS485-B (or D-)
135135
| **MIN_10000_TL_X_OFFICIAL** | Official Growatt V1.39 protocol (3000+ range) | Default choice for all MIN series |
136136
| **MIN_SERIES_BASE_RANGE** | Alternative addressing (0-124 range) | If official map doesn't work |
137137

138+
> 💡 **Migration:** Old register maps (`MIN_10000_VARIANT_A`, `MIN_10000_CORRECTED`) automatically upgrade to the official mapping.
139+
138140
---
139141

140142
## 📊 Available Sensors
@@ -154,9 +156,9 @@ Growatt COM Pin 4 (B) ──────► Adapter RS485-B (or D-)
154156

155157
**Attributes:**
156158

157-
* `firmware_version` - Inverter firmware
158-
* `serial_number` - Inverter serial number
159-
* `last_successful_update` - Last time inverter responded
159+
- `firmware_version` - Inverter firmware
160+
- `serial_number` - Inverter serial number
161+
- `last_successful_update` - Last time inverter responded
160162

161163
### AC Output
162164

@@ -180,10 +182,10 @@ Growatt COM Pin 4 (B) ──────► Adapter RS485-B (or D-)
180182

181183
**Attributes:**
182184

183-
* `solar_production` - Current solar generation
184-
* `grid_export` - Power exported to grid
185-
* `house_load` - Current house consumption
186-
* `self_consumption_percentage` - % of solar self-consumed
185+
- `solar_production` - Current solar generation
186+
- `grid_export` - Power exported to grid
187+
- `house_load` - Current house consumption
188+
- `self_consumption_percentage` - % of solar self-consumed
187189

188190
### Power Flow (Storage/Hybrid Models)
189191

@@ -221,9 +223,9 @@ Growatt COM Pin 4 (B) ──────► Adapter RS485-B (or D-)
221223

222224
**Status Values:**
223225

224-
* `Waiting` - Waiting for sufficient PV power or grid
225-
* `Normal` - Operating normally
226-
* `Fault` - Fault condition detected
226+
- `Waiting` - Waiting for sufficient PV power or grid
227+
- `Normal` - Operating normally
228+
- `Fault` - Fault condition detected
227229

228230
---
229231

@@ -266,19 +268,19 @@ sensor.{name}_house_consumption
266268

267269
When the inverter powers down (no sun), the integration handles it gracefully:
268270

269-
* ✅ Sensors remain **available** (not "unavailable")
270-
* ✅ Last known values retained (typically 0W)
271-
*`last_successful_update` attribute shows when data was last fresh
272-
* ✅ Logs show DEBUG messages instead of errors
273-
* ✅ Resumes automatically when sun returns
271+
- ✅ Sensors remain **available** (not "unavailable")
272+
- ✅ Last known values retained (typically 0W)
273+
-`last_successful_update` attribute shows when data was last fresh
274+
- ✅ Logs show DEBUG messages instead of errors
275+
- ✅ Resumes automatically when sun returns
274276

275277
This prevents sensor unavailability cascades in your automations and dashboards!
276278

277279
---
278280

279281
## 🔧 Configuration Options
280282

281-
Access via **Settings****Devices & Services****Growatt Modbus** **Configure** :
283+
Access via **Settings****Devices & Services****Growatt Modbus****Configure**:
282284

283285

284286
| Option | Default | Description |
@@ -292,34 +294,47 @@ Access via **Settings** → **Devices & Services** → **Growatt Modbus** → *
292294

293295
## 🐛 Troubleshooting
294296

297+
### Connection Issues
298+
299+
**TCP Connection:**
300+
301+
```bash
302+
# Test if adapter is reachable
303+
ping 192.168.1.100
304+
305+
# Check if Modbus port is open (Linux/Mac)
306+
telnet 192.168.1.100 502
307+
```
308+
295309
### Common Problems
296310

297311
#### "Failed to connect to inverter"
298312

299-
* ✅ Check wiring (A and B may need swapping)
300-
* ✅ Verify IP address
301-
* ✅ Confirm inverter Modbus address (usually 1)
302-
* ✅ Ensure baud rate is 9600
303-
* ✅ Check if inverter has power (try during daytime)
313+
- ✅ Check wiring (A and B may need swapping)
314+
- ✅ Verify IP address
315+
- ✅ Confirm inverter Modbus address (usually 1)
316+
- ✅ Ensure baud rate is 9600
317+
- ✅ Check if inverter has power (try during daytime)
304318

305319
#### "Unknown register map"
306320

307-
* ✅ Try `MIN_10000_TL_X_OFFICIAL` first
308-
* ✅ Fall back to `MIN_SERIES_BASE_RANGE` if needed
321+
- ✅ Integration auto-migrates old maps
322+
- ✅ Try `MIN_10000_TL_X_OFFICIAL` first
323+
- ✅ Fall back to `MIN_SERIES_BASE_RANGE` if needed
309324

310325
#### Power values look wrong
311326

312-
* ✅ Compare readings with inverter display
313-
* ✅ Check sensor attributes for calculation method
314-
* ✅ Try alternative register map
315-
* ✅ Enable DEBUG logging and check logs
327+
- ✅ Compare readings with inverter display
328+
- ✅ Check sensor attributes for calculation method
329+
- ✅ Try alternative register map
330+
- ✅ Enable DEBUG logging and check logs
316331

317332
#### Sensors show "Unavailable"
318333

319-
* ✅ Check if this is during night time (expected if first-time setup)
320-
* ✅ Wait for sunrise and inverter to power on
321-
* ✅ Check logs for connection errors
322-
* ✅ Verify network/serial connection
334+
- ✅ Check if this is during night time (expected if first-time setup)
335+
- ✅ Wait for sunrise and inverter to power on
336+
- ✅ Check logs for connection errors
337+
- ✅ Verify network/serial connection
323338

324339
### Enable Debug Logging
325340

@@ -339,9 +354,10 @@ logger:
339354
```
340355
custom_components/growatt_modbus/
341356
├── __init__.py # Integration setup
357+
├── binary_sensor.py # Binary sensors (inverter connectivity)
342358
├── config_flow.py # Configuration UI
343359
├── const.py # Register definitions (official V1.39)
344-
├── coordinator.py # Data coordinator with auto-migration
360+
├── coordinator.py # Data coordinator with night-time handling
345361
├── growatt_modbus.py # Modbus communication (pymodbus 2.x & 3.x)
346362
├── manifest.json # Integration metadata
347363
├── sensor.py # Sensor platform with calculated values
@@ -350,6 +366,16 @@ custom_components/growatt_modbus/
350366
└── en.json # English translations
351367
```
352368

369+
### Device Information
370+
371+
All device metadata (firmware version, serial number, register map) is available in the **Device Info** section of the integration rather than as sensor attributes. This keeps sensor entities clean and follows Home Assistant best practices.
372+
373+
To view device information:
374+
375+
1. Go to **Settings****Devices & Services****Growatt Modbus**
376+
2. Click on your inverter device
377+
3. View firmware, serial number, and other metadata in the device info card
378+
353379
---
354380

355381
## 🔌 API Reference
@@ -436,35 +462,35 @@ Contributions welcome! Here's how:
436462

437463
### Testing Checklist
438464

439-
* ✅ Tested with actual Growatt hardware
440-
* ✅ Verified TCP connections
441-
* ✅ Checked night-time behavior (inverter offline)
442-
* ✅ Confirmed Energy Dashboard integration
443-
* ✅ Validated all sensors appear correctly
444-
* ✅ Reviewed logs for errors/warnings
465+
- ✅ Tested with actual Growatt hardware
466+
- ✅ Verified TCP Connection
467+
- ✅ Checked night-time behavior (inverter offline)
468+
- ✅ Confirmed Energy Dashboard integration
469+
- ✅ Validated all sensors appear correctly
470+
- ✅ Reviewed logs for errors/warnings
445471

446472
---
447473

448474
## 📄 License
449475

450-
MIT License - see [LICENSE](https://claude.ai/chat/LICENSE) file for details.
476+
MIT License - see [LICENSE](LICENSE) file for details.
451477

452478
---
453479

454480
## 🙏 Acknowledgments
455481

456-
* Based on [Growatt Modbus RTU Protocol V1.39](https://shop.frankensolar.ca/content/documentation/Growatt/AppNote_Growatt_WIT-Modbus-RTU-Protocol-II-V1.39-English-20240416_%28frankensolar%29.pdf) (2024.04.16)
457-
* Built for the Home Assistant community
458-
* Tested by solar enthusiasts worldwide 🌍
459-
* Special thanks to all hardware testers and contributors
482+
- Based on [Growatt Modbus RTU Protocol V1.39](https://shop.frankensolar.ca/content/documentation/Growatt/AppNote_Growatt_WIT-Modbus-RTU-Protocol-II-V1.39-English-20240416_%28frankensolar%29.pdf) (2024.04.16)
483+
- Built for the Home Assistant community
484+
- Tested by solar enthusiasts worldwide 🌍
485+
- Special thanks to all hardware testers and contributors
460486

461487
---
462488

463489
## 📞 Support
464490

465-
* **Issues:** [GitHub Issues](https://github.com/0xAHA/Growatt_ModbusTCP/issues)
466-
* **Discussions:** [GitHub Discussions](https://github.com/0xAHA/Growatt_ModbusTCP/discussions)
467-
* **Home Assistant Community:** [Community Forum](https://community.home-assistant.io/)
491+
- **Issues:** [GitHub Issues](https://github.com/0xAHA/Growatt_ModbusTCP/issues)
492+
- **Discussions:** [GitHub Discussions](https://github.com/0xAHA/Growatt_ModbusTCP/discussions)
493+
- **Home Assistant Community:** [Community Forum](https://community.home-assistant.io/)
468494

469495
---
470496

hacs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"name": "Growatt_ModbusTCP"
2+
"name": "Growatt_Modbus"
33
}

0 commit comments

Comments
 (0)