@@ -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
2929Based 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
4545All 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+)
7573Growatt 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
80801 . Access inverter menu (usually hold OK button for 3 seconds)
81812 . 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)
84845 . 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
267269When 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
275277This 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` ` `
340355custom_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
0 commit comments