From: Simon Spielmann Date: Sun, 9 Jun 2024 18:58:58 +0000 (+0200) Subject: Use device.Id instead of device.DiscoveryId to fix playsound (#16846) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=866ea1bede4114387aa926df0705be2bc17a9a30;p=openhab-addons.git Use device.Id instead of device.DiscoveryId to fix playsound (#16846) Signed-off-by: Simon Spielmann --- diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java index 87b0960804..358a9ade30 100644 --- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java +++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java @@ -62,6 +62,8 @@ public class ICloudDeviceHandler extends BaseThingHandler implements ICloudDevic private @Nullable String deviceId; + private @Nullable ICloudDeviceInformation deviceInformationRecord; + public ICloudDeviceHandler(Thing thing) { super(thing); } @@ -70,6 +72,7 @@ public class ICloudDeviceHandler extends BaseThingHandler implements ICloudDevic public void deviceInformationUpdate(List deviceInformationList) { ICloudDeviceInformation deviceInformationRecord = getDeviceInformationRecord(deviceInformationList); if (deviceInformationRecord != null) { + this.deviceInformationRecord = deviceInformationRecord; if (deviceInformationRecord.getDeviceStatus() == 200) { updateStatus(ONLINE); } else { @@ -137,12 +140,18 @@ public class ICloudDeviceHandler extends BaseThingHandler implements ICloudDevic if (channelId.equals(FIND_MY_PHONE)) { if (command == OnOffType.ON) { try { - final String deviceId = this.deviceId; - if (deviceId == null) { - this.logger.debug("Can't send Find My Device request, because deviceId is null!"); + + if (deviceInformationRecord == null) { + this.logger + .debug("Can't send Find My Device request, because deviceInformationRecord is null!"); return; } - bridgeHandler.findMyDevice(deviceId); + if (deviceInformationRecord.getId() == null) { + this.logger.debug( + "Can't send Find My Device request, because deviceInformationRecord.getId() is null!"); + return; + } + bridgeHandler.findMyDevice(deviceInformationRecord.getId()); } catch (IOException | InterruptedException e) { this.logger.warn("Unable to execute find my device request", e); } @@ -183,7 +192,6 @@ public class ICloudDeviceHandler extends BaseThingHandler implements ICloudDevic private @Nullable ICloudDeviceInformation getDeviceInformationRecord( List deviceInformationList) { this.logger.debug("Device: [{}]", this.deviceId); - for (ICloudDeviceInformation deviceInformationRecord : deviceInformationList) { String currentId = deviceInformationRecord.getDeviceDiscoveryId(); if (currentId == null || currentId.isBlank()) {