chore: merge Marstek Venus A and D templates (#31864)

This commit is contained in:
andig 2026-07-17 12:14:02 +02:00 • committed by GitHub
parent 49b93c6f4d
commit 7a5f935c6f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 250 deletions

View file

@ -1,8 +1,12 @@
template: marstek-venus-a
covers: ["marstek-venus-d"]
products:
- brand: Marstek
description:
generic: Venus A
- brand: Marstek
description:
generic: Venus D
capabilities: ["battery-control"]
params:
- name: usage
@ -13,16 +17,19 @@ params:
comset: 8N1
- preset: battery-params
- name: capacity
default: 2.12
required: true
help:
de: Basisgerät 2.12 kWh, jede Erweiterung zzgl. 2.12 kWh
en: Base unit 2.12 kWh, each extension plus 2.12 kWh
de: Venus A 2.12 kWh, Venus D 2.56 kWh je Basisgerät und je Erweiterung
en: Venus A 2.12 kWh, Venus D 2.56 kWh per base unit and per extension
- name: minsoc
default: 11
- name: maxsoc
default: 100
- name: maxchargepower
default: 1200
required: true
help:
de: Für erzwungenes Laden des Speichers. Venus A 1200 W, Venus D 2200 W
en: For forced charging of the battery. Venus A 1200 W, Venus D 2200 W
- name: work_mode_normal
default: 1
advanced: true

View file

@ -1,246 +0,0 @@
template: marstek-venus-d
products:
- brand: Marstek
description:
generic: Venus D
capabilities: ["battery-control"]
params:
- name: usage
choice: ["pv", "battery"]
- name: modbus
choice: ["rs485", "tcpip"]
baudrate: 115200
comset: 8N1
- preset: battery-params
- name: capacity
default: 2.56
help:
de: Basisgerät 2.56 kWh, jede Erweiterung zzgl. 2.56 kWh
en: Base unit 2.56 kWh, each extension plus 2.56 kWh
- name: minsoc
default: 11
- name: maxsoc
default: 100
- name: maxchargepower
default: 2200
- 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
{{- if eq .usage "pv" }}
power:
source: calc
add:
- source: modbus
{{- include "modbus" . | indent 4 }}
register:
address: 30037 # MPPT1 power (W)
type: holding
decode: uint16
scale: 0.1
- source: modbus
{{- include "modbus" . | indent 4 }}
register:
address: 30038 # MPPT2 power (W)
type: holding
decode: uint16
scale: 0.1
- source: modbus
{{- include "modbus" . | indent 4 }}
register:
address: 30039 # MPPT3 power (W)
type: holding
decode: uint16
scale: 0.1
- source: modbus
{{- include "modbus" . | indent 4 }}
register:
address: 30040 # MPPT4 power (W)
type: holding
decode: uint16
scale: 0.1
{{- end }}
{{- if eq .usage "battery" }}
power:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 30001 # Battery power (W)
type: holding
decode: int16
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
batterymode:
source: switch
switch:
- case: 1 # normal
set:
source: sequence
set:
# Restore Max Charge Power
- source: const
value: {{ .maxchargepower }}
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 44002 # Max Charge Power
type: writesingle
decode: uint16
# 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
- case: 4 # holdcharge -> no charging, discharging allowed
set:
source: sequence
set:
# Set Max Charge Power to 0 to prevent charging
- source: const
value: 0
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 44002 # Max Charge Power
type: writesingle
decode: uint16
# 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
{{- include "battery-params" . }}
{{- end }}