From 6d6b12b1099293b982873767e62368fee40dce03 Mon Sep 17 00:00:00 2001 From: Florian Zahn Date: Tue, 12 Aug 2025 08:43:28 +0200 Subject: [PATCH] Add Fronius Verto Plus (#22857) --- .../definition/meter/fronius-vertoplus.yaml | 250 ++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 templates/definition/meter/fronius-vertoplus.yaml diff --git a/templates/definition/meter/fronius-vertoplus.yaml b/templates/definition/meter/fronius-vertoplus.yaml new file mode 100644 index 000000000..40cdedb65 --- /dev/null +++ b/templates/definition/meter/fronius-vertoplus.yaml @@ -0,0 +1,250 @@ +template: fronius-vertoplus +products: + - brand: Fronius + description: + generic: Verto Plus +capabilities: ["battery-control"] +params: + - name: usage + choice: ["grid", "pv", "battery"] + allinone: true + - name: host + - name: port + default: 502 + - name: id + default: 200 + advanced: true + help: + en: "Meter address of primary or secondary meters. On the web interface of the inverter, only the address of the first meter (e.g., 200) can be set. Additional meters receive an ascending number (e.g., 201)." + de: "Zähleradresse von Primär- oder Sekundärzählern. Auf der Weboberfläche des Wechselrichters kann nur die Adresse des ersten Zählers (z.B. 200) eingestellt werden. Zusätzliche Zähler erhalten eine aufsteigende Nummer (z.B: 201)." + usages: ["grid"] + - name: maxacpower + - name: maxchargerate + advanced: true + - name: capacity + advanced: true +render: | + type: custom + # sunspec model 20x (int+sf)/ 21x (float) meter + {{- if eq .usage "grid" }} + power: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:W + - 211:W + - 203:W + - 213:W + energy: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:TotWhImp + - 211:TotWhImp + - 203:TotWhImp + - 213:TotWhImp + scale: 0.001 + currents: + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:AphA + - 211:AphA + - 203:AphA + - 213:AphA + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:AphB + - 211:AphB + - 203:AphB + - 213:AphB + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:AphC + - 211:AphC + - 203:AphC + - 213:AphC + voltages: + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:PhVphA + - 211:PhVphA + - 203:PhVphA + - 213:PhVphA + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:PhVphB + - 211:PhVphB + - 203:PhVphB + - 213:PhVphB + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:PhVphC + - 211:PhVphC + - 203:PhVphC + - 213:PhVphC + powers: + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:WphA + - 211:WphA + - 203:WphA + - 213:WphA + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:WphB + - 211:WphB + - 203:WphB + - 213:WphB + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: {{ .id }} + value: + - 201:WphC + - 211:WphC + - 203:WphC + - 213:WphC + {{- end }} + {{- if eq .usage "pv" }} + power: + source: calc + add: + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:1:DCW # mppt 1 + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:2:DCW # mppt 2 + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:3:DCW # mppt 3 + energy: + source: calc + add: + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:1:DCWH # mppt 1 + scale: 0.001 + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:2:DCWH # mppt 2 + scale: 0.001 + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:3:DCWH # mppt 3 + scale: 0.001 + maxacpower: {{ .maxacpower }} # W + {{- end }} + {{- if eq .usage "battery" }} + power: + source: calc + add: + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:4:DCW # mppt 4 charge + scale: -1 + - source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:5:DCW # mppt 5 discharge + energy: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 160:5:DCWH # mppt 5 (discharge) + scale: 0.001 + soc: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:ChaState + batterymode: # model 124 + source: switch + switch: + - case: 1 # normal + set: + source: sequence + set: + - source: const + value: 0 + set: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:StorCtl_Mod + - source: const + value: 100 # % + set: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:OutWRte + - case: 2 # hold + set: + source: sequence + set: + - source: const + value: 2 + set: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:StorCtl_Mod + - source: const + value: 0 # % + set: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:OutWRte + - case: 3 # charge + set: + source: sequence + set: + - source: const + value: 1 # off + set: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:ChaGriSet + - source: const + value: 2 + set: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:StorCtl_Mod + - source: const + value: -{{ .maxchargerate }} # % + set: + source: sunspec + uri: {{ .host }}:{{ .port }} + id: 1 + value: 124:0:OutWRte + capacity: {{ .capacity }} # kWh + {{- end }}