Deye Modbus — Complete Register List SG01LP1 to SG01HP3
Mark
Autor
Deye Modbus — Complete Register List SG01LP1 to SG01HP3

Did you like this article?

Creating guides takes a lot of time, and I don’t want ads on the site. If I’ve helped you and you feel like it — buy me a coffee. It really motivates me to keep writing!

Deye · Modbus RTU · ESPHome · Home Assistant

Deye Modbus — Complete Register List by Model, ESPHome and Home Assistant

For configuration and diagnosis, see Deye Time of Use settings, Deye inverter troubleshooting and Deye Home Assistant automations.

SG01LP1, SG02LP1, SG03LP1, SG04LP3, SG05LP3 and SG01HP3 — separate maps, DEC and HEX addresses,
data types, scales, Time of Use, and write registers.

The biggest mistake in Deye guides is treating the whole brand as a single inverter.
Address 186 may mean PV1 power in one family, while in SG04LP3 and SG05LP3 the same value sits at address 672.
That’s why this article is built the opposite way to most available material: you first pick the exact model,
and only then use the correct register table.

If you’re still choosing a communication method, start with the guide
how to connect Deye to Home Assistant.
Here I focus on the reference layer: addresses, data types, scales, and the differences between families.

Why there is no single Deye register map

The LP1, LP3, and HP3 designations are not cosmetic. They define the hardware platform, the number of phases, and the battery type.
Older single-phase LP1 units mostly use the 0-279 range. Three-phase LP3 and HP3 units move the core data to the 500-683 range.
Even units with a similar-looking name can differ in MPPT count, counter width, and where Time of Use sits.

Family Models Map Status TOU / write Key note
SG01LP1 SUN-7.6/8/12/14/16K-SG01LP1-EU SG01LP1 registers Confirmed deye_hybrid group Partially confirmed Older single-phase map; do not use 500+ addresses from LP3.
SG02LP1 SUN-7.6/8/10/12K-SG02LP1-EU-AM2/AM3 SG02LP1 registers Confirmed separate map TOU 248-279 confirmed Has PV3 and scale/counter differences.
SG03LP1 SUN-3/3.6/5/6K-SG03LP1-EU SG03LP1 registers Confirmed separate map Shared legacy TOU – needs validation On timeouts, max. 16 registers per request.
SG04LP1 SUN-3/3.6/5/6K-SG04LP1-EU SG01LP1 as a test profile No independent complete map in the base source Experimental Dump the basic addresses first; we do not claim full compatibility.
SG05LP1 SUN-3.6/5/6/7/7.6/8/10K-SG05LP1-EU SG02LP1/SG0XLP1 as a candidate Unconfirmed complete model map Experimental New generation; per-firmware testing required.
SG06LP1 SUN-3-12K-SG06LP1-EU None No verified complete map Do not use write Diagnostic profile and dump only.
SG04LP3 SUN-5/6/8/10/12K-SG04LP3-EU SG04LP3 registers Best confirmed Full 146-177 (146 weekly schedule, 148-177 time slots) Base 3-phase LV map.
SG05LP3 3-12 kW SUN-3/4/5/6/8/10/12K-SG05LP3-EU SG05LP3 registers Close to the SG04LP3 map, not fully confirmed Writing requires model testing Some registers overlap with SG04LP3, some don’t — treat as a starting point, not a certainty.
SG05LP3 14-20 kW SUN-14/15/16/18/20K-SG05LP3-EU SG05LP3 registers Monitoring practically confirmed TOU/write: C Do not assign status A without testing.
SG06LP3 SUN-3/4/5/6/8K-SG06LP3-EU None Experimental Do not use write Do not assume compatibility just from the LP3 designation.
SG01HP3 5-25 kW SUN-5-25K-SG01HP3-EU-AM2 SG01HP3 registers Confirmed separate HP3 map Separate HP3 settings Possibly two battery inputs and PV3/PV4.
SG01HP3 29.9-50 kW SUN-29.9/30/35/40/50K-SG01HP3-EU SG01HP3 registers as a base Monitoring partially confirmed Writing requires validation Different MPPT counts and battery 2.
SG02HP3 SUN-25-50K-SG02HP3-EU SG01HP3 as a test profile Family supported by ESPHome projects, no complete base table Experimental Separate dump and comparison against HP3.
LP2 / HP2 US/JP split-phase models None Outside the EU maps Do not use write Do not copy LP1/HP3.
String G05/G06 SUN-…-G05/G06P3 Outside hybrid scope Separate string map Different settings set Not a hybrid.
Microinverters SUN-M / G3 Outside hybrid scope Separate micro map No battery TOU Different protocol and registers.

