From dbd298445b2ee1acbce43414280fb96b823d8393 Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 18 Jan 2026 10:43:52 +0100 Subject: [PATCH] Sungrow Hybrid: use configured discharge power (BC) (#26723) --- .../definition/meter/sungrow-hybrid.yaml | 47 +++++++------------ 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/templates/definition/meter/sungrow-hybrid.yaml b/templates/definition/meter/sungrow-hybrid.yaml index 947e6a310..fa8c5038b 100644 --- a/templates/definition/meter/sungrow-hybrid.yaml +++ b/templates/definition/meter/sungrow-hybrid.yaml @@ -15,15 +15,18 @@ params: - name: modbus choice: ["rs485", "tcpip"] baudrate: 9600 - - name: maxacpower - - preset: battery-params - name: maxchargepower - default: 5000 + service: modbus/read?address=13051&type=holding&encoding=uint16&scale=1&{modbus} required: true - name: maxdischargepower - default: 5000 - - name: timeout - deprecated: true + service: modbus/read?address=33047&type=holding&encoding=uint16&scale=10&{modbus} + required: true + - name: capacity + service: modbus/read?address=5638&type=input&encoding=uint16&scale=0.01&resulttype=float&{modbus} + - name: maxacpower + service: modbus/read?address=5000&type=input&encoding=uint16&scale=100&{modbus} + - name: minsoc + - name: maxsoc render: | type: custom {{- if eq .usage "grid" }} @@ -177,29 +180,6 @@ render: | address: 13050 # Charge/discharge command type: writesingle decode: uint16 - # Reset max battery discharge power, set equal to max battery charge power - - source: go - script: power - in: - - name: power - type: int - config: - source: modbus - {{- include "modbus" . | indent 12 }} - register: - address: 33046 # Battery max charge power - type: holding - decode: uint16 - out: - - name: power - type: int - config: - source: modbus - {{- include "modbus" . | indent 12 }} - register: - address: 33047 # Battery max discharge power - type: writesingle - decode: uint16 - source: const value: 0 # Self-consumption mode (Default) set: @@ -209,6 +189,15 @@ render: | address: 13049 # EMS mode selection type: writesingle decode: uint16 + - source: const + value: {{ div .maxdischargepower 10 }} + set: + source: modbus + {{- include "modbus" . | indent 10 }} + register: + address: 33047 # Battery max discharge power + type: writesingle + decode: uint16 - case: 2 # hold set: source: sequence