evcc-io/templates/definition/meter/marstek-venus-e.yaml

162 lines
4.4 KiB
YAML

template: marstek-venus-e
covers: ["marstek-venus"]
products:
- brand: Marstek
description:
generic: Venus E
- brand: Marstek
description:
generic: Venus E Gen 2.0
- brand: Marstek
description:
generic: Venus C
capabilities: ["battery-control"]
params:
- name: usage
choice: ["battery"]
- name: modbus
choice: ["rs485", "tcpip"]
baudrate: 115200
comset: 8N1
- preset: battery-params
- name: capacity
default: 5.12
- name: minsoc
default: 11
- name: maxsoc
default: 100
- name: maxchargepower
default: 2500
- name: work_mode_normal
default: 1
advanced: true
description:
en: Work mode for Normal state
de: Work mode für Normal-Modus
help:
en: 0=manual, 1=anti-feed, 2=trade mode.
de: 0=manuell, 1=Eigenverbrauch, 2=AI-Optimierung.
render: |
type: custom
power:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 32202 # AC Power (W)
type: holding
decode: int32
scale: 1
energy:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 33002 # Total energy discharged from battery (kWh)
type: holding
decode: uint32
scale: 0.01
soc:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 32104 # Battery SOC (%)
type: holding
decode: uint16
scale: 1
batterymode:
source: switch
switch:
- case: 1 # normal
set:
source: sequence
set:
# Enable RS485 Control Mode
- source: const
value: 21930
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 42000 # RS485 Control Mode = Enabled
type: writesingle
decode: uint16
# Set User Work Mode
- source: const
value: {{ .work_mode_normal }}
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 43000 # User Work Mode
type: writesingle
decode: uint16
# Disable RS485 Control Mode
- source: const
value: 21947
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 42000 # RS485 Control Mode = Disabled
type: writesingle
decode: uint16
- case: 2 # hold
set:
source: sequence
set:
# Enable RS485 Control Mode
- source: const
value: 21930
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 42000 # RS485 Control Mode = Enabled
type: writesingle
decode: uint16
# Set Force Charge/Discharge to Stop
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 42010 # Force Charge/Discharge = Stop
type: writesingle
decode: uint16
# Do not disable RS485 Control Mode because it will reset the device and let it charge/discharge again
- case: 3 # charge
set:
source: sequence
set:
# Enable RS485 Control Mode
- source: const
value: 21930
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 42000 # RS485 Control Mode = Enabled
type: writesingle
decode: uint16
# Set Force Charge/Discharge to Charge
- source: const
value: 1
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 42010 # Force Charge/Discharge = Charge
type: writesingle
decode: uint16
# Set Forcible Charge Power
- source: const
value: {{ .maxchargepower }}
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 42020 # Forcible Charge Power
type: writesingle
decode: uint16
# Do not disable RS485 Control Mode because it will reset the device and let it charge/discharge again
{{- include "battery-params" . }}