Skip to content

Commit 5fbff52

Browse files
committed
Merge branch 'fronius-limit-battery-charging' into fronius-restructure
# Conflicts: # bundles/org.openhab.binding.fronius/src/main/resources/OH-INF/thing/thing-types.xml
2 parents b64ce80 + e03d111 commit 5fbff52

6 files changed

Lines changed: 38 additions & 35 deletions

File tree

bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/action/FroniusBatteryActions.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ public static boolean addSchedule(ThingActions actions, LocalTime from, LocalTim
8484

8585
public static boolean addSchedule(ThingActions actions, LocalTime from, LocalTime until, String scheduleType,
8686
QuantityType<Power> power) {
87-
return addSchedule(actions, from, until, ScheduleType.valueOf(scheduleType), power);
87+
return addSchedule(actions, from, until, ScheduleType.parse(scheduleType), power);
8888
}
8989

9090
public static boolean addSchedule(ThingActions actions, LocalTime from, LocalTime until, String scheduleType,
9191
QuantityType<Power> power, @Nullable String weekdays) {
92-
return addSchedule(actions, from, until, ScheduleType.valueOf(scheduleType), power, weekdays);
92+
return addSchedule(actions, from, until, ScheduleType.parse(scheduleType), power, weekdays);
9393
}
9494

9595
public static boolean addSchedule(ThingActions actions, ZonedDateTime from, ZonedDateTime until,
@@ -104,12 +104,12 @@ public static boolean addSchedule(ThingActions actions, ZonedDateTime from, Zone
104104

105105
public static boolean addSchedule(ThingActions actions, ZonedDateTime from, ZonedDateTime until,
106106
String scheduleType, QuantityType<Power> power) {
107-
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power);
107+
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power);
108108
}
109109

110110
public static boolean addSchedule(ThingActions actions, ZonedDateTime from, ZonedDateTime until,
111111
String scheduleType, QuantityType<Power> power, @Nullable String weekdays) {
112-
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power,
112+
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power,
113113
weekdays);
114114
}
115115

@@ -330,11 +330,11 @@ public boolean addSchedule(LocalTime from, LocalTime until, ScheduleType schedul
330330
@ActionInput(name = "scheduleType", label = "@text/actions.schedule-type.label", description = "@text/actions.schedule-type.description", required = true) String scheduleType,
331331
@ActionInput(name = "power", label = "@text/actions.power.label", description = "@text/actions.power.description", type = "QuantityType<Power>", required = true) QuantityType<Power> power,
332332
@ActionInput(name = "weekdays", label = "@text/actions.weekdays.label", description = "@text/actions.weekdays.description", type = "java.lang.String", required = false) @Nullable String weekdays) {
333-
return addSchedule(from, until, ScheduleType.valueOf(scheduleType), power, weekdays);
333+
return addSchedule(from, until, ScheduleType.parse(scheduleType), power, weekdays);
334334
}
335335

336336
public boolean addSchedule(LocalTime from, LocalTime until, String scheduleType, QuantityType<Power> power) {
337-
return addSchedule(from, until, ScheduleType.valueOf(scheduleType), power);
337+
return addSchedule(from, until, ScheduleType.parse(scheduleType), power);
338338
}
339339

340340
public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, ScheduleType scheduleType,
@@ -349,13 +349,12 @@ public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, ScheduleType
349349

350350
public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, String scheduleType,
351351
QuantityType<Power> power) {
352-
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power);
352+
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power);
353353
}
354354

355355
public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, String scheduleType, QuantityType<Power> power,
356356
@Nullable String weekdays) {
357-
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power,
358-
weekdays);
357+
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power, weekdays);
359358
}
360359

361360
@RuleAction(label = "@text/actions.hold-battery-charge.label", description = "@text/actions.hold-battery-charge.description")

bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/action/FroniusSymoInverterActions.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,12 @@ public static boolean addSchedule(ThingActions actions, LocalTime from, LocalTim
8888

8989
public static boolean addSchedule(ThingActions actions, LocalTime from, LocalTime until, String scheduleType,
9090
QuantityType<Power> power) {
91-
return addSchedule(actions, from, until, ScheduleType.valueOf(scheduleType), power);
91+
return addSchedule(actions, from, until, ScheduleType.parse(scheduleType), power);
9292
}
9393

9494
public static boolean addSchedule(ThingActions actions, LocalTime from, LocalTime until, String scheduleType,
9595
QuantityType<Power> power, @Nullable String weekdays) {
96-
return addSchedule(actions, from, until, ScheduleType.valueOf(scheduleType), power, weekdays);
96+
return addSchedule(actions, from, until, ScheduleType.parse(scheduleType), power, weekdays);
9797
}
9898

9999
public static boolean addSchedule(ThingActions actions, ZonedDateTime from, ZonedDateTime until,
@@ -108,12 +108,12 @@ public static boolean addSchedule(ThingActions actions, ZonedDateTime from, Zone
108108

109109
public static boolean addSchedule(ThingActions actions, ZonedDateTime from, ZonedDateTime until,
110110
String scheduleType, QuantityType<Power> power) {
111-
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power);
111+
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power);
112112
}
113113

114114
public static boolean addSchedule(ThingActions actions, ZonedDateTime from, ZonedDateTime until,
115115
String scheduleType, QuantityType<Power> power, @Nullable String weekdays) {
116-
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power,
116+
return addSchedule(actions, from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power,
117117
weekdays);
118118
}
119119

@@ -262,11 +262,11 @@ public boolean addSchedule(LocalTime from, LocalTime until, ScheduleType schedul
262262

263263
public boolean addSchedule(LocalTime from, LocalTime until, String scheduleType, QuantityType<Power> power,
264264
@Nullable String weekdays) {
265-
return addSchedule(from, until, ScheduleType.valueOf(scheduleType), power, weekdays);
265+
return addSchedule(from, until, ScheduleType.parse(scheduleType), power, weekdays);
266266
}
267267

268268
public boolean addSchedule(LocalTime from, LocalTime until, String scheduleType, QuantityType<Power> power) {
269-
return addSchedule(from, until, ScheduleType.valueOf(scheduleType), power);
269+
return addSchedule(from, until, ScheduleType.parse(scheduleType), power);
270270
}
271271

272272
public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, ScheduleType scheduleType,
@@ -281,13 +281,12 @@ public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, ScheduleType
281281

282282
public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, String scheduleType,
283283
QuantityType<Power> power) {
284-
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power);
284+
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power);
285285
}
286286

287287
public boolean addSchedule(ZonedDateTime from, ZonedDateTime until, String scheduleType, QuantityType<Power> power,
288288
@Nullable String weekdays) {
289-
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.valueOf(scheduleType), power,
290-
weekdays);
289+
return addSchedule(from.toLocalTime(), until.toLocalTime(), ScheduleType.parse(scheduleType), power, weekdays);
291290
}
292291

293292
public boolean holdBatteryCharge() {

bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/dto/inverter/batterycontrol/ScheduleType.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
*/
1313
package org.openhab.binding.fronius.internal.api.dto.inverter.batterycontrol;
1414

15+
import java.util.Arrays;
16+
import java.util.Locale;
17+
1518
/**
1619
* Enum for the schedule type of the battery control.
1720
*
@@ -21,5 +24,21 @@ public enum ScheduleType {
2124
CHARGE_MIN,
2225
CHARGE_MAX,
2326
DISCHARGE_MIN,
24-
DISCHARGE_MAX
27+
DISCHARGE_MAX;
28+
29+
/**
30+
* Like {@link #valueOf(String)}, but case-insensitive and with an error message listing the valid values.
31+
*
32+
* @param value the name of the schedule type
33+
* @return the schedule type
34+
* @throws IllegalArgumentException when the value is not a valid schedule type
35+
*/
36+
public static ScheduleType parse(String value) {
37+
try {
38+
return valueOf(value.strip().toUpperCase(Locale.ROOT));
39+
} catch (IllegalArgumentException e) {
40+
throw new IllegalArgumentException(
41+
"Invalid schedule type '" + value + "', valid values are: " + Arrays.toString(values()));
42+
}
43+
}
2544
}

bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBatteryHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ public void dispose() {
151151

152152
private void initializeBatteryControl(FroniusBridgeHandler bridgeHandler, String scheme, String hostname,
153153
@Nullable String username, @Nullable String password) {
154+
// do not keep a previous instance with outdated credentials when re-initializing after a config change
155+
batteryControl = null;
154156
if (username == null || password == null) {
155157
logger.info(
156158
"Credentials are not configured in the bridge. Battery control is not available for Thing '{}'.",

bundles/org.openhab.binding.fronius/src/main/resources/OH-INF/i18n/fronius.properties

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,6 @@ thing-type.fronius.battery.channel.calibration.label = Calibration
323323
thing-type.fronius.battery.channel.socMax.label = SoC Maximum
324324
thing-type.fronius.battery.channel.socMin.label = SoC Minimum
325325

326-
# thing types config
327-
328-
thing-type.config.fronius.powerinverter.batterySettingsRefreshInterval.label = Battery Settings Refresh Interval
329-
thing-type.config.fronius.powerinverter.batterySettingsRefreshInterval.description = Specifies the interval in minutes at which the battery settings channels are read from the inverter's config API. Reading them requires a login, therefore the interval should be kept high.
330-
331326
# actions
332327

333328
actions.from.label = Begin Timestamp

bundles/org.openhab.binding.fronius/src/main/resources/OH-INF/thing/thing-types.xml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,17 +1176,6 @@
11761176
<state pattern="%.2f %unit%" readOnly="true"></state>
11771177
</channel-type>
11781178

1179-
1180-
1181-
1182-
1183-
1184-
1185-
1186-
1187-
1188-
1189-
11901179
<channel-type id="min-charge-power">
11911180
<item-type>Number:Power</item-type>
11921181
<label>Minimum Charge Power</label>

0 commit comments

Comments
 (0)