About
Growatt Modbus is an integration that reads Growatt solar inverters over Modbus TCP or a serial connection. It communicates locally, without the cloud, ShineWiFi or Growatt's servers. It adds sensors, binary sensors, numbers, selects, switches, time entities and buttons, including an inverter clock sync and switches for inverter power and AC output. Options cover scan interval, a slower offline interval, connection timeout, request delay, inverted grid or battery power, and a battery voltage range override. Setup runs in the UI, offers a choice of inverter series, and includes a safety check for off-grid SPF models, which use a different protocol. Repair notices flag problems such as reverted settings, mismatched gateway responses or a likely wrong profile, and a diagnostics download is available for bug reports.
Automatic summary of the README and code of 0xAHA/Growatt_ModbusTCP. Something wrong, or are you the maintainer and want your own text here? Get in touch
Supports
Works locally Talks to your devices on your own network. No vendor cloud in between.
From the Marketplace Installed through the Marketplace, formerly HACS.
Actively maintained Its author released or pushed a change in the last six months.
Provides
- Switches
- Sensors
Setting it up
Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.
Growatt Modbus Setup
- Integration NameFriendly name for this inverter
- Inverter SeriesSelect your inverter model/series
- Connection TypeHow to connect to your inverter
Select your inverter model
- Inverter model
TCP Connection Settings
- IP AddressIP address of your RS485-to-TCP converter
- PortModbus TCP port (usually 502)
- Modbus Slave IDInverter Modbus address (usually 1)
- Add anyway, without a connection testAdds the inverter even though it did not answer. Use this if it is offline for now, or if it is not supported yet and you need the register scanner to produce a scan.
- Connection hardwareSets starting values for the polling settings below. Pick a Growatt dongle if you use one - they need slower, smaller reads to stay connected.
Serial Connection Settings
- Device PathSerial device path (e.g., /dev/ttyUSB0 or COM3)
- Baud RateSerial communication speed (usually 9600)
- Modbus Slave IDInverter Modbus address (usually 1)
⚠️ Off-Grid Inverter Safety Check
- I have an Off-Grid (SPF) inverterEnable this ONLY if you have an SPF series off-grid inverter. Off-Grid inverters use a different protocol and will reset if VPP registers are accessed.
After setup
- Device NameFriendly name for the device (appears before all sensor names)
- Inverter SeriesSelect your inverter model/series (auto-selects protocol version)
- Scan IntervalHow often to poll the inverter when online (5-300 seconds)
- Offline Scan IntervalHow often to poll when inverter is offline/at night (60-3600 seconds, default 300)
- Connection TimeoutHow long to wait for responses from the inverter (1-60 seconds)
- Invert Grid PowerEnable if CT clamp installed backwards (swaps import/export on AC side)
- Invert Battery PowerEnable if battery power shows opposite direction (inverts charge/discharge sign)
- Battery Voltage RangeOverride automatic battery voltage register selection. Use High-voltage when VPP register 31214 does not respond and register 3169 reads ~10× too low (symptom of a 16-bit overflow on ARK/HV battery systems).
- Modbus Request Delay (ms)Minimum pause between consecutive Modbus requests within a poll cycle (50–1000 ms, default 250). Increase to 500–1000 ms if the log shows transaction ID mismatch errors or if the inverter logs spurious fault entries while the integration is running.
- USB / Serial PortPaths under /dev/serial/by-id/ are tied to the adapter itself and survive a reboot. A /dev/ttyUSB path is assigned in plug order and can move to a different device when you have more than one USB serial adapter.
- Or enter a path manuallyOverrides the selection above. Use this if the adapter is not listed, or to paste a /dev/serial/by-id/ path.
- Baud Rate
- Host / IP AddressIP address or hostname of the RS485-to-TCP gateway.
- TCP Port
- Unit / Slave IDModbus unit ID the inverter answers on. Usually 1. If every reading is unavailable and the log shows transport errors, this is worth checking with a standalone Modbus client - some inverters ignore the address configured in ShineTools and only answer on 1.
Texts from the code of 0xAHA/Growatt_ModbusTCP.
Entities
- ButtonsInverter Clock Sync, Wake APX Battery
- SensorsAC Apparent Power, AC Charge Energy Today, AC Charge Energy Total, AC Charge Max Power, AC Current, AC Current Phase R, AC Current Phase S, AC Current Phase T, AC Discharge Energy Today, AC Discharge Energy Total, AC Frequency, AC Input Power, and 184 more
- SwitchesInverter Power, AC Output
Troubleshooting
- DiagnosticsDownloads a diagnostics file to attach to a bug report.
- Repair noticesNotices it can show in Settings, Repairs:Growatt: settings are being reverted, Growatt: inverter model no longer recognised, Growatt: RS485 gateway returning mismatched responses, Growatt: this inverter may be on the wrong profile, Growatt: no response since setup - check the Modbus unit ID
From the README
A native Home Assistant integration for Growatt solar inverters using direct Modbus RTU/TCP communication. Real-time data straight from your inverter — no cloud, no ShineWiFi, no dependency on Growatt's servers.
The documentation site covers supported models, sensor reference, inverter controls, energy dashboard setup, troubleshooting, and developer guides.
Shows in Vulpo
Quick Toggle card, Button card, Select card, Chart card, Apple Watch, Control Center.Information
- Installs
- Not shown: shared domain growatt_modbus
- GitHub stars
- 71
- Connection
- Works locally
- Upkeep
- Updated in the last 6 months
- Version
- v2.0.5,
- Category
- Energy, Solar and batteries
- Kind
- Marketplace integration
- Brand
- Growatt
- Needs
- Needs the Marketplace (HACS on 2026.10 and older)
- Domain
growatt_modbus- Issues
- Report an issue












