Home / Knowledge Base / Solar Inverters

How to Fix the Deye / Sunsynk 65535W Power Error

PROTOCOL: MODBUS RTU Applies to: Deye Hybrid Inverters, Sunsynk, Solis

One of the most reported problems integrating solar hybrid inverters in a SCADA system or Home Assistant is the Deye 65535W power error. Everything looks normal while the system is taking from the grid but as soon as the inverter starts pushing excess solar power to the grid the power reading immediately jumps to a scary 65,535W (or 65,526W).

SCADA / Modbus Poll Monitor
Register: 86 (Grid Power)
Status:   Exporting to Grid
Raw Hex:  0xFFFF
Value:    65535 W  (Expected: -1 W)

There is nothing wrong with your inverter, and your electrical panel is not surging 65kW. This is a classic Modbus data parsing anomaly called integer underflow, and it happens when your monitoring software is interpreting binary data in an unexpected way.

The Root Cause: Two’s Complement Rollover

Deye and Sunsynk inverters use positive and negative numbers to show the direction of power flow. Positive (e.g. 2000W) is power consumed . Negative (e.g. -10W) is power exported .

In computer science, there is a binary method called Two’s Complement. In a 16-bit register, the decimal number -1 is stored identically to the binary representation of 65535 (which is 1111 1111 1111 1111 or 0xFFFF). If your reading software doesn’t know to look for a negative sign, it just finds the maximum positive value that it can.

The Free Software Fix: Change U16 to S16

To fix this, you must change the data type configuration in your Modbus client (PLC, Node-RED, or Home Assistant) for that specific register.

The Type Conversion Rule

Change the data type from Unsigned 16-bit (U16 / UINT16) to Signed 16-bit (S16 / INT16). Once configured as a signed integer, the software will correctly interpret the leading binary bit as a minus sign, and 65535 will instantly transform back to the correct -1W.

  • In Home Assistant: Ensure the data_type in your Modbus configuration YAML is explicitly set to int16 instead of uint16.
  • In Codesys / PLCs: Cast the incoming Modbus WORD directly into an INT data type.

Managing Parsing at Commercial Scale

If you are monitoring only a single residential inverter, simply changing the type of data in your software interface permanently fixes the bug. But if you are an integrator with commercial solar farms with Deye, Growatt and SMA inverters, you will be dealing with inconsistent data types (U16 vs S16) and negative power representations across hundreds of endpoints, which creates significant software maintenance overhead.

In professional architectures, integrators offload this data normalization to an edge protocol gateway. The gateway acts as a translator at the hardware level. It does the correct S16 signed conversions, byte swapping and scaling factors for each particular inverter model at the edge, and gives clean, consistent data to your SCADA system.

Standardizing mixed-brand solar telemetry?

Don’t code U16 and S16 Modbus register parsers in your dashboard software any more. Valtoris Edge Gateways perform data normalization, Endian swapping and negative integer logic at the edge, providing unified Modbus TCP or JSON payloads directly to your control room.