Compatibility Guide

How to Read Growatt Inverter Data Locally (RS485 to MQTT)

Tired of the 5-minute delays and cloud dependency of the official ShineWiFi dongle? Here is the complete guide to polling Growatt Modbus RTU data locally using a Valtoris edge gateway.

1. The Challenge with Growatt Inverters

Growatt solar inverters are incredibly popular, but their default data logging relies entirely on external cloud servers. For industrial SCADA systems, Home Assistant users, or local energy dashboards, you need real-time, local access to the inverter’s metrics without exposing your network to the internet.

Fortunately, almost all Growatt models have a hidden RS485 port (Sys COM) that speaks standard Modbus RTU.

2. Hardware Connection (Wiring Diagram)

You will need a reliable serial-to-ethernet/cellular gateway. Connect the COM port on the bottom of your Growatt inverter to the serial terminals on your Valtoris VT-DTU500 gateway.

Growatt COM Port (RJ45 or Terminal)Valtoris VT-DTU500 TerminalSignal Function
Pin 3 (or RS485A)A+ (Data+)Positive Data Line
Pin 4 (or RS485B)B- (Data-)Negative Data Line
Pin 5 (GND)GNDSignal Ground (Recommended to prevent noise)

💡 Pro Tip: Skip the Python & YAML Coding

Reading Modbus RTU via a cheap USB-RS485 stick often leads to bus collisions and requires writing complex Python scripts to decode 32-bit floats.

By using the Valtoris VT-DTU500 Edge Gateway, you can enable its native “Storage Modbus to JSON” feature. The gateway will autonomously poll the registers below and publish clean, pre-formatted JSON directly to your MQTT broker. Zero coding required.

View VT-DTU500 Gateway

3. Growatt Modbus Register Map (Key Metrics)

Set your Valtoris gateway to Baud Rate: 9600, Data Bits: 8, Stop Bits: 1, Parity: None. Growatt’s default Slave ID is usually 1. Use the following Input Registers (Read code 0x04) to extract your solar metrics:

Register (Dec)Data TypeDescriptionMultiplier / Unit
30001U16Inverter Status (0=Wait, 1=Normal, 3=Fault)N/A
30002U32Input Power (PV Power)0.1 W
30004U16PV1 Voltage0.1 V
30036U32Current Active Power (Output)0.1 W
30054U32Total Energy Generated (Lifetime)0.1 kWh

* Note: Because Power and Energy are 32-bit values (U32), they span across two 16-bit registers. Configure your gateway’s byte order to CDAB or ABCD depending on your specific firmware version.

4. Troubleshooting Common RS485 & Modbus Errors

If your Valtoris VT-DTU500 or local MQTT broker is not receiving clean data from the Growatt inverter, check the following common Modbus RTU communication issues:

Timeout Error / No Response

This means the gateway is sending the Modbus read request, but the inverter is completely ignoring it.

  • A/B Wires Reversed: RS485 standards often vary between manufacturers. If you are receiving zero data, simply swap the A+ and B- wires at the gateway terminal. It will not damage the hardware.
  • Incorrect Slave ID: Most Growatt inverters default to Modbus Slave ID 1. Ensure your edge gateway is polling ID 1, not 0 or 255.
  • Baud Rate Mismatch: Double-check that both the inverter’s LCD settings and the gateway are locked to 9600 bps (or 19200 bps on some newer MAX commercial models).

Checksum Failed / Garbage Values

If you see random connection drops or absurdly high power readings, you are dealing with electrical noise or float decoding issues.

  • Float Byte Swapping: Growatt 32-bit registers span across two 16-bit registers. If the reading looks like garbage, toggle the byte order in your Valtoris gateway from Big-Endian (ABCD) to Little-Endian Byte Swap (CDAB).
  • Missing Signal Ground: RS485 is a differential signal, but over long distances, a missing Ground (Pin 5) can cause voltage floating and CRC checksum failures. Always connect the GND wire.

REQUEST A QUOTE

Tell us about your project requirements and get volume pricing.

SKU/Part No.