From 4e56b9b734e4f994a34167ca88e9694ba6f5ce83 Mon Sep 17 00:00:00 2001 From: lolodomo Date: Sat, 7 May 2022 21:21:35 +0200 Subject: [PATCH] [netatmo] Give access to video only when video is available (#12698) Signed-off-by: Laurent Garnier --- .../handler/channelhelper/EventChannelHelper.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/channelhelper/EventChannelHelper.java b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/channelhelper/EventChannelHelper.java index 2ac950ba1..3d880661a 100644 --- a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/channelhelper/EventChannelHelper.java +++ b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/channelhelper/EventChannelHelper.java @@ -20,6 +20,7 @@ import java.time.ZonedDateTime; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.netatmo.internal.api.data.ModuleType; +import org.openhab.binding.netatmo.internal.api.data.NetatmoConstants.VideoStatus; import org.openhab.binding.netatmo.internal.api.dto.Event; import org.openhab.binding.netatmo.internal.api.dto.HomeEvent; import org.openhab.binding.netatmo.internal.api.dto.NAObject; @@ -98,17 +99,17 @@ public class EventChannelHelper extends ChannelHelper { case CHANNEL_EVENT_VIDEO_STATUS: return homeEvent.getVideoId() != null ? toStringType(homeEvent.getVideoStatus()) : UnDefType.NULL; case CHANNEL_EVENT_VIDEO_LOCAL_URL: - return getStreamURL(true, homeEvent.getVideoId()); + return getStreamURL(true, homeEvent.getVideoId(), homeEvent.getVideoStatus()); case CHANNEL_EVENT_VIDEO_VPN_URL: - return getStreamURL(false, homeEvent.getVideoId()); + return getStreamURL(false, homeEvent.getVideoId(), homeEvent.getVideoStatus()); } } return null; } - private State getStreamURL(boolean local, @Nullable String videoId) { + private State getStreamURL(boolean local, @Nullable String videoId, VideoStatus videoStatus) { String url = local ? localUrl : vpnUrl; - if ((local && !isLocal) || url == null || videoId == null) { + if ((local && !isLocal) || url == null || videoId == null || videoStatus != VideoStatus.AVAILABLE) { return UnDefType.NULL; } return toStringType("%s/vod/%s/index.m3u8", url, videoId);