How to read the register table

The DEC address is the value used directly in ESPHome and most integrations. HEX makes it easier to cross-check against technical documentation.
The type U_WORD means a 16-bit unsigned integer, and
S_WORD a signed one. Energy counters often span two registers and require the correct low/high word order.
A scale of 0.1 means the raw value must be multiplied by 0.1.

A read address alone is not a full definition

The same address read as unsigned instead of signed can show a value around 65000 instead of a negative power reading.
A 32-bit counter assembled with the reversed word order can also look plausible while being completely wrong.
Also watch for deceptively similar registers: in the single-phase map, 169 is the total grid power from the inverter port, while 172 is the power from an external CT clamp (Grid CT) used for zero-export — two different quantities, even though both are called “grid power”.

SG01LP1 — older single-phase LV map

SG01LP1 uses a legacy map where PV1 Power sits at address 186, battery SOC at 184, and battery power at 190. Do not carry over 500+ addresses from SG04LP3 here.

Zakres modeli

SUN-7.6/8/12/14/16K-SG01LP1-EU and compatible regional variants.

Category Register DEC HEX Type Scale Unit R/W Confidence Notes
PV / grid PV1 Power 186 BA U_WORD 1 W R A/B
Energy Daily Production 108 6C U_WORD 0.1 kWh R A/B
AC Micro-inverter Power 166 A6 U_WORD 1 W R A/B
CT Internal CT L1 Power 167 A7 S_WORD 1 W R A/B
Temperature DC Temperature 90 5A S_WORD 0.1 °C R A/B
Battery Total Battery Charge 72,73 48,49 U_DWORD 0.1 kWh R A/B
PV / grid PV2 Power 187 BB U_WORD 1 W R A/B
PV / grid PV1 Voltage 109 6D U_WORD 0.1 V R A/B
PV / grid PV1 Current 110 6E U_WORD 0.1 A R A/B
Energy Total Production 96,97 60,61 U_DWORD 0.1 kWh R A/B
AC Total Grid Power 169 A9 S_WORD 1 W R A/B SG02LP1: scale of 10 per group documentation; compare against the HMI.
AC Grid Voltage L1 150 96 U_WORD 0.1 V R A/B
Battery Battery Power 190 BE S_WORD 1 W R A/B
Battery Battery Voltage 183 B7 U_WORD 0.01 V R A/B
Battery Battery SOC 184 B8 U_WORD 1 % R A/B
Battery Battery Current 191 BF S_WORD 0.01 A R A/B
Temperature AC Temperature 91 5B S_WORD 0.1 °C R A/B

The table above shows the most important registers for this family. The full list, including the 4xxxx address,
source, word order, write risk, and per-model comments, is in the attached XLSX spreadsheet.

SG02LP1 — single-phase map with a third MPPT

SG02LP1 is a separate family. Among other things it has PV3 at address 188 and its own Time of Use block at 248-279. It’s a good example of why sharing the LP1 suffix doesn’t mean an identical map.

Zakres modeli

SUN-7.6/8/10/12K-SG02LP1-EU-AM2/AM3 and -P variants.

Category Register DEC HEX Type Scale Unit R/W Confidence Notes
PV / grid PV1 Power 186 BA U_WORD 1 W R A/B
Energy Daily Production 108 6C U_WORD 0.1 kWh R A/B
AC Micro-inverter Power 166 A6 U_WORD 1 W R A/B
CT Internal CT L1 Power 167 A7 S_WORD 1 W R A/B
Temperature DC Temperature 90 5A S_WORD 0.1 °C R A/B
Battery Total Battery Charge 72,73 48,49 U_DWORD 0.1 kWh R A/B
TOU Time of Use Time 1 250 FA U_WORD 1 R/W A/B HHMM
PV / grid PV2 Power 187 BB U_WORD 1 W R A/B
PV / grid PV1 Voltage 109 6D U_WORD 0.1 V R A/B
PV / grid PV1 Current 110 6E U_WORD 0.1 A R A/B
Energy Total Production 96,97 60,61 U_DWORD 0.1 kWh R A/B
AC Total Grid Power 169 A9 S_WORD 10 W R A/B SG02LP1: scale of 10 per group documentation; compare against the HMI.
AC Grid Voltage L1 150 96 U_WORD 0.1 V R A/B
Battery Battery Power 190 BE S_WORD 1 W R A/B
Battery Battery Voltage 183 B7 U_WORD 0.01 V R A/B
Battery Battery SOC 184 B8 U_WORD 1 % R A/B
Battery Battery Current 191 BF S_WORD 0.01 A R A/B
Temperature AC Temperature 91 5B S_WORD 0.1 °C R A/B
TOU Time of Use SOC 1 268 10C U_WORD 1 % R/W A/B
TOU Time of use enabled 248 F8 U_WORD 1 R/W A/B

The table above shows the most important registers for this family. The full list, including the 4xxxx address,
source, word order, write risk, and per-model comments, is in the attached XLSX spreadsheet.

SG03LP1 — a separate map and shorter queries

SG03LP1 uses a similar address range to the older LP1, but should be treated separately. Some units do not tolerate long read blocks and require limiting a single request to about 16 registers.

Zakres modeli

SUN-3/3.6/5/6K-SG03LP1-EU.

Category Register DEC HEX Type Scale Unit R/W Confidence Notes
PV / grid PV1 Power 186 BA U_WORD 1 W R A/B
Energy Daily Production 108 6C U_WORD 0.1 kWh R A/B
AC Micro-inverter Power 166 A6 U_WORD 1 W R A/B
CT Internal CT L1 Power 167 A7 S_WORD 1 W R A/B
Temperature DC Temperature 90 5A S_WORD 0.1 °C R A/B
Battery Total Battery Charge 72,73 48,49 U_DWORD 0.1 kWh R A/B Shared deye_hybrid_battery group; limit a single read to <=16 registers if timeouts occur.
PV / grid PV2 Power 187 BB U_WORD 1 W R A/B
PV / grid PV1 Voltage 109 6D U_WORD 0.1 V R A/B
PV / grid PV1 Current 110 6E U_WORD 0.1 A R A/B
Energy Total Production 96,97 60,61 U_DWORD 0.1 kWh R A/B
AC Total Grid Power 169 A9 S_WORD 1 W R A/B SG02LP1: scale of 10 per group documentation; compare against the HMI.
AC Grid Voltage L1 150 96 U_WORD 0.1 V R A/B
Battery Battery Power 190 BE S_WORD 1 W R A/B Shared deye_hybrid_battery group; limit a single read to <=16 registers if timeouts occur.
Battery Battery Voltage 183 B7 U_WORD 0.01 V R A/B Shared deye_hybrid_battery group; limit a single read to <=16 registers if timeouts occur.
Battery Battery SOC 184 B8 U_WORD 1 % R A/B Shared deye_hybrid_battery group; limit a single read to <=16 registers if timeouts occur.
Battery Battery Current 191 BF S_WORD 0.01 A R A/B Shared deye_hybrid_battery group; limit a single read to <=16 registers if timeouts occur.
Temperature AC Temperature 91 5B S_WORD 0.1 °C R A/B

The table above shows the most important registers for this family. The full list, including the 4xxxx address,
source, word order, write risk, and per-model comments, is in the attached XLSX spreadsheet.

SG04LP3 — the main three-phase LV map

SG04LP3 is the best-documented family. Here you’ll find full PV, battery, CT, Load/EPS, Generator/Smart Load, energy counters, and the TOU block at 146-177.

Zakres modeli

SUN-5/6/8/10/12K-SG04LP3-EU, including select AM2-P variants after firmware confirmation.

