293 lines
8.7 KiB
YAML
293 lines
8.7 KiB
YAML
template: sofarsolar-g3
|
|
products:
|
|
- brand: SofarSolar
|
|
description:
|
|
generic: HYD 5…20K-3PH
|
|
- brand: SofarSolar
|
|
description:
|
|
generic: HYD 3…6K-EP
|
|
- brand: SofarSolar
|
|
description:
|
|
generic: SOFAR 80…136KTL
|
|
- brand: SofarSolar
|
|
description:
|
|
generic: SOFAR 5…24KTL-G3
|
|
requirements:
|
|
description:
|
|
de: Zu den Details wie man den Wechselrichter verbindet siehe die Sofar Solar Installations Anleitung von [homeassistant-solax-modbus.readthedocs.io](https://homeassistant-solax-modbus.readthedocs.io/en/latest/sofar-installation/).
|
|
en: For more details on how to establish a connection to the inverter see the Sofar Solar installation doc at [homeassistant-solax-modbus.readthedocs.io](https://homeassistant-solax-modbus.readthedocs.io/en/latest/sofar-installation/).
|
|
capabilities: ["battery-control"]
|
|
params:
|
|
- name: usage
|
|
choice: ["grid", "pv", "battery"]
|
|
- name: modbus
|
|
choice: ["tcpip", "rs485"]
|
|
port: 8899
|
|
id: 1
|
|
- name: delay
|
|
deprecated: true
|
|
- name: maxacpower
|
|
- name: storageunit
|
|
help:
|
|
de: Im Fall eines BTS Speichers nicht die Adresse eines BTS 5K Batteriemodules, sondern der Speicherturm (BTS 5K-BDU Steuerungseinheit mit 1-4 BTS 5K Modulen).
|
|
en: In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules).
|
|
- name: defaultmode
|
|
help:
|
|
de: Gültige Werte sind 0 (Eigenbedarfsmodus), 1 (Nutzungszeitmodus), 2 (Zeitmodus), 4 (Peak-shaving Modus)
|
|
en: Valid values are 0 (self use), 1 (time of use), 2 (timing mode), 4 (peak-shaving mode)
|
|
default: 0 # self use
|
|
- name: externalpower
|
|
type: bool
|
|
description:
|
|
de: Externe Quelle einschließen
|
|
en: Include external power
|
|
help:
|
|
de: Bezieht alle angeschlossenen externen Quellen, wie die Leistung von kaskadierten Wechselrichter, in die PV-Leistungsberechnung mit ein.
|
|
en: Includes all connected external sources, like the power generation of cascaded inverters, into the PV power calculation.
|
|
advanced: true
|
|
usages: ["pv"]
|
|
- preset: battery-params
|
|
render: |
|
|
type: custom
|
|
{{- if eq .usage "grid" }}
|
|
power:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x0488 # ActivePower_PCC_Total
|
|
type: holding
|
|
decode: int16
|
|
scale: -10
|
|
currents:
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x0492 # Current_PCC_R
|
|
type: holding
|
|
decode: uint16
|
|
scale: 0.01
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x049D # Current_PCC_S
|
|
type: holding
|
|
decode: uint16
|
|
scale: 0.01
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x04A8 # Current_PCC_T
|
|
type: holding
|
|
decode: uint16
|
|
scale: 0.01
|
|
powers:
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x0493 # ActivePower_PCC_R
|
|
type: holding
|
|
decode: int16
|
|
scale: -10
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x049E # ActivePower_PCC_S
|
|
type: holding
|
|
decode: int16
|
|
scale: -10
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x04A9 # ActivePower_PCC_T
|
|
type: holding
|
|
decode: int16
|
|
scale: -10
|
|
energy:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x068E # Energy_Purchase_Total
|
|
type: holding
|
|
decode: uint32
|
|
scale: 0.1
|
|
{{- end }}
|
|
{{- if eq .usage "pv" }}
|
|
power:
|
|
source: calc
|
|
add:
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 6 }}
|
|
register:
|
|
address: 0x586 #Power_PV1
|
|
type: holding
|
|
decode: uint16
|
|
scale: 10
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 6 }}
|
|
register:
|
|
address: 0x589 #Power_PV2
|
|
type: holding
|
|
decode: uint16
|
|
scale: 10
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 6 }}
|
|
register:
|
|
address: 0x58C #Power_PV3
|
|
type: holding
|
|
decode: uint16
|
|
scale: 10
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 6 }}
|
|
register:
|
|
address: 0x58E #Power_PV4
|
|
type: holding
|
|
decode: uint16
|
|
scale: 10
|
|
{{- if eq .externalpower "true" }}
|
|
- source: modbus
|
|
{{- include "modbus" . | indent 6 }}
|
|
register:
|
|
address: 0x4AE #ActivePower_PV_Ext
|
|
type: holding
|
|
decode: uint16
|
|
scale: 10
|
|
{{- end }}
|
|
energy:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
address: 0x0686 # PV_Generation_Total
|
|
type: holding
|
|
decode: uint32
|
|
scale: 0.1
|
|
maxacpower: {{ .maxacpower }}
|
|
{{- end }}
|
|
{{- if eq .usage "battery" }}
|
|
power:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
{{- if eq .storageunit "1" }}
|
|
address: 0x0606 # Power_Bat1
|
|
{{- else if eq .storageunit "2" }}
|
|
address: 0x060D # Power_Bat2
|
|
{{- else if eq .storageunit "3" }}
|
|
address: 0x0614 # Power_Bat3
|
|
{{- else if eq .storageunit "4" }}
|
|
address: 0x061B # Power_Bat4
|
|
{{- else if eq .storageunit "5" }}
|
|
address: 0x0622 # Power_Bat5
|
|
{{- else if eq .storageunit "6" }}
|
|
address: 0x0629 # Power_Bat6
|
|
{{- else if eq .storageunit "7" }}
|
|
address: 0x0630 # Power_Bat7
|
|
{{- else if eq .storageunit "8" }}
|
|
address: 0x0637 # Power_Bat8
|
|
{{- end }}
|
|
type: holding
|
|
decode: int16
|
|
scale: -10
|
|
soc:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 2 }}
|
|
register:
|
|
{{- if eq .storageunit "1" }}
|
|
address: 0x0608 # SOC_Bat1
|
|
{{- else if eq .storageunit "2" }}
|
|
address: 0x060F # SOC_Bat2
|
|
{{- else if eq .storageunit "3" }}
|
|
address: 0x0616 # SOC_Bat3
|
|
{{- else if eq .storageunit "4" }}
|
|
address: 0x061D # SOC_Bat4
|
|
{{- else if eq .storageunit "5" }}
|
|
address: 0x0624 # SOC_Bat5
|
|
{{- else if eq .storageunit "6" }}
|
|
address: 0x062B # SOC_Bat6
|
|
{{- else if eq .storageunit "7" }}
|
|
address: 0x0632 # SOC_Bat7
|
|
{{- else if eq .storageunit "8" }}
|
|
address: 0x0639 # SOC_Bat8
|
|
{{- end }}
|
|
type: holding
|
|
decode: uint16
|
|
batterymode:
|
|
source: switch
|
|
switch:
|
|
- case: 1 # normal
|
|
set:
|
|
source: const
|
|
value: {{ .defaultmode }} # set back to default energy storage mode
|
|
set:
|
|
source: ignore
|
|
error: "modbus: response data size '18' does not match count '4'"
|
|
set:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 10 }}
|
|
register:
|
|
address: 0x1110
|
|
type: writemultiple
|
|
decode: int16
|
|
- case: 2 # hold
|
|
set:
|
|
source: sequence
|
|
set:
|
|
- source: const
|
|
value: 3 # passive
|
|
set:
|
|
source: ignore
|
|
error: "modbus: response data size '18' does not match count '4'"
|
|
set:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 12 }}
|
|
register:
|
|
address: 0x1110
|
|
type: writemultiple
|
|
decode: int16
|
|
- source: convert
|
|
convert: int2bytes
|
|
set:
|
|
source: const
|
|
value: '0x00000000_00000000_7FFFFFFF'
|
|
set:
|
|
source: ignore
|
|
error: "modbus: response data size '18' does not match count '4'"
|
|
set:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 14 }}
|
|
register:
|
|
address: 0x1187
|
|
type: writemultiple
|
|
decode: bytes
|
|
- case: 3 # charge
|
|
set:
|
|
source: sequence
|
|
set:
|
|
- source: const
|
|
value: 3 # passive
|
|
set:
|
|
source: ignore
|
|
error: "modbus: response data size '18' does not match count '4'"
|
|
set:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 12 }}
|
|
register:
|
|
address: 0x1110
|
|
type: writemultiple
|
|
decode: int16
|
|
- source: convert
|
|
convert: int2bytes
|
|
set:
|
|
source: const
|
|
value: '0x00000000_7FFFFFFF_7FFFFFFF'
|
|
set:
|
|
source: ignore
|
|
error: "modbus: response data size '18' does not match count '4'"
|
|
set:
|
|
source: modbus
|
|
{{- include "modbus" . | indent 14 }}
|
|
register:
|
|
address: 0x1187
|
|
type: writemultiple
|
|
decode: bytes
|
|
{{- include "battery-params" . }}
|
|
{{- end }}
|