From b8162aafb86aeee18fe79a758f8fe06537cdc444 Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 20 Sep 2024 18:30:18 +0200 Subject: [PATCH] SofarSolar: add battery discharge control (#16113) --- templates/definition/meter/sofarsolar.yaml | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/templates/definition/meter/sofarsolar.yaml b/templates/definition/meter/sofarsolar.yaml index 0a3bc552a..2355a44d6 100644 --- a/templates/definition/meter/sofarsolar.yaml +++ b/templates/definition/meter/sofarsolar.yaml @@ -6,6 +6,7 @@ products: - brand: ZCS Azzurro description: generic: Inverter, Hybrid Inverter +capabilities: ["battery-control"] params: - name: usage choice: ["grid", "pv", "battery"] @@ -91,5 +92,74 @@ render: | address: 0x0210 # The residual capacity of battery type: holding decode: uint16 + batterymode: + source: switch + switch: + - case: 1 # normal + set: + source: const + value: 0 # self-use + set: + source: modbus + {{- include "modbus" . | indent 8 }} + register: + address: 0x1110 + type: writemultiple + decode: int16 + - case: 2 # hold + set: + source: sequence + set: + - source: const + value: 3 # passive + set: + source: modbus + {{- include "modbus" . | indent 10 }} + register: + address: 0x1110 + type: writemultiple + decode: int16 + - source: const + value: 0 + set: + source: modbus + {{- include "modbus" . | indent 10 }} + register: + address: 0x1187 + type: writemultiple + decode: int32 + - source: const + value: 0 + set: + source: modbus + {{- include "modbus" . | indent 10 }} + register: + address: 0x1189 + type: writemultiple + decode: int32 + - source: const + value: 0x7FFFFFFF + set: + source: modbus + {{- include "modbus" . | indent 10 }} + register: + address: 0x118B + type: writemultiple + decode: int32 + - case: 3 # charge (not implemented -> normal) + set: + source: const + value: 0 # self-use + set: + source: sequence + set: + - source: modbus + {{- include "modbus" . | indent 10 }} + register: + address: 0x1110 + type: writemultiple + decode: int16 + - source: error + error: ErrNotAvailable capacity: {{ .capacity }} # kWh {{- end }}