Category Register DEC HEX Type Scale Unit R/W Confidence Notes
System Running status 500 1F4 U_WORD 1 R A/B Status code; requires a value map.
PV / grid PV1 Power 672 2A0 U_WORD 1 W R A/B
Battery Daily Battery Charge 514 202 U_WORD 0.1 kWh R A/B
Load / EPS Total Load Power 653 28D U_WORD 1 W R A/B
Generator / Smart Load Phase voltage of Gen port A 661 295 U_WORD 0.1 V R A/B Port meaning depends on inverter configuration.
TOU Time of Use Weekly Selling Schedule 146 92 U_WORD 1 R/W B Do not write the whole word without preserving the other bits.
Settings Maximum battery charge current 108 6C U_WORD 1 A R/W A/B Do not exceed the battery and wiring current limits.
PV / grid PV2 Power 673 2A1 U_WORD 1 W R A/B
PV / grid PV1 Voltage 676 2A4 U_WORD 0.1 V R A/B
PV / grid PV1 Current 677 2A5 U_WORD 0.1 A R A/B
PV / grid Daily Production 529 211 U_WORD 0.1 kWh R A/B Daily counter.
PV / grid Total Production 534 216 U_DWORD 0.1 kWh R A/B Addresses 534-535.
PV / grid Total Grid Power 625 271 S_WORD 1 W R A/B Import/export sign needs confirmation.
PV / grid Grid Voltage L1 598 256 U_WORD 0.1 V R A/B
Battery Battery Power 590 24E S_WORD 1 W R A/B Confirm charge/discharge sign.
Battery Battery Voltage 587 24B U_WORD 0.01 V R A/B LV platform.
Battery Battery SOC 588 24C U_WORD 1 % R A/B
Battery Battery Current 591 24F S_WORD 0.01 A R A/B
PV / grid AC Temperature 541 21D S_WORD 0.1 °C R A/B Check the offset for your firmware.
PV / grid DC Temperature 540 21C S_WORD 0.1 °C R A/B Check the offset for your firmware.
TOU Time of Use Time 1 148 94 U_WORD 1 R/W A/B HHMM format; minutes 00-59.
TOU Time of Use SOC 1 166 A6 U_WORD 1 % R/W A/B
Generator / Smart Load Total Power of Gen Ports 667 29B U_WORD 1 W R A/B Port meaning depends on inverter configuration.

The table above shows the most important registers for this family. The full list, including the 4xxxx address,
source, word order, write risk, and per-model comments, is in the attached XLSX spreadsheet.

SG05LP3 — close to SG04LP3, but without full confirmation

SG05LP3 shares a large part of the three-phase LV map with SG04LP3 (PV, battery, and grid telemetry), but this is not 100% confirmed. The community itself is still discussing the full mapping of this family, especially the TOU part — treat the table below as a verified starting point, not a settled certainty, and always compare the reading against the inverter screen before the first write. The 14-20 kW variants require even more caution, especially for TOU, power limits, and writing.

Zakres modeli

SUN-3/4/5/6/8/10/12K-SG05LP3-EU-SM2 and SUN-14/15/16/18/20K-SG05LP3-EU-SM2.

