]> git.basschouten.com Git - openhab-addons.git/commitdiff
[netatmo] Give access to video only when video is available (#12698)
authorlolodomo <lg.hc@free.fr>
Sat, 7 May 2022 19:21:35 +0000 (21:21 +0200)
committerGitHub <noreply@github.com>
Sat, 7 May 2022 19:21:35 +0000 (21:21 +0200)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/channelhelper/EventChannelHelper.java

index 2ac950ba19153afbedf39392d33f9f37fbf8b77d..3d880661a7bc3740554fc179553b8e8c3ec67b4c 100644 (file)
@@ -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);