diff --git a/templates/definition/meter/sunspec-hybrid-curtailable.yaml b/templates/definition/meter/sunspec-hybrid-curtailable.yaml new file mode 100644 index 000000000..8713fcbba --- /dev/null +++ b/templates/definition/meter/sunspec-hybrid-curtailable.yaml @@ -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 diff --git a/templates/definition/meter/sunspec-hybrid.yaml b/templates/definition/meter/sunspec-hybrid.yaml index 9f2a38946..f16e02805 100644 --- a/templates/definition/meter/sunspec-hybrid.yaml +++ b/templates/definition/meter/sunspec-hybrid.yaml @@ -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" }} diff --git a/templates/definition/meter/sunspec-inverter-curtailable.yaml b/templates/definition/meter/sunspec-inverter-curtailable.yaml new file mode 100644 index 000000000..a2f2762f9 --- /dev/null +++ b/templates/definition/meter/sunspec-inverter-curtailable.yaml @@ -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 diff --git a/templates/definition/meter/sunspec-inverter.yaml b/templates/definition/meter/sunspec-inverter.yaml index 8f0c4b83f..d3088c229 100644 --- a/templates/definition/meter/sunspec-inverter.yaml +++ b/templates/definition/meter/sunspec-inverter.yaml @@ -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: