11# Growatt Modbus Integration for Home Assistant ☀️
22
33![ HACS Badge] ( https://img.shields.io/badge/HACS-Custom-orange.svg )
4- ![ Version] ( https://img.shields.io/badge/Version-0.0.2b -blue.svg )
4+ ![ Version] ( https://img.shields.io/badge/Version-0.0.3 -blue.svg )
55[ ![ GitHub Issues] ( https://img.shields.io/github/issues/0xAHA/Growatt_ModbusTCP.svg )] ( https://github.com/0xAHA/Growatt_ModbusTCP/issues )
66[ ![ GitHub Stars] ( https://img.shields.io/github/stars/0xAHA/Growatt_ModbusTCP.svg?style=social )] ( https://github.com/0xAHA/Growatt_ModbusTCP )
77
@@ -22,26 +22,51 @@ Based on the official **[Growatt Modbus RTU Protocol V1.39](https://shop.franken
2222- 🌡️ ** Complete diagnostics** - Temperatures, fault codes, derating status
2323- 💾 ** No cloud dependency** - Local polling, your data stays yours
2424- 🔄 ** Grid power inversion** - Fix backwards CT clamp installations with one click
25- - 🎛️ ** Multi-model support** - Profiles for MIN, MID, MAX, SPH, and MOD series
25+ - 🎛️ ** Multi-model support** - 14 profiles covering MIN, MID, MAX, SPH, MOD, TL-XH, MAC, MIX, SPA, and WIT series
2626
2727---
2828
2929## 🔌 Supported Inverter Models
3030
31- The integration supports multiple Growatt inverter series with dedicated register maps:
31+ The integration supports ** 14 different Growatt inverter profiles ** with dedicated register maps:
3232
33- | Inverter Series | Model Range | Type | Phase | Tested | Notes |
34- | ----------------| -------------| ------| -------| --------| -------|
35- | ** MIN 3000-6000TL-X** | 3000-6000TL-X | Grid-tied | Single | ⚠️ Untested | 2 PV strings, 3-6kW |
36- | ** MIN 7000-10000TL-X** | 7000-10000TL-X | Grid-tied | Single | ✅ ** Tested** | 3 PV strings, 7-10kW |
37- | ** MID 15000-25000TL3-X** | 15000-25000TL3-X | Grid-tied | Three | ⚠️ Untested | Commercial, 15-25kW |
38- | ** MAX 50000-125000TL3-X** | 50000-125000TL3-X | Grid-tied | Three | ⚠️ Untested | Industrial, 50-125kW |
39- | ** SPH 3000-10000** | SPH 3000-10000 | Hybrid | Single | ⚠️ Untested | Battery storage, 3-10kW |
40- | ** MOD 6000-15000TL3-XH** | MOD 6000-15000TL3-XH | Hybrid | Three | ⚠️ Untested | 3-phase hybrid, 6-15kW |
33+ ### Single-Phase Grid-Tied Inverters
34+
35+ | Inverter Series | Model Range | PV Strings | Tested | Notes |
36+ | ----------------| -------------| ------------| --------| -------|
37+ | ** MIN 3000-6000TL-X** | 3000-6000TL-X | 2 | ⚠️ Untested | Grid-tied, 3-6kW |
38+ | ** MIN 7000-10000TL-X** | 7000-10000TL-X | 3 | ✅ ** Tested** | Grid-tied, 7-10kW |
39+
40+ ### Single-Phase Hybrid Inverters (with Battery)
41+
42+ | Inverter Series | Model Range | PV Strings | Tested | Notes |
43+ | ----------------| -------------| ------------| --------| -------|
44+ | ** TL-XH 3000-10000** | TL-XH 3000-10000 | 3 | ⚠️ Untested | Hybrid with battery, 3-10kW |
45+ | ** TL-XH US 3000-10000** | TL-XH US 3000-10000 | 3 | ⚠️ Untested | US version hybrid, 3-10kW |
46+ | ** SPH 3000-10000** | SPH 3000-10000 | 2 | ⚠️ Untested | Storage hybrid, 3-10kW |
47+ | ** MIX Series** | Various | 2 | ⚠️ Untested | Legacy storage (merged into SPH) |
48+ | ** SPA Series** | Various | - | ⚠️ Untested | AC-coupled storage |
49+
50+ ### Three-Phase Grid-Tied Inverters
51+
52+ | Inverter Series | Model Range | PV Strings | Tested | Notes |
53+ | ----------------| -------------| ------------| --------| -------|
54+ | ** MID 15000-25000TL3-X** | 15000-25000TL3-X | 2 | ⚠️ Untested | Commercial, 15-25kW |
55+ | ** MAC 20000-40000TL3-X** | MAC 20000-40000TL3-X | 2 | ⚠️ Untested | Compact commercial, 20-40kW |
56+ | ** MAX 50000-125000TL3-X** | MAX 50000-125000TL3-X | 3 | ⚠️ Untested | Industrial, 50-125kW |
57+ | ** MAX 1500V Series** | MAX 1500V | 3+ | ⚠️ Untested | High-voltage, up to 150kW |
58+ | ** MAX-X LV Series** | MAX-X LV | 3+ | ⚠️ Untested | Low-voltage, up to 125kW |
59+
60+ ### Three-Phase Hybrid Inverters (with Battery)
61+
62+ | Inverter Series | Model Range | PV Strings | Tested | Notes |
63+ | ----------------| -------------| ------------| --------| -------|
64+ | ** MOD 6000-15000TL3-XH** | MOD 6000-15000TL3-XH | 3 | ⚠️ Untested | Modular hybrid, 6-15kW |
65+ | ** WIT TL3 Series** | WIT TL3 | 3+ | ⚠️ Untested | Business storage, up to 50kW |
4166
4267** Legend:**
4368- ✅ ** Tested** - Confirmed working with real hardware
44- - ⚠️ ** Untested** - Profile created from documentation, needs validation
69+ - ⚠️ ** Untested** - Profile created from official documentation, needs validation
4570
4671> 💡 ** Help us test!** If you have a model marked as untested and can confirm it works, please open an issue or PR to update the documentation!
4772
@@ -51,49 +76,49 @@ The integration supports multiple Growatt inverter series with dedicated registe
5176
5277Different inverter models create different sensors based on their capabilities:
5378
54- | Sensor | MIN 3-6k | MIN 7-10k | MID | MAX | SPH | MOD |
55- | --------| :--------:| :---------:| :---:| :---:| :---:| :---:|
79+ | Sensor | MIN 3-6k | MIN 7-10k | TL-XH | MID/MAC | MAX | SPH | MOD/WIT |
80+ | --------| :--------:| :---------:| :----- :| :------- :| :---:| :---: | :---- ---:|
5681| ** Solar Input** |
57- | PV1 Voltage/Current/Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
58- | PV2 Voltage/Current/Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
59- | PV3 Voltage/Current/Power | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ |
60- | Solar Total Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
82+ | PV1 Voltage/Current/Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
83+ | PV2 Voltage/Current/Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
84+ | PV3 Voltage/Current/Power | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ |
85+ | Solar Total Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
6186| ** AC Output (Single-Phase)** |
62- | AC Voltage/Current/Power | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
63- | AC Frequency | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
87+ | AC Voltage/Current/Power | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
88+ | AC Frequency | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
6489| ** AC Output (Three-Phase)** |
65- | AC Phase A/B/C Voltage | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
66- | AC Phase A/B/C Current | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
67- | AC Phase A/B/C Power | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
68- | AC Total Power | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
90+ | AC Phase R/S/T Voltage | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
91+ | AC Phase R/S/T Current | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
92+ | AC Phase R/S/T Power | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
93+ | AC Total Power | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
6994| ** Grid Power (Calculated)** |
70- | Grid Export Power | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
71- | Grid Import Power | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
72- | Self Consumption | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
73- | House Consumption | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
95+ | Grid Export Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
96+ | Grid Import Power | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
97+ | Self Consumption | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
98+ | House Consumption | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
7499| ** Grid Power (From Registers)** |
75- | Power to Grid | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
76- | Power to Load | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
77- | Power to User | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
100+ | Power to Grid | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
101+ | Power to Load | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
102+ | Power to User | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
78103| ** Battery (Hybrid Only)** |
79- | Battery Voltage/Current/Power | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
80- | Battery SOC | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
81- | Battery Temperature | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
104+ | Battery Voltage/Current/Power | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
105+ | Battery SOC | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
106+ | Battery Temperature | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
82107| ** Energy Totals** |
83- | Energy Today/Total | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
84- | Energy to Grid Today/Total | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
85- | Load Energy Today/Total | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
108+ | Energy Today/Total | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
109+ | Energy to Grid Today/Total | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
110+ | Load Energy Today/Total | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
86111| ** System & Diagnostics** |
87- | Inverter Temperature | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
88- | IPM Temperature | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
89- | Boost Temperature | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
90- | Status/Derating/Faults | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
112+ | Inverter Temperature | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
113+ | IPM Temperature | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
114+ | Boost Temperature | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
115+ | Status/Derating/Faults | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
91116
92117** Legend:**
93118- ✅ Available for this model
94119- ❌ Not available (hardware limitation)
95120
96- > 📝 ** Note:** Hybrid models (SPH/ MOD) have power flow measured directly from registers. Grid-tied models (MIN/ MID/ MAX) calculate power flow from solar production vs AC output.
121+ > 📝 ** Note:** Hybrid models (TL-XH, SPH, MOD, WIT ) have power flow measured directly from registers. Grid-tied models (MIN, MID, MAC, MAX) calculate power flow from solar production vs AC output.
97122
98123---
99124
@@ -169,14 +194,37 @@ Growatt COM Pin 4 (B) ──────► Adapter RS485-B (or D-)
169194
170195### Inverter Series Selection
171196
197+ Choose the profile that matches your inverter model:
198+
199+ #### Single-Phase Grid-Tied
172200| Selection | When to Use |
173201| -----------| -------------|
174202| ** MIN 3000-6000TL-X** | 2 PV string models (3-6kW single-phase) |
175203| ** MIN 7000-10000TL-X** | 3 PV string models (7-10kW single-phase) |
176- | ** MID 15000-25000TL3-X** | Commercial 3-phase grid-tied (15-25kW) |
177- | ** MAX 50000-125000TL3-X** | Industrial 3-phase grid-tied (50-125kW) |
178- | ** SPH 3000-10000** | Single-phase hybrid with battery (3-10kW) |
179- | ** MOD 6000-15000TL3-XH** | 3-phase hybrid with battery (6-15kW) |
204+
205+ #### Single-Phase Hybrid (with Battery)
206+ | Selection | When to Use |
207+ | -----------| -------------|
208+ | ** TL-XH 3000-10000** | 3 PV string hybrid with battery (3-10kW) |
209+ | ** TL-XH US 3000-10000** | US version 3 PV string hybrid (3-10kW) |
210+ | ** SPH 3000-10000** | 2 PV string storage hybrid (3-10kW) |
211+ | ** MIX Series** | Legacy storage system |
212+ | ** SPA Series** | AC-coupled storage system |
213+
214+ #### Three-Phase Grid-Tied
215+ | Selection | When to Use |
216+ | -----------| -------------|
217+ | ** MID 15000-25000TL3-X** | Commercial 3-phase (15-25kW) |
218+ | ** MAC 20000-40000TL3-X** | Compact commercial 3-phase (20-40kW) |
219+ | ** MAX 50000-125000TL3-X** | Industrial 3-phase (50-125kW) |
220+ | ** MAX 1500V Series** | High-voltage commercial (up to 150kW) |
221+ | ** MAX-X LV Series** | Low-voltage commercial (up to 125kW) |
222+
223+ #### Three-Phase Hybrid (with Battery)
224+ | Selection | When to Use |
225+ | -----------| -------------|
226+ | ** MOD 6000-15000TL3-XH** | Modular 3-phase hybrid (6-15kW) |
227+ | ** WIT TL3 Series** | Business storage 3-phase (up to 50kW) |
180228
181229### TCP Connection Settings
182230
@@ -195,9 +243,9 @@ Access via **Settings** → **Devices & Services** → **Growatt Modbus** → **
195243| ** Device Name** | "Growatt" | - | Friendly name (appears before all sensor names) |
196244| ** Scan Interval** | 30 seconds | 5-300s | How often to poll inverter |
197245| ** Connection Timeout** | 10 seconds | 1-60s | How long to wait for responses |
198- | ** Invert Grid Power** 🆕 | OFF | ON/OFF | ** Reverse import/export if CT clamp backwards** |
246+ | ** Invert Grid Power** | OFF | ON/OFF | ** Reverse import/export if CT clamp backwards** |
199247
200- ### 🔄 Invert Grid Power (New in v0.0.2!)
248+ ### 🔄 Invert Grid Power
201249
202250Got your CT clamp installed backwards? No problem! Just enable this option:
203251
@@ -233,9 +281,9 @@ Got your CT clamp installed backwards? No problem! Just enable this option:
233281| ` sensor.{name}_pv2_voltage ` | PV2 Voltage | V | String 2 DC voltage |
234282| ` sensor.{name}_pv2_current ` | PV2 Current | A | String 2 DC current |
235283| ` sensor.{name}_pv2_power ` | PV2 Power | W | String 2 power output |
236- | ` sensor.{name}_pv3_voltage ` | PV3 Voltage | V | String 3 DC voltage (MIN 7-10k, MID, MAX, MOD only ) |
237- | ` sensor.{name}_pv3_current ` | PV3 Current | A | String 3 DC current (MIN 7-10k, MID, MAX, MOD only ) |
238- | ` sensor.{name}_pv3_power ` | PV3 Power | W | String 3 power output (MIN 7-10k, MID, MAX, MOD only ) |
284+ | ` sensor.{name}_pv3_voltage ` | PV3 Voltage | V | String 3 DC voltage (selected models ) |
285+ | ` sensor.{name}_pv3_current ` | PV3 Current | A | String 3 DC current (selected models ) |
286+ | ` sensor.{name}_pv3_power ` | PV3 Power | W | String 3 power output (selected models ) |
239287| ` sensor.{name}_solar_total_power ` | Solar Total Power | W | Combined PV power |
240288
241289** Attributes:**
@@ -256,15 +304,15 @@ Got your CT clamp installed backwards? No problem! Just enable this option:
256304
257305| Entity ID | Name | Unit | Description |
258306| -----------| ------| ------| -------------|
259- | ` sensor.{name}_ac_voltage_a ` | AC Voltage Phase A | V | Phase A voltage |
260- | ` sensor.{name}_ac_voltage_b ` | AC Voltage Phase B | V | Phase B voltage |
261- | ` sensor.{name}_ac_voltage_c ` | AC Voltage Phase C | V | Phase C voltage |
262- | ` sensor.{name}_ac_current_a ` | AC Current Phase A | A | Phase A current |
263- | ` sensor.{name}_ac_current_b ` | AC Current Phase B | A | Phase B current |
264- | ` sensor.{name}_ac_current_c ` | AC Current Phase C | A | Phase C current |
265- | ` sensor.{name}_ac_power_a ` | AC Power Phase A | W | Phase A power |
266- | ` sensor.{name}_ac_power_b ` | AC Power Phase B | W | Phase B power |
267- | ` sensor.{name}_ac_power_c ` | AC Power Phase C | W | Phase C power |
307+ | ` sensor.{name}_ac_voltage_r ` | AC Voltage Phase R | V | Phase R voltage |
308+ | ` sensor.{name}_ac_voltage_s ` | AC Voltage Phase S | V | Phase S voltage |
309+ | ` sensor.{name}_ac_voltage_t ` | AC Voltage Phase T | V | Phase T voltage |
310+ | ` sensor.{name}_ac_current_r ` | AC Current Phase R | A | Phase R current |
311+ | ` sensor.{name}_ac_current_s ` | AC Current Phase S | A | Phase S current |
312+ | ` sensor.{name}_ac_current_t ` | AC Current Phase T | A | Phase T current |
313+ | ` sensor.{name}_ac_power_r ` | AC Power Phase R | W | Phase R power |
314+ | ` sensor.{name}_ac_power_s ` | AC Power Phase S | W | Phase S power |
315+ | ` sensor.{name}_ac_power_t ` | AC Power Phase T | W | Phase T power |
268316| ` sensor.{name}_ac_power_total ` | AC Total Power | W | Total 3-phase power |
269317| ` sensor.{name}_ac_frequency ` | AC Frequency | Hz | Grid frequency |
270318
@@ -469,8 +517,9 @@ custom_components/growatt_modbus/
469517├── __init__.py # Integration setup
470518├── binary_sensor.py # Binary sensors (inverter connectivity)
471519├── config_flow.py # Configuration UI with inverter series selection
472- ├── const.py # Register definitions for all models (V1.39)
520+ ├── const.py # Register definitions for all 14 models (V1.39)
473521├── coordinator.py # Data coordinator with night-time handling
522+ ├── device_profiles.py # Inverter profile definitions
474523├── growatt_modbus.py # Modbus communication (pymodbus 2.x & 3.x)
475524├── manifest.json # Integration metadata
476525├── sensor.py # Sensor platform with model-specific sensors
@@ -491,15 +540,21 @@ To view device information:
491540
492541---
493542
494- ## 🆕 What's New in v0.0.2
543+ ## 🆕 What's New in v0.0.3
544+
545+ - 🎛️ ** Expanded Model Support** - Now supports 14 inverter profiles (up from 6)
546+ - 🔋 ** Fixed SPH Register Map** - SPH models now include complete PV, AC, and battery sensors
547+ - ⚡ ** New Hybrid Series** - Added TL-XH, TL-XH US profiles for single-phase hybrid inverters
548+ - 🏭 ** More Commercial Models** - Added MAC, MAX 1500V, MAX-X LV, WIT TL3 series
549+ - 💾 ** Legacy Storage** - Added MIX and SPA series profiles
550+ - 📊 ** Profile-Based Sensors** - Optimized sensor creation based on inverter capabilities
551+ - 🐛 ** Bug Fixes** - Resolved config flow loading issues and type hint errors
495552
496- - 🎛️ ** Multi-Model Support ** - Added profiles for MIN (3-6k & 7-10k), MID, MAX, SPH, and MOD series
553+ ### v0.0.2 Features (Previously Released)
497554- 🔄 ** Invert Grid Power Option** - Fix backwards CT clamp installations via UI toggle
498555- 📊 ** Model-Specific Sensors** - Only relevant sensors created based on inverter capabilities
499556- ⚡ ** Three-Phase Support** - Full support for MID, MAX, and MOD models
500- - 🔋 ** Battery Sensors** - Complete battery monitoring for SPH and MOD hybrid models
501557- 🎨 ** Enhanced Configuration UI** - Better inverter series selection with descriptions
502- - 📝 ** Improved Options Flow** - Device name, timeout, and grid power inversion settings
503558
504559---
505560
@@ -526,13 +581,12 @@ Contributions welcome! Here's how:
526581
527582### Help Us Test More Models! 🧪
528583
529- We need community members with different inverter models to validate the untested profiles:
584+ We need community members with different inverter models to validate the untested profiles. Currently only ** MIN 7000-10000TL-X ** is tested with real hardware!
530585
531- - MIN 3000-6000TL-X series
532- - MID 15000-25000TL3-X series
533- - MAX 50000-125000TL3-X series
534- - SPH 3000-10000 series
535- - MOD 6000-15000TL3-XH series
586+ ** Profiles needing validation:**
587+ - All single-phase grid-tied (MIN 3-6k)
588+ - All hybrid models (TL-XH, SPH, MIX, SPA)
589+ - All three-phase models (MID, MAC, MAX variants, MOD, WIT)
536590
537591If you successfully test any of these, please report back via GitHub Issues!
538592
@@ -548,7 +602,7 @@ MIT License - see [LICENSE](LICENSE) file for details.
548602
549603- 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)
550604- Built for the Home Assistant community
551- - Tested by solar enthusiasts worldwide 🌍
605+ - Tested by solar enthusiasts worldwide (soon, hopefully) 🌍
552606- Special thanks to all hardware testers and contributors
553607- MIN-10000TL-X validation by [ @0xAHA ] ( https://github.com/0xAHA )
554608
0 commit comments