From: Gaƫl L'hopital Date: Fri, 14 Apr 2023 10:48:03 +0000 (+0200) Subject: Some warnings were still present at startup regarding Room initialization. (#14784) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=a0f06ec0518cabbf4f158894d76d52ba770a3e39;p=openhab-addons.git Some warnings were still present at startup regarding Room initialization. (#14784) Switched to late initialization. Signed-off-by: clinique --- diff --git a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RoomCapability.java b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RoomCapability.java index bd79561ee1..99c140dd64 100644 --- a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RoomCapability.java +++ b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RoomCapability.java @@ -45,9 +45,11 @@ public class RoomCapability extends Capability { super(handler); } - @Override - public void initialize() { - energyCapability = handler.getHomeCapability(EnergyCapability.class); + protected Optional getEnergyCapability() { + if (energyCapability.isEmpty()) { + energyCapability = handler.getHomeCapability(EnergyCapability.class); + } + return energyCapability; } @Override @@ -58,7 +60,7 @@ public class RoomCapability extends Capability { if (targetMode == SetpointMode.MANUAL) { logger.info("Switch to 'Manual' mode is done by setting a setpoint temp, command ignored"); } else { - energyCapability.ifPresent(cap -> cap.setRoomThermMode(handler.getId(), targetMode)); + getEnergyCapability().ifPresent(cap -> cap.setRoomThermMode(handler.getId(), targetMode)); } } catch (IllegalArgumentException e) { logger.info("Command '{}' is not a valid setpoint mode for channel '{}'", command, channelName); @@ -66,7 +68,7 @@ public class RoomCapability extends Capability { } else if (CHANNEL_VALUE.equals(channelName)) { QuantityType quantity = commandToQuantity(command, MeasureClass.INSIDE_TEMPERATURE); if (quantity != null) { - energyCapability.ifPresent(cap -> cap.setRoomThermTemp(handler.getId(), quantity.doubleValue())); + getEnergyCapability().ifPresent(cap -> cap.setRoomThermTemp(handler.getId(), quantity.doubleValue())); } else { logger.warn("Incorrect command '{}' on channel '{}'", command, channelName); }