evcc-io/templates/definition/meter/solarmax-maxstorage.yaml

142 lines
4.1 KiB
YAML

template: solarmax-maxstorage
products:
- brand: SolarMax
description:
generic: MAX.STORAGE / MAX.STORAGE Ultimate
capabilities: ["battery-control"]
requirements:
description:
de: Für Batteriesteuerung muss über den Solarmax Support die Funktion "Connectivity+" freigeschaltet werden. Verfügbar ab Software 3.4.4. Ohne Freischaltung bleibt die Funktion ohne Wirkung. Netzladung ist generell nicht verfügbar.
en: For batter control, the "Connectivity+" function must be activated via the Solarmax support. Available from software version 3.4.4. Without activation, the function remains without effect. Grid charging is generally not available.
params:
- name: usage
choice: ["grid", "pv", "battery"]
- name: modbus
choice: ["tcpip"]
id: 1
- name: maxacpower
- preset: battery-params
# battery control
- name: watchdog
type: duration
default: 60s
advanced: true
render: |
type: custom
{{- if eq .usage "grid" }}
power:
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 118 # Einspeise-/Bezugsleistung
type: input
decode: int32s
scale: -1
{{- end }}
{{- if eq .usage "pv" }}
power:
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 110 # PV-Leistung MAX.STORAGE
type: input
decode: int32s
energy:
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 150 # Produzierte PV-Energie
type: input
decode: int32s
maxacpower: {{ .maxacpower }}
{{- end }}
{{- if eq .usage "battery" }}
power:
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 114 # Batterie-Leistung
type: input
decode: int32s
scale: -1
soc:
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 122 # Batterie Soc
type: input
decode: int16
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: 7000
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 140
type: writemultiple
decode: int16
- source: const
value: 7000
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 141
type: writemultiple
decode: int16
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 142
type: writemultiple
decode: int16
- case: 2 # hold
set:
source: sequence
set:
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 140
type: writemultiple
decode: int16
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 141
type: writemultiple
decode: int16
- source: random
set:
source: modbus
{{- include "modbus" . | indent 12 }}
register:
address: 142
type: writemultiple
decode: int16
- case: 3 # charge (not implemented)
set:
source: error
error: ErrNotAvailable
{{- include "battery-params" . }}
{{- end }}