Growatt Inverter Monitoring in Home Assistant: Wi-Fi, Cloud and Local Data

Growatt in Home Assistant: compare ShinePhone cloud polling, Modbus RTU/TCP and Grott MQTT. Learn logger compatibility, setup, solar data and privacy.

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 needRecommended starting pointTrade-off
Basic production, yield and plant healthHome Assistant built-in Growatt cloud integrationDepends on internet, vendor account and cloud access; five-minute polling
Local power and inverter registers for automationsCompatible direct Modbus RTU or Modbus TCP pathwayRequires verified inverter protocol, physical interface, read-only register map and commissioning
Preserve ShinePhone while also receiving local dataGrott proxy + MQTT, if the logger/server configuration allows itAn extra local service in the datalogger’s upload path; model-specific packet support
Offline monitoring without Growatt accountVerified inverter Modbus, or proven Grottserver configurationNot every model supports this; cloud-only dongles may need replacing or bypassing
Accurate household import and exportIndependent grid-side meter plus inverter generation dataAn 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.

ComponentWhat it actually doesWhat it does not guarantee
InverterConverts PV or battery power; may expose a serial communication interfaceThat all electrical measurements or local remote controls are available
ShineWiFi-S / ShineWiFi-XOlder-generation wireless datalogging products for compatible inverter connectionsThat their configuration hotspot is a usable real-time data API
ShineWiFi-X2 / ShineWiLan-X2Later datalogger generations with different setup procedures and revisionsCompatibility with an earlier X/S firmware, Grott capture or a public local API
ShineLAN / ShineLink familyWired or linked datalogging arrangements on supported systemsUniversal Modbus TCP connectivity to the attached inverter
RS485 connectionPotential serial route for Modbus RTU, depending on model and configurationSafe spare access, a fixed register map or compatibility with every battery setup
Smart meter / CT hardwarePotential grid connection, load and export measurementThat 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

  1. 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.
  2. In Home Assistant go to Settings → Devices & services → Add integration, search for Growatt, then select the appropriate server region.
  3. 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.
  4. Select the plant if the account contains more than one. Let Home Assistant create the available plant and inverter entities.
  5. 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.
  6. 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

  1. Inverter family and exact revision: get the matching Growatt communications documentation and register map. Some legacy maps differ from hybrid/storage implementations.
  2. 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.
  3. 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.
  4. Software compatibility: choose a maintained integration supporting the particular map, with confirmed read-only sensor availability.
  5. 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 failureLikely reasonSafe first check
TCP port unreachableNo Modbus service on the logger, wrong IP or blocked routeConfirm endpoint documentation and inspect the local network; do not open WAN ports
Connection works but all registers failWrong unit ID, function code or protocol framingCompare device documentation and gateway translation mode
Plausible but 10× or 100× wrong readingsWrong scaling or register-map generationValidate with inverter display and independent meter
PV output correct; battery values nonsenseWrong hybrid profile or missing battery equipmentConfirm model, protocol generation and sensor availability
Values intermittent when another master pollsSerial bus collisions, response delays or too-frequent requestsReduce polling and review bus master design with installer
Unexpected grid flow signsCT orientation, meter boundary or signed-value interpretationCompare 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

  1. 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.
  2. Prepare an always-on local host and an MQTT broker with authentication; do not run an unauthenticated broker on a guest or public network.
  3. Start Grott with the correct inverter/profile settings and inspect decoded values before configuring MQTT discovery or Energy dashboard entities.
  4. Verify that cloud reporting still works if it is required; not every logger can upload to two separate endpoints without a forwarding proxy.
  5. Compare the same solar-power and daily-energy values in ShinePhone, Grott and Home Assistant over an hour, checking units and time stamps.
  6. 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.
  7. 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.

