A self-contained Home Assistant custom integration for exactly two
Growatt inverters (SPH-TL3 and MIC series) via Modbus TCP - a drop-in
replacement for the HACS Growatt_ModbusTCP integration, scoped to just
what this installation uses, but exposing everything its register map has
to offer for those two models (sensors, number/select/time controls),
including the optional VPP Protocol V2.01 register range.
License: MIT. Attribution & AI-assistance disclosure: NOTICE.md - read this before reusing, forking, or judging where the code came from. Short version: register-map data is credited to 0xAHA/Growatt_ModbusTCP (MIT), and the code itself was written with AI assistance (Claude/Anthropic, via Claude Code) under human direction and review - every source file says so.
See custom_components/growatt_local/README.md
for the full feature list, installation, migration steps from the old
integration, and scope notes.
This repository is HACS-ready (hacs.json at the root). Add it as a
custom repository rather than copying files by hand:
- HACS -> the three-dot menu (top right) -> Custom repositories.
- Repository:
https://github.com/Internerd/ha-growatt, Category: Integration. - Find "Growatt Local (SPH-TL3 / MIC)" in HACS and install it.
- Restart Home Assistant, then follow the
migration steps
in the component README if you're replacing the original
Growatt_ModbusTCPintegration.
Issues and pull requests are welcome - see CONTRIBUTING.md for scope/register-map guidelines, CODE_OF_CONDUCT.md for how discussion here is expected to go, and SECURITY.md for reporting an actual vulnerability (as opposed to "Modbus has no built-in auth," which is the protocol, not a bug here).
This integration writes directly to inverter Modbus registers (on/off,
power limits, battery charge/discharge settings, time-of-use scheduling).
It has not been validated against real hardware by an independent third
party - test carefully, one control at a time, on hardware you can
physically access. See NOTICE.md for how this project was
built and custom_components/growatt_local/README.md
for known limitations (e.g. fault/warning codes are shown numerically,
not translated to text - see why in that section).
If you are replacing an existing Growatt_ModbusTCP install, read
Entities that do not come back unchanged
first: entity IDs are reproduced exactly, with a short, documented list of
exceptions where the old entity pointed at a register that does not exist
on these models.