[fronius] Improve logging in FroniusSymoInverterHandler (#19994)

* [fronius] Improve logging in FroniusSymoInverterHandler

Signed-off-by: Florian Hotze <dev@florianhotze.com>
This commit is contained in:
Florian Hotze
2026-01-26 19:07:28 +01:00
committed by GitHub
parent f5b2a2df61
commit 4a8df7ac6c
@@ -99,6 +99,9 @@ public class FroniusSymoInverterHandler extends FroniusBaseThingHandler {
private void initializeBatteryControl(String scheme, String hostname, @Nullable String username,
@Nullable String password) {
if (username == null || password == null) {
logger.info(
"Credentials are not configured in the bridge. Battery control is not available for Thing '{}'.",
thing.getUID());
return;
}
@@ -114,7 +117,8 @@ public class FroniusSymoInverterHandler extends FroniusBaseThingHandler {
}
}
logger.warn(
"The firmware version of the Fronius inverter could not be determined. Battery control is not available.");
"The firmware version of the Fronius inverter could not be determined. Battery control is not available for Thing '{}'.",
thing.getUID());
}
private void updateProperties() {
@@ -134,15 +138,17 @@ public class FroniusSymoInverterHandler extends FroniusBaseThingHandler {
@Override
public void initialize() {
config = getConfigAs(FroniusBaseDeviceConfiguration.class);
FroniusBaseDeviceConfiguration config = this.config = getConfigAs(FroniusBaseDeviceConfiguration.class);
Bridge bridge = getBridge();
if (bridge != null) {
FroniusBridgeConfiguration bridgeConfig = bridge.getConfiguration().as(FroniusBridgeConfiguration.class);
inverterInfo = getInverterInfo(bridgeConfig.scheme, bridgeConfig.hostname, config.deviceId);
updateProperties();
initializeBatteryControl(bridgeConfig.scheme, bridgeConfig.hostname, bridgeConfig.username,
bridgeConfig.password);
if (bridge == null) {
logger.warn("bridge is null in initialize(), this is a bug, please report it.");
return;
}
FroniusBridgeConfiguration bridgeConfig = bridge.getConfiguration().as(FroniusBridgeConfiguration.class);
inverterInfo = getInverterInfo(bridgeConfig.scheme, bridgeConfig.hostname, config.deviceId);
updateProperties();
initializeBatteryControl(bridgeConfig.scheme, bridgeConfig.hostname, bridgeConfig.username,
bridgeConfig.password);
super.initialize();
}
@@ -156,18 +162,22 @@ public class FroniusSymoInverterHandler extends FroniusBaseThingHandler {
super.handleBridgeConfigurationUpdate(configurationParameters);
Bridge bridge = getBridge();
FroniusBaseDeviceConfiguration config = this.config;
if (bridge != null && config != null) {
FroniusBridgeConfiguration bridgeConfig = bridge.getConfiguration().as(FroniusBridgeConfiguration.class);
inverterInfo = getInverterInfo(bridgeConfig.scheme, bridgeConfig.hostname, config.deviceId);
updateProperties();
initializeBatteryControl(bridgeConfig.scheme, bridgeConfig.hostname, bridgeConfig.username,
bridgeConfig.password);
if (bridge == null || config == null) {
logger.warn(
"bridge or config is null in handleBridgeConfigurationUpdate(), this is a bug, please report it.");
return;
}
FroniusBridgeConfiguration bridgeConfig = bridge.getConfiguration().as(FroniusBridgeConfiguration.class);
inverterInfo = getInverterInfo(bridgeConfig.scheme, bridgeConfig.hostname, config.deviceId);
updateProperties();
initializeBatteryControl(bridgeConfig.scheme, bridgeConfig.hostname, bridgeConfig.username,
bridgeConfig.password);
}
public @Nullable FroniusBatteryControl getBatteryControl() {
if (batteryControl == null) {
logger.warn("Battery control is not available. Check the bridge configuration.");
logger.warn("Battery control is not available for Thing '{}'. Check the bridge configuration.",
thing.getUID());
}
return batteryControl;
}
@@ -342,7 +352,7 @@ public class FroniusSymoInverterHandler extends FroniusBaseThingHandler {
* @param unit The default unit to use when value is null
* @return a QuantityType from the given value
*/
private QuantityType<?> getQuantityOrZero(@Nullable ValueUnit value, Unit unit) {
private QuantityType<?> getQuantityOrZero(@Nullable ValueUnit value, Unit<?> unit) {
QuantityType<?> val = null;
if (value != null) {
val = value.asQuantityType().toUnit(unit);