How to Read Growatt Inverter Data Locally (RS485 to MQTT)
No 5-minute cloud delays like the official ShineWiFi dongle. Here is the full engineering guide on how to poll Growatt Modbus RTU data locally for real-time SCADA or home automation dashboards.
1. The Challenge with Growatt Inverters
Growatt solar inverters are super popular and reliable in hardware. But their default data logging is entirely dependent on external cloud servers. If you’re looking at industrial SCADA systems or more sophisticated-energy dashboards, you want real-time, local, subsecond access to the inverter’s metrics without opening your OT network to the internet.
Fortunately, almost all Growatt models have a standard RS485 physical layer that talks Modbus RTU on the ShineWiFi dongle port.
Growatt RS485 Pinout & Register Map
Part A: Universal RS485 Pinout
Depending on your inverter model (MIN, MAC or MAX series) the COM port is either a standard RJ45 jack or a multi-pin circular connector. You only need three wires to connect your RS485 Master (USB adapter, PLC or Edge Gateway) to create a serial link.
| Growatt COM Port (RJ45 / SYS) | RS485 Master Terminal | Signal Function |
|---|---|---|
| Pin 3 (or labeled RS485A) | A+ (Data+) | Positive Data Line |
| Pin 4 (or labeled RS485B) | B- (Data-) | Negative Data Line |
| Pin 5 (GND) | GND | Signal Ground (Crucial for preventing CRC noise) |
Part B: Modbus Register Map (Key Metrics)
Configure your serial polling device as follows: Baud Rate: 9600, Data Bits: 8, Stop Bits: 1, Parity: None. The default Slave ID for Growatt is usually 1. Your solar metrics can be extracted with the following Input Registers (Function Code 0x04):
| Register (Dec) | Data Type | Description | Multiplier / Unit |
|---|---|---|---|
| 30001 | U16 | Inverter Status (0=Wait, 1=Normal, 3=Fault) | N/A |
| 30002 | U32 | Input Power (PV Power) | 0.1 W |
| 30004 | U16 | PV1 Voltage | 0.1 V |
| 30036 | U32 | Current Active Power (Grid Output) | 0.1 W |
| 30054 | U32 | Total Energy Generated (Lifetime) | 0.1 kWh |
The 32-Bit Integer (U32) Trap
Notice that Power and Energy are 32-bit integer values (U32). Modbus RTU is inherently a 16-bit protocol. This means a single metric spans across two consecutive registers. If you just read them sequentially without decoding, you will get garbage numbers. You must parse them using proper byte swapping (usually Big-Endian or CDAB order) to reconstruct the correct value.
4. Integration Architecture: DIY Coding vs. Edge Gateway
To get raw hex frames out of a multi-register layout, you need an architecture that can translate 32 bit data types without losing timing accuracy. There are two ways to do this.
⚙️ Option A: Software Parsing (Python Scripts)
If deploying a generic USB-RS485 dongle on a Raspberry Pi for a home lab, your software loop must explicitly cast the two 16-bit registers into a single U32 value.
Python U32 Decode Example:# Growatt returns High Word first (Big-Endian)
high_word = 0x0001
low_word = 0x86A0
# Pack as two unsigned shorts (H),
# unpack as a 32-bit unsigned int (I)
raw_val = struct.unpack(‘>I’, struct.pack(‘>HH’, high_word, low_word))[0]
power_watts = raw_val * 0.1
print(f”Grid Power: {power_watts} W”)
Python scripts and cheap USB dongles are fine for a single garage inverter. But if you are managing a commercial rooftop with multiple Growatt units, OS-level USB dropouts, SD card corruption, and manual certificate handling for MQTT brokers will create an unacceptable maintenance nightmare.
🏢 Option B: Edge Protocol Gateway
Commercial StandardFor commercial scale, deploying a dedicated protocol bridge entirely removes the scripting and OS-level maintenance layer, replacing it with solid-state reliability.
- Native 4-Byte Support: The Valtoris gateway firmware natively supports 4-Byte (U32) recombination and automatically applies the 0.1 scaling factor.
- Cloud Ready JSON: The hardware automatically converts the Modbus raw hex into clean, structured JSON payloads and pushes them directly to your MQTT broker via Ethernet or 4G LTE.
- Industrial Reliability: Hardware watchdogs, DIN-rail mounting, and optical isolation ensure continuous 24/7 telemetry streams without script maintenance.
Heading to the inverter site? Take the Cheat Sheet.
Save the official Application Note (PDF) to your tablet for offline access to the wiring diagrams and U32 Hex payload analysis.
Deploying multiple solar sites?
Stop supporting flaky USB connections and custom python scripts. Use a Valtoris Edge Gateway to securely tunnel Modbus data from your Growatt inverters straight into your cloud MQTT broker over Ethernet or 4G LTE.
