Skip to content

Commit 57025ce

Browse files
authored
[netatmo] Correction of Last-Event group (openhab#16684)
* Correction of Last-Event group Signed-off-by: root <[email protected]> Signed-off-by: Gaël L'hopital <[email protected]>
1 parent 5f7282b commit 57025ce

File tree

1 file changed

+30
-38
lines changed
  • bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/channelhelper

1 file changed

+30
-38
lines changed

bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/channelhelper/EventChannelHelper.java

+30-38
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
*/
3838
@NonNullByDefault
3939
public class EventChannelHelper extends ChannelHelper {
40-
private boolean isLocal;
41-
private @Nullable String vpnUrl, localUrl;
40+
private @Nullable String vpnUrl;
41+
private @Nullable String localUrl;
4242
protected ModuleType moduleType = ModuleType.UNKNOWN;
4343

4444
public EventChannelHelper(Set<String> providedGroups) {
@@ -49,61 +49,53 @@ public void setModuleType(ModuleType moduleType) {
4949
this.moduleType = moduleType;
5050
}
5151

52-
public void setUrls(String vpnUrl, @Nullable String localUrl) {
52+
public void setUrls(@Nullable String vpnUrl, @Nullable String localUrl) {
5353
this.localUrl = localUrl;
5454
this.vpnUrl = vpnUrl;
55-
this.isLocal = localUrl != null;
5655
}
5756

5857
@Override
5958
public void setNewData(@Nullable NAObject data) {
60-
if (data instanceof Event event) {
61-
if (!event.getEventType().validFor(moduleType)) {
62-
return;
63-
}
59+
if (data instanceof Event event && !event.getEventType().validFor(moduleType)) {
60+
return;
6461
}
6562
super.setNewData(data);
6663
}
6764

6865
@Override
6966
protected @Nullable State internalGetEvent(String channelId, Event event) {
70-
switch (channelId) {
71-
case CHANNEL_EVENT_TYPE:
72-
return toStringType(event.getEventType());
73-
case CHANNEL_EVENT_MESSAGE:
74-
return toStringType(event.getName());
75-
case CHANNEL_EVENT_TIME:
76-
return new DateTimeType(event.getTime());
77-
case CHANNEL_EVENT_PERSON_ID:
78-
return toStringType(event.getPersonId());
79-
case CHANNEL_EVENT_CAMERA_ID:
80-
return toStringType(event.getCameraId());
81-
case CHANNEL_EVENT_SUBTYPE:
82-
return event.getSubTypeDescription().map(ChannelTypeUtils::toStringType).orElse(UnDefType.NULL);
83-
case CHANNEL_EVENT_SNAPSHOT:
84-
return toRawType(event.getSnapshotUrl());
85-
case CHANNEL_EVENT_SNAPSHOT_URL:
86-
return toStringType(event.getSnapshotUrl());
87-
}
88-
return null;
67+
return switch (channelId) {
68+
case CHANNEL_EVENT_TYPE -> toStringType(event.getEventType());
69+
case CHANNEL_EVENT_MESSAGE -> toStringType(event.getName());
70+
case CHANNEL_EVENT_TIME -> new DateTimeType(event.getTime());
71+
case CHANNEL_EVENT_PERSON_ID -> toStringType(event.getPersonId());
72+
case CHANNEL_EVENT_CAMERA_ID -> toStringType(event.getCameraId());
73+
case CHANNEL_EVENT_SUBTYPE ->
74+
event.getSubTypeDescription().map(ChannelTypeUtils::toStringType).orElse(UnDefType.NULL);
75+
case CHANNEL_EVENT_SNAPSHOT -> toRawType(event.getSnapshotUrl());
76+
case CHANNEL_EVENT_SNAPSHOT_URL -> toStringType(event.getSnapshotUrl());
77+
default -> null;
78+
};
8979
}
9080

9181
@Override
9282
protected @Nullable State internalGetHomeEvent(String channelId, @Nullable String groupId, HomeEvent event) {
93-
switch (channelId) {
94-
case CHANNEL_EVENT_VIDEO_STATUS:
95-
return event.getVideoId() != null ? toStringType(event.getVideoStatus()) : UnDefType.NULL;
96-
case CHANNEL_EVENT_VIDEO_LOCAL_URL:
97-
return getStreamURL(true, event.getVideoId(), event.getVideoStatus());
98-
case CHANNEL_EVENT_VIDEO_VPN_URL:
99-
return getStreamURL(false, event.getVideoId(), event.getVideoStatus());
100-
}
101-
return null;
83+
return switch (channelId) {
84+
case CHANNEL_EVENT_VIDEO_STATUS ->
85+
event.getVideoId() != null ? toStringType(event.getVideoStatus()) : UnDefType.NULL;
86+
case CHANNEL_EVENT_VIDEO_LOCAL_URL -> getStreamURL(true, event.getVideoId(), event.getVideoStatus());
87+
case CHANNEL_EVENT_VIDEO_VPN_URL -> getStreamURL(false, event.getVideoId(), event.getVideoStatus());
88+
default -> null;
89+
};
90+
}
91+
92+
private @Nullable String getUrl(boolean local) {
93+
return local ? localUrl : vpnUrl;
10294
}
10395

10496
private State getStreamURL(boolean local, @Nullable String videoId, VideoStatus videoStatus) {
105-
String url = local ? localUrl : vpnUrl;
106-
if ((local && !isLocal) || url == null || videoId == null || videoStatus != VideoStatus.AVAILABLE) {
97+
String url = getUrl(local);
98+
if (url == null || videoId == null || videoStatus != VideoStatus.AVAILABLE) {
10799
return UnDefType.NULL;
108100
}
109101
return toStringType("%s/vod/%s/index.m3u8", url, videoId);

0 commit comments

Comments
 (0)