From a0f06ec0518cabbf4f158894d76d52ba770a3e39 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ga=C3=ABl=20L=27hopital?= Date: Fri, 14 Apr 2023 12:48:03 +0200 Subject: [PATCH] Some warnings were still present at startup regarding Room initialization. (#14784) Switched to late initialization. Signed-off-by: clinique --- .../internal/handler/capability/RoomCapability.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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); } -- 2.47.3