diff --git a/fhem/CHANGED b/fhem/CHANGED index 27dfcada5..873688259 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: 49_SSCam: tooltip hints in camera devices, commandref revised - feature: 36_WMBUS: new attribute ignoreUnknownDataBlocks - feature: 49_SSCam: V8.0.0, new type "hls" of streaming devices, hls playback now available for all common browsers, diff --git a/fhem/FHEM/49_SSCam.pm b/fhem/FHEM/49_SSCam.pm index 6982b97d2..1a9cc9b59 100644 --- a/fhem/FHEM/49_SSCam.pm +++ b/fhem/FHEM/49_SSCam.pm @@ -45,6 +45,7 @@ use HttpUtils; # Versions History intern our %SSCam_vNotesIntern = ( + "8.1.0" => "19.12.2018 tooltipps in camera device for control buttons, commandref revised ", "8.0.0" => "13.12.2018 HLS with sscam_hls.js integrated for SSCamSTRM type hls, realize tooltipps in streaming devices, minor fixes", "7.7.1" => "12.12.2018 change autocreateCams: define new device only if ne device with Internal CAMNAME is defined, ". "fix getsnapinfo function get wrong snapid or none if cam is new defined ", @@ -102,6 +103,7 @@ our %SSCam_vNotesIntern = ( # Versions History extern our %SSCam_vNotesExtern = ( + "8.1.0" => "19.12.2018 Tooltipps added to camera device control buttons.", "8.0.0" => "18.12.2018 HLS is integrated using sscam_hls.js in Streaming device types \"hls\". HLS streaming is now available ". "for all common used browser types. Tooltipps are added to streaming devices and snapgallery.", "7.7.0" => "10.12.2018 autocreateCams command added to SVS device. By this command all cameras installed in SVS can be ". @@ -302,7 +304,7 @@ our %SSCam_ttips_de = ( ttrecstop => "Stoppt die laufende Aufnahme von Kamera "§NAME§".", ttsnap => "Ein Schnappschuß von Kamera "§NAME§" wird aufgenommen.", ttcmdstop => "Stopp Wiedergabe von Kamera "§NAME§"", - tthlsreact => "Reactiviert das HTTP Livestreaming Interface von camera "§NAME§".
Die Kamera wird aufgefordert die HLS Übertragung zu restarten.", + tthlsreact => "Reaktiviert das HTTP Livestreaming Interface von Kamera "§NAME§".
Die Kamera wird aufgefordert die HLS Übertragung zu restarten.", ttmjpegrun => "Wiedergabe des MJPEG Livestreams von Kamera "§NAME§"", tthlsrun => "Wiedergabe des HTTP Livestreams von Kamera "§NAME§".
Es wird die HLS Funktion der Synology Surveillance Station verwendet.", ttlrrun => "Wiedergabe der letzten Aufnahme von Kamera "§NAME§" in einem iFrame.
Es werden sowohl MJPEG als auch H.264 Aufnahmen wiedergegeben.", @@ -1430,7 +1432,7 @@ sub SSCam_FWsummaryFn ($$$$) { my $name = $hash->{NAME}; my $link = $hash->{HELPER}{LINK}; my $wltype = $hash->{HELPER}{WLTYPE}; - my $ret; + my $ret = ""; my $alias; return if(!$hash->{HELPER}{LINK} || ReadingsVal($d, "state", "") =~ /^dis.*/ || IsDisabled($name)); @@ -1459,24 +1461,43 @@ sub SSCam_FWsummaryFn ($$$$) { my $imgrecstop = ""; my $cmddosnap = "cmd=set $d snap STRM"; # Snapshot auslösen mit Kennzeichnung "by STRM-Device" my $imgdosnap = ""; - - + my $attr = AttrVal($d, "htmlattr", " "); Log3($name, 4, "$name - SSCam_FWsummaryFn called - FW_wname: $FW_wname, device: $d, room: $room, attributes: $attr"); + # Javascript Bibliothek für Tooltips (http://www.walterzorn.de/tooltip/tooltip.htm#download) und Texte + my $calias = $hash->{CAMNAME}; # Alias der Kamera + my $ttjs = "/fhem/pgm2/sscam_tooltip.js"; + my ($ttrefresh, $ttrecstart, $ttrecstop, $ttsnap, $ttcmdstop, $tthlsreact, $ttmjpegrun, $tthlsrun, $ttlrrun, $tth264run, $ttlmjpegrun, $ttlsnaprun); + if(AttrVal("global","language","EN") =~ /EN/) { + $ttrecstart = $SSCam_ttips_en{"ttrecstart"}; $ttrecstart =~ s/§NAME§/$calias/g; + $ttrecstop = $SSCam_ttips_en{"ttrecstop"}; $ttrecstop =~ s/§NAME§/$calias/g; + $ttsnap = $SSCam_ttips_en{"ttsnap"}; $ttsnap =~ s/§NAME§/$calias/g; + $ttcmdstop = $SSCam_ttips_en{"ttcmdstop"}; $ttcmdstop =~ s/§NAME§/$calias/g; + $tthlsreact = $SSCam_ttips_en{"tthlsreact"}; $tthlsreact =~ s/§NAME§/$calias/g; + } else { + $ttrecstart = $SSCam_ttips_de{"ttrecstart"}; $ttrecstart =~ s/§NAME§/$calias/g; + $ttrecstop = $SSCam_ttips_de{"ttrecstop"}; $ttrecstop =~ s/§NAME§/$calias/g; + $ttsnap = $SSCam_ttips_de{"ttsnap"}; $ttsnap =~ s/§NAME§/$calias/g; + $ttcmdstop = $SSCam_ttips_de{"ttcmdstop"}; $ttcmdstop =~ s/§NAME§/$calias/g; + $tthlsreact = $SSCam_ttips_de{"tthlsreact"}; $tthlsreact =~ s/§NAME§/$calias/g; + } + + $ret .= ""; + if($wltype eq "image") { - $ret = "
"; - $ret .= "$imgstop "; + $ret .= "
"; + $ret .= "$imgstop "; $ret .= $imgblank; if($hash->{HELPER}{RUNVIEW} =~ /live_fw/) { if(ReadingsVal($d, "Record", "Stop") eq "Stop") { # Aufnahmebutton endlos Start - $ret .= "$imgrecendless "; + $ret .= "$imgrecendless "; } else { # Aufnahmebutton Stop - $ret .= "$imgrecstop "; + $ret .= "$imgrecstop "; } - $ret .= "$imgdosnap "; + $ret .= "$imgdosnap "; } $ret .= "
"; if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($d, "CamAudioType", "Unknown") !~ /Unknown/) { @@ -1486,11 +1507,11 @@ sub SSCam_FWsummaryFn ($$$$) { } } elsif($wltype eq "iframe") { - $ret = ""; $ret .= "
"; - $ret .= "$imgstop "; + $ret .= "$imgstop "; if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($d, "CamAudioType", "Unknown") !~ /Unknown/) { $ret .= "