]> git.basschouten.com Git - openhab-addons.git/commitdiff
[freeboxos] Fix triggering of event firmware_updated (#17161)
authorlolodomo <lg.hc@free.fr>
Mon, 29 Jul 2024 17:51:36 +0000 (19:51 +0200)
committerGitHub <noreply@github.com>
Mon, 29 Jul 2024 17:51:36 +0000 (19:51 +0200)
Also update the firmware property when the player is reachable for the first time.
Do not trigger the event firmware_updated when just first setting the firmware property.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.binding.freeboxos/src/main/java/org/openhab/binding/freeboxos/internal/handler/FreeDeviceIntf.java

index 8c833e5dd54acf00e7e388e4fa8e08b9640c61c6..9d3e5ccf0ed0c89e44ee490998097fe323583ddc 100644 (file)
@@ -36,11 +36,16 @@ public interface FreeDeviceIntf extends ApiConsumerIntf {
     default long checkUptimeAndFirmware(long newUptime, long oldUptime, String firmwareVersion) {
         if (newUptime < oldUptime) {
             triggerChannel(getEventChannelUID(), "restarted");
+        }
+        if (oldUptime < 0 || newUptime < oldUptime) {
             Map<String, String> properties = editProperties();
-            if (!firmwareVersion.equals(properties.get(Thing.PROPERTY_FIRMWARE_VERSION))) {
+            String property = properties.get(Thing.PROPERTY_FIRMWARE_VERSION);
+            if (!firmwareVersion.equals(property)) {
                 properties.put(Thing.PROPERTY_FIRMWARE_VERSION, firmwareVersion);
                 updateProperties(properties);
-                triggerChannel(getEventChannelUID(), "firmware_updated");
+                if (property != null) {
+                    triggerChannel(getEventChannelUID(), "firmware_updated");
+                }
             }
         }
         return newUptime;