Skip to content

Commit 03d6c02

Browse files
Add HoldCharge battery mode (#27906)
1 parent 51845c4 commit 03d6c02

9 files changed

Lines changed: 78 additions & 5 deletions

File tree

api/batterymode.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ const (
99
BatteryNormal
1010
BatteryHold
1111
BatteryCharge
12+
BatteryHoldCharge
1213
)

api/batterymode_enumer.go

Lines changed: 8 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/flags.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const (
2929
flagCustomCssDescription = "Additional user-defined CSS file for custom styling. No compatibility guarantees."
3030

3131
flagBatteryMode = "battery-mode"
32-
flagBatteryModeDescription = "Set battery mode (normal, hold, charge)"
32+
flagBatteryModeDescription = "Set battery mode (normal, hold, charge, holdcharge)"
3333
flagBatteryModeWait = "battery-mode-wait"
3434
flagBatteryModeWaitDescription = "Wait given duration during which potential watchdogs are active"
3535

meter/e3dc.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,11 @@ func (m *E3dc) setBatteryMode(mode api.BatteryMode) error {
225225
e3dcDischargeBatteryLimit(false, 0),
226226
e3dcBatteryCharge(50000), // max. 50kWh
227227
}
228+
case api.BatteryHoldCharge:
229+
messages = []rscp.Message{
230+
e3dcDischargeBatteryLimit(false, 0),
231+
e3dcBatteryCharge(0),
232+
}
228233
default:
229234
return api.ErrNotAvailable
230235
}

meter/usage_battery.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ func (m *batterySocLimits) LimitController(socG func() (float64, error), limitSo
6868
case api.BatteryCharge:
6969
return limitSocS(m.MaxSoc)
7070

71+
// BatteryHoldCharge implementable via limit soc
7172
default:
7273
return api.ErrNotAvailable
7374
}

templates/definition/meter/fronius-gen24.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,5 +264,23 @@ render: |
264264
uri: {{ joinHostPort .host .port }}
265265
id: 1
266266
value: 124:0:OutWRte
267+
- case: 4 # holdcharge
268+
set:
269+
source: sequence
270+
set:
271+
- source: const
272+
value: 1
273+
set:
274+
source: sunspec
275+
uri: {{ .host }}:{{ .port }}
276+
id: 1
277+
value: 124:0:StorCtl_Mod
278+
- source: const
279+
value: 0 # %
280+
set:
281+
source: sunspec
282+
uri: {{ .host }}:{{ .port }}
283+
id: 1
284+
value: 124:0:InWRte
267285
{{- include "battery-params" . }}
268286
{{- end }}

templates/definition/meter/fronius-solarapi-v1.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ render: |
110110
body: '{"timeofuse":[]}'
111111
- source: error
112112
error: ErrNotAvailable
113+
- case: 4 # holdcharge (not implemented)
114+
set:
115+
source: error
116+
error: ErrNotAvailable
113117
{{- end }}
114118
{{- include "battery-params" . }}
115119
{{- end }}

templates/definition/meter/fronius-vertoplus.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,5 +260,23 @@ render: |
260260
uri: {{ joinHostPort .host .port }}
261261
id: 1
262262
value: 124:0:OutWRte
263+
- case: 4 # holdcharge
264+
set:
265+
source: sequence
266+
set:
267+
- source: const
268+
value: 1
269+
set:
270+
source: sunspec
271+
uri: {{ .host }}:{{ .port }}
272+
id: 1
273+
value: 124:0:StorCtl_Mod
274+
- source: const
275+
value: 0 # %
276+
set:
277+
source: sunspec
278+
uri: {{ .host }}:{{ .port }}
279+
id: 1
280+
value: 124:0:InWRte
263281
{{- include "battery-params" . }}
264282
{{- end }}

templates/definition/meter/sunspec-inverter-control.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,5 +104,27 @@ render: |
104104
source: sunspec
105105
{{- include "modbus" . | indent 10 }}
106106
value: 124:0:InOutWRte_RvrtTms
107+
- case: 4 # holdcharge
108+
set:
109+
source: sequence
110+
set:
111+
- source: const
112+
value: 1
113+
set:
114+
source: sunspec
115+
{{- include "modbus" . | indent 10 }}
116+
value: 124:0:StorCtl_Mod
117+
- source: const
118+
value: 0 # %
119+
set:
120+
source: sunspec
121+
{{- include "modbus" . | indent 10 }}
122+
value: 124:0:InWRte
123+
- source: const
124+
value: 0 # s
125+
set:
126+
source: sunspec
127+
{{- include "modbus" . | indent 10 }}
128+
value: 124:0:InOutWRte_RvrtTms
107129
{{- include "battery-params" . }}
108130
{{- end }}

0 commit comments

Comments
 (0)