MeasurementSuitable sourceHome Assistant Energy requirement / trap
Solar generation (kWh)Inverter lifetime or cumulative generation counterCumulative energy, not current W or merely yesterday’s total
Grid imported (kWh)Grid boundary smart meter with an import counterDo not use a PV output counter as grid import
Grid exported (kWh)Grid boundary meter export counterExport is energy crossing to the grid, not unused PV production
Battery charged/discharged (kWh)Supported hybrid inverter/battery cumulative countersUse separately directed energy counters where possible
Battery state of charge (%)BMS/inverter percentageUseful dashboard status; not an energy counter
Real-time surplus (W)Live grid-side signed power meterAliExpress priceFast 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

  1. At midday, record instantaneous inverter production in ShinePhone and Home Assistant close together in time. Allow for cloud updates.
  2. Check cumulative lifetime production at two times one hour apart. The difference should be broadly consistent with average observed PV power across that hour.
  3. Compare grid import/export against an independently installed meter or the utility meter; document the sign convention.
  4. 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.
  5. If your dashboard is wrong, fix entity selection or integration mapping before building a cost-saving automation.

Security, data privacy and reliability

QuestionGrowatt cloudDirect ModbusGrott + MQTT
Needs Growatt account for HA readings?YesNo, after supported local commissioningUsually no for MQTT, but forwarding to ShinePhone uses vendor account/cloud
Works when WAN is down?No, new HA polls failYes if the local inverter, network and HA are powered and operatingPossibly, if logger traffic stays on LAN and profile/configuration support it
Can retain cloud portal?YesOften separately, subject to inverter interface and wiringProxy generally aims to forward; requires verifying the precise logger behaviour
Fast enough for export-following loads?Usually not ideal with five-minute pollingPotentially, depending on register rate and validated controllerPotentially, subject to logger transmission interval and message timing
Failure/maintenance exposureAPI changes, tokens, vendor outageRegister-map differences, gateway and network faultsCommunity decoder, proxy uptime and logger firmware changes
Privacy considerationEnergy telemetry reaches vendor serviceTelemetry can remain localLocal 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 purchaseBuy only whenAvoid when
Official ShineWiFi / ShineWiLan loggerIt is approved for your exact inverter, and you need ShinePhone/cloud accessYour only purpose is guaranteed local Home Assistant telemetry without manufacturer confirmation
RS485-to-Ethernet gatewayAn installer confirms Modbus RTU port availability, protocol and translating/transparent modeYou have no confirmed serial pinout or the serial bus is already occupied without an integration plan
USB-RS485 interfaceHome Assistant host can be safely connected to a documented RS485 connectionRequires unsafe long cabling or direct intervention in sealed, high-voltage areas
Always-on MQTT/Grott hostYour logger is confirmed supported, and you accept maintaining local softwareYou need a manufacturer-supported appliance with no maintenance
Independent grid-side meter (CT or direct connected)You need verified import/export and whole-home consumptionYou 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

SymptomWhat to check firstDo not do this
ShinePhone shows data but Home Assistant is emptyGrowatt integration server region, plant selection, credentials/token, entity availabilityCycle logins repeatedly and trigger classic API lockout
“No plant found” with API tokenAccount rights, token generation method, model compatibility; official ShinePhone methodAssume every inverter supports token auth
Cloud updates are five minutes behindKnown cloud polling/upload behaviourSet excessively short polling or use it for second-by-second EV control
Modbus reads time outIs there an actual Modbus interface? host, unit ID, RTU/TCP bridge modeExpose port 502 to the internet
Grott works locally but ShinePhone stopsProxy forwarding and logger destination configurationAssume proxy always preserves the cloud portal
Grott has unreadable/zero metricsUnsupported packet layout, inverter profile, firmware or logger generationTreat a sample decoded field list as guaranteed compatibility
Energy dashboard shows implausible savingsPower-versus-energy, units, counter resets, meter location, duplicate sensorsRely 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/

Sources and further reading

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.

CONTINUE EXPLORING / SMART HOME & ESPHOME

Read next

Practical guides related to this article.

Explore the topic →
HARDWARE DECISION GUIDEChoosing Home Assistant hardware?

Compare practical options before you choose hardware.

Compare options →