SunSpec: make curtail (model 123/704) optional (BC) (#31607)

This commit is contained in:
andig 2026-07-09 16:27:09 +02:00 • committed by GitHub
parent 9ab2be9b10
commit 7c7a74b390
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 170 additions and 100 deletions

View file

@ -0,0 +1,86 @@
template: sunspec-hybrid-curtailable
products:
- description:
de: SunSpec Hybridwechselrichter (abregelbar)
en: SunSpec Hybrid Inverter (curtailable)
group: generic
capabilities: ["curtail"]
params:
- name: usage
choice: ["pv"]
- name: modbus
choice: ["tcpip", "rs485"]
- name: maxacpower
render: |
type: custom
# sunspec model 203 (int+sf)/ 213 (float) meter
power:
source: calc
add:
- source: sunspec
{{- include "modbus" . | indent 6 }}
value: 160:1:DCW # mppt 1
- source: sunspec
{{- include "modbus" . | indent 6 }}
value: 160:2:DCW # mppt 2
energy:
source: calc
add:
- source: sunspec
{{- include "modbus" . | indent 6 }}
value: 160:1:DCWH # mppt 1
scale: 0.001
- source: sunspec
{{- include "modbus" . | indent 6 }}
value: 160:2:DCWH # mppt 2
scale: 0.001
curtail:
source: sequence
set:
- source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
- source: switch
switch:
- case: 100 # Uncurtailed
set:
source: const
value: 0 # Limit disabled
set:
source: sunspec
{{- include "modbus" . | indent 14 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
default:
source: const
value: 1 # Limit enabled
set:
source: sunspec
{{- include "modbus" . | indent 10 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
curtailed: # curtailed only while the limit is enabled and below nominal (< 100 %)
source: go
in:
- name: ena
type: bool
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
- name: limit
type: float
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
script: ena && limit < 100
maxacpower: {{ .maxacpower }} # W

View file

@ -5,7 +5,6 @@ products:
de: SunSpec Hybridwechselrichter
en: SunSpec Hybrid Inverter
group: generic
capabilities: ["curtail"]
params:
- name: usage
choice: ["grid", "pv", "battery"]
@ -107,55 +106,6 @@ render: |
{{- include "modbus" . | indent 6 }}
value: 160:2:DCWH # mppt 2
scale: 0.001
curtail:
source: sequence
set:
- source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
- source: switch
switch:
- case: 100 # Uncurtailed
set:
source: const
value: 0 # Limit disabled
set:
source: sunspec
{{- include "modbus" . | indent 14 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
default:
source: const
value: 1 # Limit enabled
set:
source: sunspec
{{- include "modbus" . | indent 10 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
curtailed: # curtailed only while the limit is enabled and below nominal (< 100 %)
source: go
in:
- name: ena
type: bool
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
- name: limit
type: float
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
script: ena && limit < 100
maxacpower: {{ .maxacpower }} # W
{{- end }}
{{- if eq .usage "battery" }}

View file

@ -0,0 +1,84 @@
template: sunspec-inverter-curtailable
products:
- description:
de: SunSpec Wechselrichter (abregelbar)
en: SunSpec Inverter (curtailable)
group: generic
capabilities: ["curtail"]
params:
- name: usage
choice: ["pv"]
- name: modbus
choice: ["tcpip", "rs485"]
render: |
type: custom
power:
source: sunspec
{{- include "modbus" . | indent 2 }}
value:
- 101:W
- 111:W
- 102:W
- 112:W
- 103:W
- 113:W
energy:
source: sunspec
{{- include "modbus" . | indent 2 }}
value:
- 101:WH
- 111:WH
- 102:WH
- 112:WH
- 103:WH
- 113:WH
scale: 0.001
curtail:
source: sequence
set:
- source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
- source: switch
switch:
- case: 100 # Uncurtailed
set:
source: const
value: 0 # Limit disabled
set:
source: sunspec
{{- include "modbus" . | indent 14 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
default:
source: const
value: 1 # Limit enabled
set:
source: sunspec
{{- include "modbus" . | indent 10 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
curtailed: # curtailed only while the limit is enabled and below nominal (< 100 %)
source: go
in:
- name: ena
type: bool
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
- name: limit
type: float
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
script: ena && limit < 100

View file

@ -4,7 +4,6 @@ products:
de: SunSpec Wechselrichter
en: SunSpec Inverter
group: generic
capabilities: ["curtail"]
params:
- name: usage
choice: ["grid", "pv", "battery"]
@ -154,55 +153,6 @@ render: |
- 103:WH
- 113:WH
scale: 0.001
curtail:
source: sequence
set:
- source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
- source: switch
switch:
- case: 100 # Uncurtailed
set:
source: const
value: 0 # Limit disabled
set:
source: sunspec
{{- include "modbus" . | indent 14 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
default:
source: const
value: 1 # Limit enabled
set:
source: sunspec
{{- include "modbus" . | indent 10 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
curtailed: # curtailed only while the limit is enabled and below nominal (< 100 %)
source: go
in:
- name: ena
type: bool
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPctEna
- 123:WMaxLim_Ena
- name: limit
type: float
config:
source: sunspec
{{- include "modbus" . | indent 6 }}
value:
- 704:WMaxLimPct
- 123:WMaxLimPct
script: ena && limit < 100
{{- end }}
{{- if eq .usage "battery" }}
power: