Quick Summary (TL;DR)
For the easiest Growatt-to-Home Assistant setup, use the built-in Growatt integration and an existing, working ShinePhone account. That route fetches measurements from Growatt servers rather than directly from the inverter. It normally refreshes about every five minutes and therefore suits production history better than rapid excess-solar automations.
For local data, decide between two genuinely different approaches: read supported inverter registers over a documented Modbus connection (preferable for a carefully engineered, cloud-independent installation), or capture the Growatt datalogger’s outbound telemetry using Grott and publish it locally over MQTT. Neither method is universally available across Growatt generations and dataloggers.
Before buying a replacement Wi-Fi/LAN dongle, record the exact inverter model, serial family, firmware, logger model/revision and port arrangement. A logger transmitting internally over Modbus does not mean it presents a Modbus TCP service to Home Assistant. Do not flash a logger, alter grid settings or assume a particular register map based only on a similar-sounding product name.
Quick answer: choose the right Growatt monitoring route
| What you need | Recommended starting point | Trade-off |
|---|---|---|
| Basic production, yield and plant health | Home Assistant built-in Growatt cloud integration | Depends on internet, vendor account and cloud access; five-minute polling |
| Local power and inverter registers for automations | Compatible direct Modbus RTU or Modbus TCP pathway | Requires verified inverter protocol, physical interface, read-only register map and commissioning |
| Preserve ShinePhone while also receiving local data | Grott proxy + MQTT, if the logger/server configuration allows it | An extra local service in the datalogger’s upload path; model-specific packet support |
| Offline monitoring without Growatt account | Verified inverter Modbus, or proven Grottserver configuration | Not every model supports this; cloud-only dongles may need replacing or bypassing |
| Accurate household import and export | Independent grid-side meter plus inverter generation data | An inverter’s PV counter does not itself measure all household consumption or utility billing |
The distinction is about the actual data path, not whether the dongle uses Wi-Fi or Ethernet. Wired Ethernet is a transport; it does not make a cloud-only API local. Likewise, a local TCP socket is not necessarily a documented Modbus TCP server.
Understand the Growatt hardware before choosing an integration
Growatt has sold several families of grid-tied, hybrid, storage and off-grid products. Names such as MIC, MIN, MOD, SPH, SPA and SPF identify broad families, but features still change with suffixes, board revision, market and firmware. A monitoring system that works for one MIN model may not decode an SPH battery register map correctly. Confirm the full model number on the rating plate and use the matching installation and communications manual.
| Component | What it actually does | What it does not guarantee |
|---|---|---|
| Inverter | Converts PV or battery power; may expose a serial communication interface | That all electrical measurements or local remote controls are available |
| ShineWiFi-S / ShineWiFi-X | Older-generation wireless datalogging products for compatible inverter connections | That their configuration hotspot is a usable real-time data API |
| ShineWiFi-X2 / ShineWiLan-X2 | Later datalogger generations with different setup procedures and revisions | Compatibility with an earlier X/S firmware, Grott capture or a public local API |
| ShineLAN / ShineLink family | Wired or linked datalogging arrangements on supported systems | Universal Modbus TCP connectivity to the attached inverter |
| RS485 connection | Potential serial route for Modbus RTU, depending on model and configuration | Safe spare access, a fixed register map or compatibility with every battery setup |
| Smart meter / CT hardware | Potential grid connection, load and export measurement | That ShinePhone inverter-output data contains equivalent measurements |
Growatt’s official knowledge base specifically distinguishes ShineWiFi-X and ShineWiFi-S procedures and notes that ShineLink/Lanbox installations have a different setup process. The manufacturer’s download centre also lists distinct guides for ShineWiFi-X2, ShineLan-X and other logger types. That is a practical warning against one-size-fits-all YouTube instructions. See Growatt ShineWiFi-X/S setup guidance and Growatt manuals and configuration guides.
Option 1: built-in Home Assistant Growatt integration (cloud)
The official Home Assistant Growatt integration contacts Growatt’s servers using credentials associated with your plant. Home Assistant calls this Cloud Polling, currently polling every five minutes. Data availability depends on the inverter and monitoring system sending data to the vendor platform, your account permissions, the server region, and the API being accessible.
Set up the official integration
- Open ShinePhone or the Growatt web portal and confirm that the plant is online, production counters look sensible and the monitoring account has appropriate privileges.
- In Home Assistant go to Settings → Devices & services → Add integration, search for Growatt, then select the appropriate server region.
- For supported models, use an account API token rather than username/password. Home Assistant documents obtaining a token under account management in the Growatt portal or ShinePhone.
- Select the plant if the account contains more than one. Let Home Assistant create the available plant and inverter entities.
- Check the entity list in Developer Tools → States. Identify actual energy counters (kWh) separately from instantaneous power values (W). Wait for at least two normal updates and compare with ShinePhone.
- Use production kWh and other compatible counters in the Energy dashboard only after checking units, sensor state classes and the underlying measurement boundary.
The Growatt integration’s official Home Assistant instructions list regions including North America, Australia/New Zealand, China and a default for other regions. A token generated by the portal can occasionally produce a “No plant found” error; Home Assistant documents a ShinePhone-token workaround. Do not share tokens in screenshots, forums or public YAML repositories.
Model and authentication differences
The built-in integration offers two authentication paths. Username/password (“classic”) may expose data for equipment visible in ShinePhone, but the integration documentation warns that repeated classic logins can trigger account rate limiting and a lockout lasting up to 24 hours. Avoid repeated reloads and aggressive restarts. The API-token path is Growatt’s supported route, but its compatibility list does not yet cover every inverter family.
At the time this article was prepared, the documentation explicitly lists MIC 600–3300TL-X and several MIN 2500–6000TL-X / -XE models for token authentication. Do not infer token support for an arbitrary SPH, SPF, MOD or newer hybrid from this list. Check the current integration documentation for your exact model. An inverter may work through classic access yet not be supported by the token path, or its plant data may differ.
What does the cloud integration actually measure?
- PV production: available when the inverter and account publish suitable power/energy fields; “today” and “lifetime” totals are different entities and not interchangeable.
- Grid import and export: only if a correctly located grid meter and its telemetry are part of the plant; a basic PV inverter cannot infer a household’s total import from panel output alone.
- Battery: SoC, charge/discharge power or related counters depend on an actual hybrid/battery system and the exposed fields.
- Controls: some token-supported equipment exposes setpoints or schedules; these are operational controls, not harmless monitoring settings. Leave them alone unless you have installer documentation and a legitimate commissioning reason.
Five-minute polling is generally fine for day-by-day charts. It is a poor sole trigger for a household load that should respond to short solar-surplus changes: readings arrive after inverter uploads, cloud processing and Home Assistant polling, so extra delay is possible. If you need an EV charger to track grid export, use a live grid-side measurement and a properly designed control strategy.
Option 2: local inverter data over Modbus
A genuinely cloud-independent route reads registers from the inverter over its supported communications interface. Modbus RTU usually runs over RS485. Modbus TCP runs over IP, either on equipment explicitly offering it or through a gateway that translates the serial protocol. Do not assume a ShineWiFi logger exposes Modbus TCP just because its hardware speaks Modbus to the inverter. The logger-to-vendor-server protocol can be proprietary, even when a datasheet uses the word “Modbus”.
Check these five prerequisites first
- Inverter family and exact revision: get the matching Growatt communications documentation and register map. Some legacy maps differ from hybrid/storage implementations.
- Physical connectivity: confirm where the inverter exposes RS485 and whether that port is occupied by a meter, battery-related equipment or existing logger. Never bridge unknown terminals yourself.
- Protocol: confirm RTU or genuine Modbus TCP, unit ID, baud rate, parity, supported function codes and whether a TCP gateway translates RTU rather than transparently forwarding bytes.
- Software compatibility: choose a maintained integration supporting the particular map, with confirmed read-only sensor availability.
- Site approval and safety: protect inverter wiring and grid compliance. Any changes to internal or mains-adjacent connections belong to a suitably qualified installer.
Home Assistant’s Modbus integration documentation explains the difference between Modbus TCP, serial RTU and RTU-over-TCP. A network bridge that operates in transparent serial mode is not interchangeable with a translating Modbus TCP gateway. Select a gateway mode that matches the chosen software.
Third-party Growatt Modbus integrations
There are community projects that implement Growatt register maps, including Home Assistant Growatt Modbus and other model-specific projects. Their device lists and dependencies should be checked directly before purchasing hardware. These are not the same as the built-in cloud integration; installation through HACS, release compatibility and ongoing maintenance matter.
Treat a GitHub “supports TCP” statement as support for the project’s specified Modbus communication mode, not as proof your current logger provides that endpoint. If the inverter lacks usable IP Modbus, an appropriately installed RS485-to-Ethernet converter may be possible. Ask the installer for the precise register documentation and wiring plan before choosing an adapter.
Why we do not provide generic Growatt register addresses
Published register tables sometimes use one-based addresses while Home Assistant expects zero-based offsets, and 16-bit versus 32-bit counters or word order can differ. A register valid on one generation can mean something else on another. Blindly pasting addresses is a reliable way to produce plausible-looking but wrong grid/export statistics, and writing registers can unintentionally alter inverter behaviour.
For an initial read-only proof of concept, commission three values and check their physical plausibility: PV AC power in W, lifetime PV generation in kWh, and inverter operational status. Validate a sunny daytime value, an overnight zero-power state and the direction of any signed import/export measurement before enabling an Energy dashboard or automation. Do not expose Modbus ports to the public internet.
| Local-connection failure | Likely reason | Safe first check |
|---|---|---|
| TCP port unreachable | No Modbus service on the logger, wrong IP or blocked route | Confirm endpoint documentation and inspect the local network; do not open WAN ports |
| Connection works but all registers fail | Wrong unit ID, function code or protocol framing | Compare device documentation and gateway translation mode |
| Plausible but 10× or 100× wrong readings | Wrong scaling or register-map generation | Validate with inverter display and independent meter |
| PV output correct; battery values nonsense | Wrong hybrid profile or missing battery equipment | Confirm model, protocol generation and sensor availability |
| Values intermittent when another master polls | Serial bus collisions, response delays or too-frequent requests | Reduce polling and review bus master design with installer |
| Unexpected grid flow signs | CT orientation, meter boundary or signed-value interpretation | Compare with utility import/export registers; avoid inverted automation logic |
Option 3: Grott proxy or MQTT for Growatt logger telemetry
Grott is a third-party project that parses Growatt datalogger messages. Its proxy mode receives logger uploads, extracts values and can forward traffic to Growatt servers while publishing useful measurements to MQTT or other destinations. It can therefore provide local telemetry while preserving ShinePhone, provided the logger allows a compatible server destination and Grott understands its packet layout.
This is not the same as direct Modbus access. It intercepts the datalogger’s reporting traffic and relies on the messages the logger actually sends. If the logger changes encryption, packet format, destination restrictions or firmware, a given combination may stop working. Check the project’s tested models and open issues for your exact firmware. Growatt does not warrant community proxy integrations.
Typical signal flow
Growatt inverter → compatible ShineWiFi / ShineLAN logger
↓
Grott proxy on LAN
↙ ↘
MQTT broker Growatt cloud (optional)
↓
Home Assistant
Grott’s documentation describes proxy and sniff modes, with MQTT as an output. Its more experimental Grottserver project aims to emulate the vendor endpoint and reduce dependence on vendor servers, but that is not a universal, supported replacement for all Growatt hardware. Do not promise a fully offline logger path before testing the exact hardware. See the Grott project wiki.
Commissioning checklist for the proxy route
- Confirm the particular datalogger can be configured to send traffic to a local IP/host without firmware modification. Keep a record of the original destination settings.
- Prepare an always-on local host and an MQTT broker with authentication; do not run an unauthenticated broker on a guest or public network.
- Start Grott with the correct inverter/profile settings and inspect decoded values before configuring MQTT discovery or Energy dashboard entities.
- Verify that cloud reporting still works if it is required; not every logger can upload to two separate endpoints without a forwarding proxy.
- Compare the same solar-power and daily-energy values in ShinePhone, Grott and Home Assistant over an hour, checking units and time stamps.
- Test deliberate WAN loss. Confirm what continues locally and what does not; make sure the logger does not silently revert its target server on reconnection.
- Document how to restore the manufacturer logger settings if the local service fails or the owner sells the property.
Do not deploy an unverified proxy directly into the data path of a system that the installer relies on for fault alerts or warranty monitoring. Consider leaving the stock cloud path intact and using an independent metering system instead.
Logger configuration: practical Wi-Fi checks before blaming Home Assistant
ShineWiFi-X/S pairing is different from Home Assistant integration. The logger first has to reach the intended Growatt server (or your deliberately configured local destination). The official ShineWiFi-X/S instructions specify a 2.4 GHz wireless network, not 5 GHz, and offer app/hotspot setup methods which differ for some serial-number groups. Firmware and model variations also affect which settings screens appear.
- Confirm the Wi-Fi SSID actually provides 2.4 GHz coverage near the inverter, particularly in metal utility cupboards.
- Do not treat the logger’s temporary setup hotspot as the permanent local-telemetry endpoint.
- Check DHCP leases for the logger, DNS resolution, router isolation rules and outbound connectivity. A visible Wi-Fi connection does not prove cloud logins or plant data are healthy.
- If you use VLANs, allow only the routes needed for the selected integration. The cloud route needs WAN access; a local Modbus bridge needs LAN access to Home Assistant; Grott needs the compatible logger-to-proxy route.
- Use the correct exact logger guide before resetting: the official documentation distinguishes WiFi-X variants by serial-number group and documents differing onboarding steps.
- If power is intermittent, check the inverter logger socket and normal operating behaviour using official installation instructions; never unplug equipment during firmware updating.
Growatt’s older ShineWiFi-X datasheet describes a five-minute transmission interval. That alone cannot prove the upload cadence of X2 or WiLan models. Check the datasheet for your logger, and separate its upload period from Home Assistant’s own cloud polling period.
Grid import, solar generation and battery figures: get the measurement boundaries right
A Growatt app might show PV output, a local inverter integration might expose AC power, and a smart meter might report household grid import. These are different measurement points. Without a reliable grid-side measurement you cannot reconstruct every grid import or export event merely from PV production; with hybrid batteries, battery charging and discharging complicate the arithmetic further.
| Measurement | Suitable source | Home Assistant Energy requirement / trap |
|---|---|---|
| Solar generation (kWh) | Inverter lifetime or cumulative generation counter | Cumulative energy, not current W or merely yesterday’s total |
| Grid imported (kWh) | Grid boundary smart meter with an import counter | Do not use a PV output counter as grid import |
| Grid exported (kWh) | Grid boundary meter export counter | Export is energy crossing to the grid, not unused PV production |
| Battery charged/discharged (kWh) | Supported hybrid inverter/battery cumulative counters | Use separately directed energy counters where possible |
| Battery state of charge (%) | BMS/inverter percentage | Useful dashboard status; not an energy counter |
| Real-time surplus (W) | Live grid-side signed power meterAliExpress price | Fast automations need fresher data than five-minute cloud polling |
For example, if an array produces 3.4 kW and a home consumes 2.5 kW, export might be approximately 0.9 kW only when there are no concurrent battery flows or other conversion differences and the same time interval/boundary is used. If a battery absorbs 1 kW simultaneously, the grid can instead show a small import. Use actual grid meter data for export-sensitive decisions.
Home Assistant’s Energy dashboard FAQ requires energy counters with the correct device/state classes and compatible units. Power is normally W/kW; energy is Wh/kWh. An inverter’s “PV today” counter may reset at midnight, while a lifetime total is typically the better long-term-statistics source. Inspect how the integration handles resets before using a daily total directly.
Validation exercise: compare three independent readings
- At midday, record instantaneous inverter production in ShinePhone and Home Assistant close together in time. Allow for cloud updates.
- Check cumulative lifetime production at two times one hour apart. The difference should be broadly consistent with average observed PV power across that hour.
- Compare grid import/export against an independently installed meter or the utility meter; document the sign convention.
- Review Energy dashboard statistics after a day. Look for sudden backwards counters, unavailable states incorrectly treated as zero, or double counting from simultaneously including multiple generation meters.
- If your dashboard is wrong, fix entity selection or integration mapping before building a cost-saving automation.
Security, data privacy and reliability
| Question | Growatt cloud | Direct Modbus | Grott + MQTT |
|---|---|---|---|
| Needs Growatt account for HA readings? | Yes | No, after supported local commissioning | Usually no for MQTT, but forwarding to ShinePhone uses vendor account/cloud |
| Works when WAN is down? | No, new HA polls fail | Yes if the local inverter, network and HA are powered and operating | Possibly, if logger traffic stays on LAN and profile/configuration support it |
| Can retain cloud portal? | Yes | Often separately, subject to inverter interface and wiring | Proxy generally aims to forward; requires verifying the precise logger behaviour |
| Fast enough for export-following loads? | Usually not ideal with five-minute polling | Potentially, depending on register rate and validated controller | Potentially, subject to logger transmission interval and message timing |
| Failure/maintenance exposure | API changes, tokens, vendor outage | Register-map differences, gateway and network faults | Community decoder, proxy uptime and logger firmware changes |
| Privacy consideration | Energy telemetry reaches vendor service | Telemetry can remain local | Local copy possible; optionally still forwards to vendor |
For any of these routes, isolate monitoring networks where appropriate, give Home Assistant and brokers proper credentials and backups, update equipment cautiously, and do not forward Modbus TCP or MQTT ports through your router. Treat inverter control entities as safety-critical. A malicious or mistaken write to an operational register is more serious than a bad graph.
Cloud monitoring can be preferable where an installer actively monitors alarms and your priority is reliability without a custom server. Local-first monitoring can be preferable when privacy, offline resilience or data latency matters. They are operational choices rather than a blanket judgement about which product is “better”.
Buying checklist: which gateway or accessory is worth paying for?
Avoid selecting a “compatible Growatt Wi-Fi dongle” solely from a marketplace title. You are buying a specific communications pathway; confirm the technical function and support burden before the part number. A modestly priced dongle that needs unsupported hacks may be a poor investment next to an independent grid meter.
| Candidate purchase | Buy only when | Avoid when |
|---|---|---|
| Official ShineWiFi / ShineWiLan logger | It is approved for your exact inverter, and you need ShinePhone/cloud access | Your only purpose is guaranteed local Home Assistant telemetry without manufacturer confirmation |
| RS485-to-Ethernet gateway | An installer confirms Modbus RTU port availability, protocol and translating/transparent mode | You have no confirmed serial pinout or the serial bus is already occupied without an integration plan |
| USB-RS485 interface | Home Assistant host can be safely connected to a documented RS485 connection | Requires unsafe long cabling or direct intervention in sealed, high-voltage areas |
| Always-on MQTT/Grott host | Your logger is confirmed supported, and you accept maintaining local software | You need a manufacturer-supported appliance with no maintenance |
| Independent grid-side meter (CT or direct connected) | You need verified import/export and whole-home consumption | You only need inverter production figures available in a working cloud integration |
Accessory budgets should include electrician labour, a suitable communications enclosure, reliable power/network, surge/environmental considerations, and maintenance time. We avoid universal price estimates: requirements depend on supply type, distribution-board space, inverter location and regional approvals. Ask an installer to quote for the specific topology, not just an adapter.
Troubleshooting: diagnosis in the correct order
| Symptom | What to check first | Do not do this |
|---|---|---|
| ShinePhone shows data but Home Assistant is empty | Growatt integration server region, plant selection, credentials/token, entity availability | Cycle logins repeatedly and trigger classic API lockout |
| “No plant found” with API token | Account rights, token generation method, model compatibility; official ShinePhone method | Assume every inverter supports token auth |
| Cloud updates are five minutes behind | Known cloud polling/upload behaviour | Set excessively short polling or use it for second-by-second EV control |
| Modbus reads time out | Is there an actual Modbus interface? host, unit ID, RTU/TCP bridge mode | Expose port 502 to the internet |
| Grott works locally but ShinePhone stops | Proxy forwarding and logger destination configuration | Assume proxy always preserves the cloud portal |
| Grott has unreadable/zero metrics | Unsupported packet layout, inverter profile, firmware or logger generation | Treat a sample decoded field list as guaranteed compatibility |
| Energy dashboard shows implausible savings | Power-versus-energy, units, counter resets, meter location, duplicate sensors | Rely on a calculated export number to start a high-load device |
For repeatable support, note the inverter and logger model numbers, firmware version, integration version, Home Assistant version, timestamps of the last good readings, and one read-only diagnostic log. Remove usernames, API tokens, serial numbers and passwords from anything posted publicly.
FAQs
Can Home Assistant connect to Growatt without ShinePhone?
Yes for verified local Modbus access, or certain supported Grottserver arrangements, but not with Home Assistant’s built-in Growatt cloud integration. That integration uses your Growatt account and vendor servers. Hardware support must be checked model by model.
Does the ShineWiFi-X support Modbus TCP locally?
Do not assume so. Some ShineWiFi documentation mentions Modbus in the inverter-to-logger and logger-to-server communications chain; that does not document a generic local Modbus TCP endpoint for arbitrary Home Assistant clients. Ask for the exact model and firmware protocol guide before ordering a dongle for local polling.
Can I keep ShinePhone and use local Home Assistant at the same time?
Often, but the mechanism matters. A direct Modbus connection may coexist with official logging where hardware allows it. Grott proxy is designed to relay telemetry onward while making a local MQTT copy. Both require testing the precise logger and inverter setup, especially when another bus master or energy meterAliExpress price is already attached.
Is Grott an official Growatt integration?
No. It is a community project. Its compatibility and forwarding behaviour depend on the project’s supported packet types and logger firmware. It should not be treated as a manufacturer warranty or grid control interface.
Which option is best for a solar battery or EV charger?
Use vendor-supported hybrid telemetry for the battery where confirmed, but obtain fast, reliable grid-side measurements for export-aware EV charging or automatic load control. Five-minute cloud updates typically cannot track rapid changes in household load or solar generation.
Can I use any Growatt register map from the internet?
No. Even similarly named models may differ in map generation, register address conventions, scaling and signed values. Always validate against the matching communications manual and read-only measurements. Leave inverter configuration writes to qualified, authorised commissioning work.
Related guides on esp32.co.uk/
- ESP32 Modbus Energy Meter with Home Assistant: SDM120 / SDM630 Guide — choose an independent grid-side meter and link it through RS485.
- ESP32 Energy Monitoring Methods Compared — decide which metering principle fits your installation.
- Home Assistant Energy Dashboard Troubleshooting for ESPHome — repair energy counter and statistics issues.
Sources and further reading
- Home Assistant: Growatt integration — account/API-token support, regional servers, rate limits and five-minute cloud polling.
- Growatt support: ShineWiFi-X / ShineWiFi-S setup — official logger generation and Wi-Fi onboarding guidance.
- Growatt manuals and quick guides — confirm exact logger and inverter documentation.
- Home Assistant: Modbus — serial RTU, Modbus TCP, bridging modes and configuration safety.
- Community Growatt Modbus integration — check its current compatibility and requirements.
- Grott project and documentation — proxy, sniffing, MQTT and limitations.
- Home Assistant: Energy management and Energy dashboard FAQ — energy sensor types and valid statistics.
Last documentation check: 14 October 2026. This guide distinguishes confirmed features from model-dependent possibilities and describes read-only monitoring. Electrical, inverter and grid-connected communications work must follow the exact manufacturer instructions and applicable local regulations; obtain a qualified installer’s assistance before altering wiring or equipment configuration.