evcc-io/templates/definition/meter/sma-sbs-modbus.yaml

233 lines
7.4 KiB
YAML

template: sma-sbs-modbus
products:
- brand: SMA
description:
generic: Sunny Boy Storage 3.7/5.0/6.0 (Modbus)
capabilities: ["battery-control"]
params:
- name: usage
choice: ["battery"]
- name: modbus
choice: ["tcpip"]
port: 502
id: 3
help:
en: ModbusTCP server needs to be enabled.
de: Der ModbusTCP Server muss aktiviert sein.
- preset: battery-params
- name: maxchargepower
default: 4200
required: true
- name: watchdog
default: 60s
- name: chargepower
deprecated: true
render: |
type: custom
power:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 30775 # SMA Modbus Profile: GridMs.TotW
type: input
decode: int32nan
energy:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 30513 # SMA Modbus Profile: Metering.TotWhOut
type: holding
decode: uint64nan
scale: 0.001
soc:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 30845 # SMA Modbus Profile: Bat.ChaStt
type: holding
decode: uint32nan
batterymode:
source: watchdog
timeout: {{ .watchdog }}
reset: 1 # reset watchdog on normal
set:
source: switch
switch:
- case: 1 # normal
set:
source: sequence
set:
- source: const
value: 2424 # Voreinstellung (Dft)
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40236 # CmpBMS.OpMod - Betriebsart des BMS
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40793 # CmpBMS.BatChaMinW - Minimale Batterieladeleistung
type: writemultiple
decode: uint32
- source: const
value: {{ .maxchargepower }}
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40795 # CmpBMS.BatChaMaxW - Maximale Batterieladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40797 # CmpBMS.BatDschMinW - Minimale Batterieentladeleistung
type: writemultiple
decode: uint32
- source: const
value: {{ .maxchargepower }}
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40799 # CmpBMS.BatDschMaxW - Maximale Batterieentladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40801 # CmpBMS.GridWSpt - Sollwert der Netzaustauschleistung
type: writemultiple
decode: uint32
- case: 2 # hold
set:
source: sequence
set:
- source: const
value: 2424 # Voreinstellung (Dft)
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40236 # CmpBMS.OpMod - Betriebsart des BMS
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40793 # CmpBMS.BatChaMinW - Minimale Batterieladeleistung
type: writemultiple
decode: uint32
- source: const
value: {{ .maxchargepower }}
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40795 # CmpBMS.BatChaMaxW - Maximale Batterieladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40797 # CmpBMS.BatDschMinW - Minimale Batterieentladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40799 # CmpBMS.BatDschMaxW - Maximale Batterieentladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40801 # CmpBMS.GridWSpt - Sollwert der Netzaustauschleistung
type: writemultiple
decode: uint32
- case: 3 # charge
set:
source: sequence
set:
- source: const
value: 2289 # Batterie laden (BatChaMod)
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40236 # CmpBMS.OpMod - Betriebsart des BMS
type: writemultiple
decode: uint32
- source: const
value: {{ .maxchargepower }}
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40793 # CmpBMS.BatChaMinW - Minimale Batterieladeleistung
type: writemultiple
decode: uint32
- source: const
value: {{ .maxchargepower }}
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40795 # CmpBMS.BatChaMaxW - Maximale Batterieladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40797 # CmpBMS.BatDschMinW - Minimale Batterieentladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40799 # CmpBMS.BatDschMaxW - Maximale Batterieentladeleistung
type: writemultiple
decode: uint32
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 40801 # CmpBMS.GridWSpt - Sollwert der Netzaustauschleistung
type: writemultiple
decode: uint32
default:
source: error
error: ErrNotAvailable
{{- include "battery-params" . }}