From b9eccad14b7f70d6d8e9a965e408de0b2bb91d93 Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Sat, 23 Jun 2018 07:46:21 +0000 Subject: [PATCH] 49_SSCam: running stream as human readable entry for SSCamSTRM-Device git-svn-id: https://svn.fhem.de/fhem/trunk@16898 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/49_SSCam.pm | 17 ++++++++++++++--- fhem/FHEM/49_SSCamSTRM.pm | 9 ++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/fhem/FHEM/49_SSCam.pm b/fhem/FHEM/49_SSCam.pm index 2263240a7..9816bdb94 100644 --- a/fhem/FHEM/49_SSCam.pm +++ b/fhem/FHEM/49_SSCam.pm @@ -27,6 +27,7 @@ ######################################################################################################################### # Versions History: # +# 5.2.6 20.06.2018 running stream as human readable entry for SSCamSTRM-Device # 5.2.5 18.06.2018 trigger lastsnap_fw to SSCamSTRM-Device only if snap was done by it. # 5.2.4 17.06.2018 SSCam_composegallery added and write warning if old composegallery-weblink device is used # 5.2.3 16.06.2018 no SSCamSTRM refresh when snapgetinfo was running without taken a snap by SSCamSTRM-Device @@ -238,7 +239,7 @@ use Time::HiRes; use HttpUtils; # no if $] >= 5.017011, warnings => 'experimental'; -my $SSCamVersion = "5.2.5"; +my $SSCamVersion = "5.2.6"; # Aufbau Errorcode-Hashes (siehe Surveillance Station Web API) my %SSCam_errauthlist = ( @@ -908,49 +909,58 @@ sub SSCam_Set($@) { $hash->{HELPER}{OPENWINDOW} = 1; $hash->{HELPER}{WLTYPE} = "link"; $hash->{HELPER}{ALIAS} = "LiveView"; - $hash->{HELPER}{RUNVIEW} = "live_open"; + $hash->{HELPER}{RUNVIEW} = "live_open"; + $hash->{HELPER}{ACTSTRM} = ""; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "live_link") { $hash->{HELPER}{OPENWINDOW} = 0; $hash->{HELPER}{WLTYPE} = "link"; $hash->{HELPER}{ALIAS} = "LiveView"; $hash->{HELPER}{RUNVIEW} = "live_link"; + $hash->{HELPER}{ACTSTRM} = ""; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "lastrec_open") { if ($prop1) {$hash->{HELPER}{VIEWOPENROOM} = $prop1;} else {delete $hash->{HELPER}{VIEWOPENROOM};} $hash->{HELPER}{OPENWINDOW} = 1; $hash->{HELPER}{WLTYPE} = "link"; $hash->{HELPER}{ALIAS} = "LastRecording"; $hash->{HELPER}{RUNVIEW} = "lastrec_open"; + $hash->{HELPER}{ACTSTRM} = ""; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "lastrec_fw") { # Video in iFrame eingebettet $hash->{HELPER}{OPENWINDOW} = 0; $hash->{HELPER}{WLTYPE} = "iframe"; $hash->{HELPER}{ALIAS} = " "; $hash->{HELPER}{RUNVIEW} = "lastrec"; + $hash->{HELPER}{ACTSTRM} = "last Recording"; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "lastrec_fw_MJPEG") { # “video/avi” – MJPEG format event $hash->{HELPER}{OPENWINDOW} = 0; $hash->{HELPER}{WLTYPE} = "image"; $hash->{HELPER}{ALIAS} = " "; $hash->{HELPER}{RUNVIEW} = "lastrec"; + $hash->{HELPER}{ACTSTRM} = "last Recording"; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "lastrec_fw_MPEG4/H.264") { # “video/mp4” – MPEG4/H.264 format event $hash->{HELPER}{OPENWINDOW} = 0; $hash->{HELPER}{WLTYPE} = "video"; $hash->{HELPER}{ALIAS} = " "; $hash->{HELPER}{RUNVIEW} = "lastrec"; + $hash->{HELPER}{ACTSTRM} = "last Recording"; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "live_fw") { $hash->{HELPER}{OPENWINDOW} = 0; $hash->{HELPER}{WLTYPE} = "image"; $hash->{HELPER}{ALIAS} = " "; $hash->{HELPER}{RUNVIEW} = "live_fw"; + $hash->{HELPER}{ACTSTRM} = "MJPEG Livestream"; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "live_fw_hls") { $hash->{HELPER}{OPENWINDOW} = 0; $hash->{HELPER}{WLTYPE} = "hls"; $hash->{HELPER}{ALIAS} = "View only on compatible browsers"; $hash->{HELPER}{RUNVIEW} = "live_fw_hls"; + $hash->{HELPER}{ACTSTRM} = "HLS Livestream"; # sprechender Name des laufenden Streamtyps für SSCamSTRM } elsif ($prop eq "lastsnap_fw") { - $hash->{HELPER}{LSNAPBYSTRMDEV} = 1 if ($prop1); # $prop1 wird mitgegeben durch lastsnap_fw by SSCamSTRM-Device + $hash->{HELPER}{LSNAPBYSTRMDEV} = 1 if ($prop1); # $prop1 wird mitgegeben durch lastsnap_fw by SSCamSTRM-Device $hash->{HELPER}{OPENWINDOW} = 0; $hash->{HELPER}{WLTYPE} = "base64img"; $hash->{HELPER}{ALIAS} = " "; $hash->{HELPER}{RUNVIEW} = "lastsnap_fw"; + $hash->{HELPER}{ACTSTRM} = "last Snapshot"; # sprechender Name des laufenden Streamtyps für SSCamSTRM } else { return "$prop isn't a valid option of runview, use one of live_fw, live_link, live_open, lastrec_fw, lastrec_open, lastsnap_fw"; } @@ -2174,6 +2184,7 @@ sub SSCam_stopliveview ($) { # Link aus Helper-hash löschen delete $hash->{HELPER}{LINK}; delete $hash->{HELPER}{AUDIOLINK}; + delete $hash->{HELPER}{ACTSTRM}; # sprechender Name des laufenden Streamtyps für SSCamSTRM # Reading LiveStreamUrl löschen delete($defs{$name}{READINGS}{LiveStreamUrl}) if ($defs{$name}{READINGS}{LiveStreamUrl}); diff --git a/fhem/FHEM/49_SSCamSTRM.pm b/fhem/FHEM/49_SSCamSTRM.pm index e44a9dddd..18b4c0630 100644 --- a/fhem/FHEM/49_SSCamSTRM.pm +++ b/fhem/FHEM/49_SSCamSTRM.pm @@ -28,6 +28,7 @@ ######################################################################################################################### # Versions History: # +# 1.2.0 20.06.2018 running stream as human readable entry for SSCamSTRM-Device # 1.1.0 16.06.2018 attr hideDisplayName regarding to Forum #88667 # 1.0.1 14.06.2018 commandref revised # 1.0.0 14.06.2018 switch to longpoll refresh @@ -42,7 +43,7 @@ package main; use strict; use warnings; -my $SSCamSTRMVersion = "1.1.0"; +my $SSCamSTRMVersion = "1.2.0"; ################################################################ sub SSCamSTRM_Initialize($) { @@ -114,12 +115,14 @@ sub SSCamSTRM_FwFn($$$$) { return undef if(IsDisabled($d)); $link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/s); + my $show = $defs{$hash->{PARENT}}->{HELPER}{ACTSTRM}; + $show = $show?"($show)":""; my $alias = AttrVal($d, "alias", $d); # Linktext als Aliasname oder Devicename setzen - my $dlink = "$alias
"; + my $dlink = "$alias"; my $ret = ""; - $ret .= "$dlink " if(!AttrVal($d,"hideDisplayName",0)); + $ret .= "$dlink $show
" if(!AttrVal($d,"hideDisplayName",0)); $ret .= $link; return $ret;