Category Register DEC HEX Type Scale Unit R/W Confidence Notes
System Running status 500 1F4 U_WORD 1 R A/B Status code; requires a value map. SG05LP3: check power variant, MPPT count, and firmware.
PV / grid PV1 Power 672 2A0 U_WORD 1 W R A/B SG05LP3: check power variant, MPPT count, and firmware.
Battery Daily Battery Charge 514 202 U_WORD 0.1 kWh R A/B SG05LP3: check power variant, MPPT count, and firmware.
Load / EPS Total Load Power 653 28D U_WORD 1 W R A/B SG05LP3: check power variant, MPPT count, and firmware.
Generator / Smart Load Phase voltage of Gen port A 661 295 U_WORD 0.1 V R A/B Port meaning depends on inverter configuration. SG05LP3: check power variant, MPPT count, and firmware.
TOU Time of Use Weekly Selling Schedule 146 92 U_WORD 1 R/W A/B Do not write the whole word without preserving the other bits. SG05LP3: check power variant, MPPT count, and firmware.
Settings Maximum battery charge current 108 6C U_WORD 1 A R/W A/B Do not exceed the battery and wiring current limits. SG05LP3: check power variant, MPPT count, and firmware.
PV / grid PV2 Power 673 2A1 U_WORD 1 W R A/B SG05LP3: check power variant, MPPT count, and firmware.
PV / grid PV1 Voltage 676 2A4 U_WORD 0.1 V R A/B SG05LP3: check power variant, MPPT count, and firmware.
PV / grid PV1 Current 677 2A5 U_WORD 0.1 A R A/B SG05LP3: check power variant, MPPT count, and firmware.
PV / grid Daily Production 529 211 U_WORD 0.1 kWh R A/B Daily counter. SG05LP3: check power variant, MPPT count, and firmware.
PV / grid Total Production 534 216 U_DWORD 0.1 kWh R A/B Addresses 534-535. SG05LP3: check power variant, MPPT count, and firmware.
PV / grid Total Grid Power 625 271 S_WORD 1 W R A/B Import/export sign needs confirmation. SG05LP3: check power variant, MPPT count, and firmware.
PV / grid Grid Voltage L1 598 256 U_WORD 0.1 V R A/B SG05LP3: check power variant, MPPT count, and firmware.
Battery Battery Power 590 24E S_WORD 1 W R A/B Confirm charge/discharge sign. SG05LP3: check power variant, MPPT count, and firmware.
Battery Battery Voltage 587 24B U_WORD 0.01 V R A/B LV platform. SG05LP3: check power variant, MPPT count, and firmware.
Battery Battery SOC 588 24C U_WORD 1 % R A/B SG05LP3: check power variant, MPPT count, and firmware.
Battery Battery Current 591 24F S_WORD 0.01 A R A/B SG05LP3: check power variant, MPPT count, and firmware.
PV / grid AC Temperature 541 21D S_WORD 0.1 °C R A/B Check the offset for your firmware. SG05LP3: check power variant, MPPT count, and firmware.
PV / grid DC Temperature 540 21C S_WORD 0.1 °C R A/B Check the offset for your firmware. SG05LP3: check power variant, MPPT count, and firmware.
TOU Time of Use Time 1 148 94 U_WORD 1 R/W A/B HHMM format; minutes 00-59. SG05LP3: check power variant, MPPT count, and firmware.
TOU Time of Use SOC 1 166 A6 U_WORD 1 % R/W A/B SG05LP3: check power variant, MPPT count, and firmware.
Generator / Smart Load Total Power of Gen Ports 667 29B U_WORD 1 W R A/B Port meaning depends on inverter configuration. SG05LP3: check power variant, MPPT count, and firmware.

The table above shows the most important registers for this family. The full list, including the 4xxxx address,
source, word order, write risk, and per-model comments, is in the attached XLSX spreadsheet.

SG01HP3 — the three-phase high-voltage map

SG01HP3 uses the 500+ map, but some value scales differ from LP3. PV and battery power may use a x10 multiplier, and larger models may expose PV3/PV4 and data for a second battery.

Zakres modeli

SUN-5-25K-SG01HP3-EU-AM2 and larger 29.9-50 kW variants after validating the MPPT count and battery.

Category Register DEC HEX Type Scale Unit R/W Confidence Notes
System Running status 500 1F4 U_WORD 1 R A/B
PV PV1 Power 672 2A0 U_WORD 10 W R A/B PV and battery power use a scale of 10 in the HP3 profile.
Energy Daily Production 529 211 U_WORD 0.1 kWh R A/B
Grid Total Grid Power 625 271 S_WORD 1 W R A/B
CT Internal CT L1 Power 604 25C S_WORD 1 W R A/B
AC Current L1 630 276 S_WORD 0.01 A R A/B
Temperature DC Temperature 540 21C S_WORD 0.1 °C R A/B
Battery HV Daily Battery Charge 514 202 U_WORD 0.1 kWh R A/B
PV PV2 Power 673 2A1 U_WORD 10 W R A/B PV and battery power use a scale of 10 in the HP3 profile.
PV PV1 Voltage 676 2A4 U_WORD 0.1 V R A/B
PV PV1 Current 677 2A5 U_WORD 0.1 A R A/B
Temperature AC Temperature 541 21D S_WORD 0.1 °C R A/B

