evcc-io/templates/definition/meter/sofarsolar-g3.yaml

214 lines
5.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
# capabilities: ["battery-control"]
requirements:
description:
de: Die Verbindung über einen LSE-3 Logger Stick mittels ModBus TCP ist möglich, jedoch kann Battery Control darüber nicht genutzt werden. Der LSW-3 WLAN Stick wird nicht unterstützt. Bei seriellem Anschluss via RS485 am COM Port ist eine wechselrichterseitige Terminierung notwendig.
en: Connection via LSE-3 logger stick using ModBus TCP is possible, however does not allow Battery Control. The LSW-3 WiFi stick is not supported. For RS485 serial connection using the inverter's COM port the inverter's side must be properly terminated.
capabilities: ["battery-control"]
params:
- name: usage
choice: ["grid", "pv", "battery"]
- name: modbus
choice: ["tcpip", "rs485"]
port: 8899
id: 1
- name: delay
deprecated: true
- name: capacity
advanced: true
# battery control
- name: minsoc
type: number
advanced: true
deprecated: true
- name: maxsoc
type: number
advanced: true
deprecated: true
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: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 0x05C4 # Power_PV_Total
type: holding
decode: uint16
scale: 100
energy:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 0x0686 # PV_Generation_Total
type: holding
decode: uint32
scale: 0.1
{{- end }}
{{- if eq .usage "battery" }}
power:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 0x0606 # Power_Bat1
type: holding
decode: int16
scale: -10
energy:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 0x069A # Bat_Discharge_Total
type: holding
decode: uint32
scale: 0.1
soc:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 0x0608 # SOC_Bat1
type: holding
decode: uint16
batterymode:
source: switch
switch:
- case: 1 # normal
set:
source: const
value: 0 # self-use
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 (not implemented -> normal)
set:
source: const
value: 0 # self-use
set:
source: sequence
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: error
error: ErrNotAvailable
capacity: {{ .capacity }} # kWh
{{- end }}