From ca2f32876df9e153b628f655f7ec3441dd3eb0c3 Mon Sep 17 00:00:00 2001 From: premultiply <4681172+premultiply@users.noreply.github.com> Date: Wed, 10 Jun 2026 11:18:35 +0200 Subject: [PATCH] Deye: fix energy and power, add returnenergy and voltages (#30691) --- .../definition/meter/deye-hybrid-3p.yaml | 44 ++++++++++++++++++- templates/definition/meter/deye-mi.yaml | 4 +- templates/definition/meter/deye-storage.yaml | 20 ++++++++- templates/definition/meter/deye-string.yaml | 4 +- 4 files changed, 65 insertions(+), 7 deletions(-) diff --git a/templates/definition/meter/deye-hybrid-3p.yaml b/templates/definition/meter/deye-hybrid-3p.yaml index 6d6aa788c..78d0e1d8f 100644 --- a/templates/definition/meter/deye-hybrid-3p.yaml +++ b/templates/definition/meter/deye-hybrid-3p.yaml @@ -100,7 +100,17 @@ render: | decode: uint32s {{- if not .firmware1098 }} scale: 0.1 - {{- end }} + {{- end }} + returnenergy: + source: modbus + {{- include "modbus" . | indent 2 }} + register: + address: 524 # "Total_GridSell_Power Wh" + type: holding + decode: uint32s + {{- if not .firmware1098 }} + scale: 0.1 + {{- end }} currents: - source: modbus {{- include "modbus" . | indent 4 }} @@ -123,6 +133,28 @@ render: | type: holding decode: int16 scale: 0.01 + voltages: + - source: modbus + {{- include "modbus" . | indent 4 }} + register: + address: 598 # Grid voltage L1 + type: holding + decode: uint16 + scale: 0.1 + - source: modbus + {{- include "modbus" . | indent 4 }} + register: + address: 599 # Grid voltage L2 + type: holding + decode: uint16 + scale: 0.1 + - source: modbus + {{- include "modbus" . | indent 4 }} + register: + address: 600 # Grid voltage L3 + type: holding + decode: uint16 + scale: 0.1 {{- end }} {{- if eq .usage "pv" }} power: @@ -225,6 +257,16 @@ render: | {{- if not .firmware1098 }} scale: 0.1 {{- end }} + returnenergy: + source: modbus + {{- include "modbus" . | indent 2 }} + register: + address: 516 # "Total charge of the battery (Wh)" + type: holding + decode: uint32s + {{- if not .firmware1098 }} + scale: 0.1 + {{- end }} soc: source: modbus {{- include "modbus" . | indent 2 }} diff --git a/templates/definition/meter/deye-mi.yaml b/templates/definition/meter/deye-mi.yaml index 00f9ee003..6e7d2e8a4 100644 --- a/templates/definition/meter/deye-mi.yaml +++ b/templates/definition/meter/deye-mi.yaml @@ -29,7 +29,7 @@ render: | register: address: 86 # "Output active power" type: holding - decode: uint32 + decode: uint32s scale: 0.1 energy: source: modbus @@ -37,6 +37,6 @@ render: | register: address: 63 # "Total_Active_PowerWh" type: holding - decode: uint32 + decode: uint32s scale: 0.1 {{- end }} diff --git a/templates/definition/meter/deye-storage.yaml b/templates/definition/meter/deye-storage.yaml index 36365f5f9..62fe95f67 100644 --- a/templates/definition/meter/deye-storage.yaml +++ b/templates/definition/meter/deye-storage.yaml @@ -41,6 +41,14 @@ render: | type: holding decode: uint16 scale: 6553.6 + returnenergy: + source: modbus + {{- include "modbus" . | indent 2 }} + register: + address: 81 # "Total_GridSell_PowerWh" (low word, high word at 82) + type: holding + decode: uint32s + scale: 0.1 {{- end }} {{- if eq .usage "pv" }} power: @@ -76,7 +84,7 @@ render: | register: address: 96 # "historyPV PowerWh" type: holding - decode: uint32 + decode: uint32s scale: 0.1 {{- end }} {{- if eq .usage "battery" }} @@ -93,7 +101,15 @@ render: | register: address: 74 # "Battery cumulative discharge" type: holding - decode: uint32 + decode: uint32s + scale: 0.1 + returnenergy: + source: modbus + {{- include "modbus" . | indent 2 }} + register: + address: 72 # "Battery cumulative charge" + type: holding + decode: uint32s scale: 0.1 soc: source: modbus diff --git a/templates/definition/meter/deye-string.yaml b/templates/definition/meter/deye-string.yaml index 393e8759d..136609713 100644 --- a/templates/definition/meter/deye-string.yaml +++ b/templates/definition/meter/deye-string.yaml @@ -22,7 +22,7 @@ render: | register: address: 86 # "Output active power" type: holding - decode: uint32 + decode: uint32s scale: 0.1 energy: source: modbus @@ -30,6 +30,6 @@ render: | register: address: 63 # "Total_Active_PowerWh" type: holding - decode: uint32 + decode: uint32s scale: 0.1 {{- end }}