The table above shows the most important registers for this family. The full list, including the 4xxxx address,
source, word order, write risk, and per-model comments, is in the attached XLSX spreadsheet.

Key addresses — family comparison

Metric SG01LP1 SG02LP1 SG03LP1 SG04/05LP3 SG01HP3 Comment
PV1 Power 186 186 186 672 672 LP1 uses the 0-279 map; LP3/HP3 the 500+ map.
PV2 Power 187 187 187 673 673
PV3 Power — 188 — opcjonalnie 674 674 SG02LP1 and HP3 may have additional MPPTs.
PV1 Voltage 109 109 109 676 676
PV1 Current 110 110 110 677 677
Daily PV Energy 108 108 108 529 529
Total PV Energy 96–97 96–97 96–97 534–535 534–535
Total Grid Power 169 169 169 625 625 SG02LP1 documents a x10 scale.
Battery Voltage 183 183 183 587 587 HP3 scale 0.1 V; some LP3 LV maps use 0.01 V.
Battery SoC 184 184 184 588 588
Battery Power 190 190 190 590 590 HP3 scale x10.
TOU start legacy / separate group 248 legacy / osobna grupa 146 separate HP3 group Do not carry TOU addresses over between families.

Models without a fully confirmed map

SG04LP1, SG05LP1, SG06LP1, SG06LP3, and SG02HP3 are included in the matrix, but I don’t artificially assign them a complete table.
For these units, the right approach is to read a few basic addresses, dump ranges, compare against the HMI, and only then expand the profile.
The absence of a full map is a technical fact, not a gap to be filled by guessing.

Time of Use is not shared across all models

In SG04LP3 and SG05LP3, the six TOU windows are mainly concentrated in the 146-177 range.
In SG02LP1, the corresponding block starts at 248 and ends at 279.
This is one of the most dangerous areas to copy between families, since a wrong write can change the charging schedule, the target SOC, or the energy source.

Safe-write rule

First read the entire settings block and store the values. Then change one parameter, read it back, and compare against the inverter screen.
For bitmasks, use read-modify-write so you don’t zero out neighboring flags.
Treat the work mode (register 142: 0 = Selling First, 1 = Zero Export to Load, 2 = Zero Export to CT) as a critical setting — test it on an inverter with no critical load attached. Never write to register 80 by accident: a value of 1 forces deep standby, opens the relays, cuts CT measurement, and disables the BACKUP port.

value_type — what each type means

ESPHome needs to know how to interpret the raw bytes from a register. For Deye, four types cover practically everything. A register that has a minus sign next to its scale in the tables above, or is marked S_WORD, should always be coded as a signed type — otherwise negative values (e.g. battery charging) turn into numbers around 65000.

U_WORD

16-bit unsigned (0-65535). Voltages, PV currents, SOC — values that are never negative.

S_WORD

16-bit signed (-32768…32767). Bidirectional power values (battery, grid) and temperatures. A negative value usually means charging/import.

U_DWORD / U_DWORD_R

32-bit unsigned from a pair of registers (energy counters). Deye/Sunsynk stores the low word at the lower address — check the order if an energy counter jumps or shows absurd values.

S_DWORD / S_DWORD_R

32-bit signed from a pair of registers. Less common on Deye than on FoxESS, but useful for some summed power values in the HP3 families.

ESPHome — a safe configuration skeleton

uart:
  id: uart_deye
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 9600
  stop_bits: 1

modbus:
  id: modbus_deye
  uart_id: uart_deye
  send_wait_time: 250ms

modbus_controller:
  - id: deye
    address: 0x01
    modbus_id: modbus_deye
    update_interval: 10s

Add only the sensors relevant to your family on top of this skeleton.
Don’t start with hundreds of entities and active writing. First compare SOC, battery voltage, PV, grid, and Load against the inverter screen.

Common mistakes

Wrong family

Using the LP3 map on LP1, or the other way round.

Wrong sign

S_WORD read as U_WORD.

Wrong order

A 32-bit counter assembled as HW/LW instead of LW/HW.

Block too large

SG03LP1 timeouts on an overly long read.

Wrong port

Connecting to BMS 485 instead of the correct Modbus port.

Competing client

