]> git.basschouten.com Git - openhab-addons.git/commitdiff
Some warnings were still present at startup regarding Room initialization. (#14784)
authorGaël L'hopital <gael@lhopital.org>
Fri, 14 Apr 2023 10:48:03 +0000 (12:48 +0200)
committerGitHub <noreply@github.com>
Fri, 14 Apr 2023 10:48:03 +0000 (12:48 +0200)
Switched to late initialization.

Signed-off-by: clinique <gael@lhopital.org>
bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RoomCapability.java

index bd79561ee14c85e6ef760ef7f220140283260eb2..99c140dd649d5724636ae680c4b54a8b00451871 100644 (file)
@@ -45,9 +45,11 @@ public class RoomCapability extends Capability {
         super(handler);
     }
 
-    @Override
-    public void initialize() {
-        energyCapability = handler.getHomeCapability(EnergyCapability.class);
+    protected Optional<EnergyCapability> 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);
             }