ESPHome, a logger, and another integration all polling the inverter at once.

Common problems and how to fix them

No response at all from the inverter

Usually reversed A/B polarity, or a connection to the wrong port — BMS 485 instead of the Modbus/Meter port. Swap A<->B, check that your RS485 converter has automatic direction control (auto flow control), and make sure you’re connecting to the port labeled Modbus/COM, not the battery BMS communication port.

Battery or grid power shows absurd values (e.g. 65000 W)

The register was treated as U_WORD instead of S_WORD. Battery Power, Battery Current, Total Grid Power, and similar bidirectional registers need value_type: S_WORD, otherwise a negative value (charging, import) wraps around to the top of the unsigned range.

The energy counter (Total Production) jumps or shows the wrong value

Wrong word order in a 32-bit register. Check that you’re reading both registers of the pair (e.g. 534 and 535) in the correct low/high word order — if in doubt, try the reversed-order variant (`_R`).

Timeouts on larger read blocks (especially SG03LP1)

A single register block is too large for one Modbus request. Limit a single read to a maximum of 16 registers and split the configuration into several smaller `modbus_controller` blocks instead of one big one.

Values are correct but refresh rarely or with a noticeable delay

This happens when data passes through the Deye logger/cloud instead of a direct RS485 read from the ESP32. With a direct connection to the Modbus port this shouldn’t happen — check whether the logger is competing for the same serial port.

Writing to a settings register (TOU, work mode, limits) doesn’t work

Usually a competing Modbus client (e.g. the datalogger or a mobile app) is holding the connection and blocking the write from the ESP32. Also make sure the port is set in the inverter menu to 485/Slave, not Master/Meter — in Master mode the inverter expects data from a meter, not from an external controller.

Sources and documentation

Deye does not publish a single official Modbus document covering all families. The sources below are mostly actively maintained community projects, verified empirically across thousands of installations — not factory documentation. Treat this the same way as the FoxESS article: distinguish what’s confirmed by a document from what’s reverse-engineered.

Source What it covers Reliability
github.com/kellerza/sunsynk Single-phase map (LP1) and the basics of TOU/limit control Very high — actively maintained, thousands of installations
github.com/kbialek/deye-inverter-mqtt Three-phase LV (SG04LP3) and HV (SG01HP3) map, per-model metric groups High — active project, precise per-family tables
github.com/StephanJoubert/home_assistant_solarman Ready-made per-model YAML profiles, HA integration High, some definitions tested on a single model
github.com/davidrapan/ha-solarman Information registers and HP3 (block 0x0001-0x0008) High, actively developed
DIY Solar Power Forum and forum.iobroker.net Empirical confirmations (work mode, ports, risk warnings) Medium — community-sourced, but independently repeated multiple times
This article is not official Deye documentation

Deye does not officially support direct Modbus access via ESP32 or ESPHome. Reading is safe (read-only access), but writing to control registers — especially the work mode, SOC limits, and register 80 (deep standby, opens the relays and disables the BACKUP port) — can affect how the inverter operates. Always test writes one at a time, starting with the least critical registers, and keep a way to restore settings from the inverter screen on hand.

Full catalog to download

This article shows the most important registers and differences. The full database is in the XLSX spreadsheet and contains 400+ entries across 12 tabs:
separate registers for SG01LP1, SG02LP1, SG03LP1, SG04LP3, SG05LP3, and SG01HP3, plus Models, Legend, Sources,
Model coverage, Address comparison, and SG04 vs SG05 tabs — with the DEC, HEX, and 4xxxx address, data type, word order, scale, unit,
R/W, confidence level, and source for every register.

The key takeaway

There is no such thing as a “Deye register” without a model. There is a SG02LP1, SG04LP3, or SG01HP3 register,
with a defined data type, scale, and confidence level. Only that level of description is a safe basis for an integration.

Społeczność MarkLabs

Dyskutuj na forum

Pytania, doświadczenia i rozwiązania do tego artykułu publikujemy teraz na forum MarkLabs.

Otwórz dyskusję na forum

Wymagane jest bezpłatne konto MarkLabs. Dotychczasowe komentarze bloga nie są przenoszone.

buymeacoffee.com