mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-01 20:20:10 +00:00
49_SSCam.pm: contrib 8.19.0
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@20218 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
cc2618f007
commit
0f6452f418
@ -1,5 +1,5 @@
|
|||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
# $Id: 49_SSCam.pm 20165 2019-09-15 21:04:28Z DS_Starter $
|
# $Id: 49_SSCam.pm 20198 2019-09-19 17:14:20Z DS_Starter $
|
||||||
#########################################################################################################################
|
#########################################################################################################################
|
||||||
# 49_SSCam.pm
|
# 49_SSCam.pm
|
||||||
#
|
#
|
||||||
@ -48,6 +48,8 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1;
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
our %SSCam_vNotesIntern = (
|
our %SSCam_vNotesIntern = (
|
||||||
|
"8.19.0" => "21.09.2019 support attr \"hideAudio\" SSCamSTRM-device ",
|
||||||
|
"8.18.2" => "19.09.2019 sample streams changed in comref, support of attr noLink in Streaming-Device ",
|
||||||
"8.18.1" => "18.09.2019 fix warnings, Forum: https://forum.fhem.de/index.php/topic,45671.msg975610.html#msg975610 ",
|
"8.18.1" => "18.09.2019 fix warnings, Forum: https://forum.fhem.de/index.php/topic,45671.msg975610.html#msg975610 ",
|
||||||
"8.18.0" => "13.09.2019 change usage of own hashes to central %data hash, release unnecessary allocated memory ",
|
"8.18.0" => "13.09.2019 change usage of own hashes to central %data hash, release unnecessary allocated memory ",
|
||||||
"8.17.0" => "12.09.2019 fix warnings, support hide buttons in streaming device, change handle delete SNAPHASHOLD ",
|
"8.17.0" => "12.09.2019 fix warnings, support hide buttons in streaming device, change handle delete SNAPHASHOLD ",
|
||||||
@ -164,6 +166,7 @@ our %SSCam_vNotesIntern = (
|
|||||||
|
|
||||||
# Versions History extern
|
# Versions History extern
|
||||||
our %SSCam_vNotesExtern = (
|
our %SSCam_vNotesExtern = (
|
||||||
|
"8.18.2" => "19.09.2019 SSCam supports the new attribute \"noLink\" in streaming devices ",
|
||||||
"8.15.0" => "09.07.2019 support of integrating Streaming-Devices in a SSCam FTUI widget ",
|
"8.15.0" => "09.07.2019 support of integrating Streaming-Devices in a SSCam FTUI widget ",
|
||||||
"8.14.0" => "01.06.2019 In detailview are buttons provided to open the camera native setup screen or Synology Surveillance Station and the Synology Surveillance Station online help. ",
|
"8.14.0" => "01.06.2019 In detailview are buttons provided to open the camera native setup screen or Synology Surveillance Station and the Synology Surveillance Station online help. ",
|
||||||
"8.12.0" => "25.03.2019 Delay FHEM shutdown as long as sessions are not terminated, but not longer than global attribute \"maxShutdownDelay\". ",
|
"8.12.0" => "25.03.2019 Delay FHEM shutdown as long as sessions are not terminated, but not longer than global attribute \"maxShutdownDelay\". ",
|
||||||
@ -545,8 +548,10 @@ return undef;
|
|||||||
################################################################
|
################################################################
|
||||||
sub SSCam_Undef($$) {
|
sub SSCam_Undef($$) {
|
||||||
my ($hash, $arg) = @_;
|
my ($hash, $arg) = @_;
|
||||||
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash);
|
||||||
|
delete $data{SSCam}{$name};
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
@ -7238,7 +7243,8 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
$ha = AttrVal($strmdev, "htmlattrFTUI", $ha); # wenn aus FTUI aufgerufen divers setzen
|
$ha = AttrVal($strmdev, "htmlattrFTUI", $ha); # wenn aus FTUI aufgerufen divers setzen
|
||||||
}
|
}
|
||||||
|
|
||||||
my $hf = AttrVal($strmdev, "hideButtons", 0); # Drucktasten im unteren Bereich ausblenden ?
|
my $hb = AttrVal($strmdev, "hideButtons", 0); # Drucktasten im Footer ausblenden ?
|
||||||
|
my $hau = AttrVal($strmdev, "hideAudio", 0); # Audio Steuerblock im Footer ausblenden ?
|
||||||
|
|
||||||
my $pws = AttrVal($strmdev, "popupWindowSize", ""); # Größe eines Popups
|
my $pws = AttrVal($strmdev, "popupWindowSize", ""); # Größe eines Popups
|
||||||
$pws =~ s/"//g if($pws);
|
$pws =~ s/"//g if($pws);
|
||||||
@ -7248,6 +7254,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
|
|
||||||
my $alias = AttrVal($strmdev, "alias", $strmdev); # Linktext als Aliasname oder Devicename setzen
|
my $alias = AttrVal($strmdev, "alias", $strmdev); # Linktext als Aliasname oder Devicename setzen
|
||||||
my $dlink = "<a href=\"/fhem?detail=$strmdev\">$alias</a>";
|
my $dlink = "<a href=\"/fhem?detail=$strmdev\">$alias</a>";
|
||||||
|
$dlink = $alias if(AttrVal($strmdev, "noLink", 0)); # keine Links im Stream-Dev generieren
|
||||||
|
|
||||||
my $StmKey = ReadingsVal($camname,"StmKey",undef);
|
my $StmKey = ReadingsVal($camname,"StmKey",undef);
|
||||||
|
|
||||||
@ -7327,7 +7334,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
$streamHash->{HELPER}{STREAM} = "<img src=$link $pws>"; # Stream für "get <SSCamSTRM-Device> popupStream" speichern
|
$streamHash->{HELPER}{STREAM} = "<img src=$link $pws>"; # Stream für "get <SSCamSTRM-Device> popupStream" speichern
|
||||||
$streamHash->{HELPER}{STREAMACTIVE} = 1 if($link); # Statusbit wenn ein Stream aktiviert ist
|
$streamHash->{HELPER}{STREAMACTIVE} = 1 if($link); # Statusbit wenn ein Stream aktiviert ist
|
||||||
}
|
}
|
||||||
if(!$hf) {
|
if(!$hb) {
|
||||||
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
||||||
# Aufnahmebutton endlos Start
|
# Aufnahmebutton endlos Start
|
||||||
$ret .= "<a onClick=\"$cmdrecendless\" onmouseover=\"Tip('$ttrecstart')\" onmouseout=\"UnTip()\">$imgrecendless </a>";
|
$ret .= "<a onClick=\"$cmdrecendless\" onmouseover=\"Tip('$ttrecstart')\" onmouseout=\"UnTip()\">$imgrecendless </a>";
|
||||||
@ -7344,7 +7351,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
$ret .= "<td>$ptz_ret</td>";
|
$ret .= "<td>$ptz_ret</td>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($audiolink && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/) {
|
if($audiolink && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/ && !$hau) {
|
||||||
$ret .= '</tr>';
|
$ret .= '</tr>';
|
||||||
$ret .= '<tr class="odd">';
|
$ret .= '<tr class="odd">';
|
||||||
$ret .= "<td><audio src=$audiolink preload='none' volume='0.5' controls>
|
$ret .= "<td><audio src=$audiolink preload='none' volume='0.5' controls>
|
||||||
@ -7363,7 +7370,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
} else {
|
} else {
|
||||||
$ret .= "<td><img src='data:image/jpeg;base64,$link' $gattr><br>";
|
$ret .= "<td><img src='data:image/jpeg;base64,$link' $gattr><br>";
|
||||||
}
|
}
|
||||||
if(!$hf) {
|
if(!$hb) {
|
||||||
$ret .= "<a onClick=\"$cmddosnap\" onmouseover=\"Tip('$ttsnap')\" onmouseout=\"UnTip()\">$imgdosnap </a>";
|
$ret .= "<a onClick=\"$cmddosnap\" onmouseover=\"Tip('$ttsnap')\" onmouseout=\"UnTip()\">$imgdosnap </a>";
|
||||||
}
|
}
|
||||||
$ret .= "</td>";
|
$ret .= "</td>";
|
||||||
@ -7407,7 +7414,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
}
|
}
|
||||||
$ret .= "<br>";
|
$ret .= "<br>";
|
||||||
Log3($strmdev, 4, "$strmdev - generic Stream params:\n$htag");
|
Log3($strmdev, 4, "$strmdev - generic Stream params:\n$htag");
|
||||||
if(!$hf) {
|
if(!$hb) {
|
||||||
$ret .= "<a onClick=\"$cmdrefresh\" onmouseover=\"Tip('$ttrefresh')\" onmouseout=\"UnTip()\">$imgrefresh </a>";
|
$ret .= "<a onClick=\"$cmdrefresh\" onmouseover=\"Tip('$ttrefresh')\" onmouseout=\"UnTip()\">$imgrefresh </a>";
|
||||||
$ret .= $imgblank;
|
$ret .= $imgblank;
|
||||||
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
||||||
@ -7454,7 +7461,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
|
|
||||||
$streamHash->{HELPER}{STREAM} = "<video $pws id=video_$d></video>"; # Stream für "set <SSCamSTRM-Device> popupStream" speichern
|
$streamHash->{HELPER}{STREAM} = "<video $pws id=video_$d></video>"; # Stream für "set <SSCamSTRM-Device> popupStream" speichern
|
||||||
$streamHash->{HELPER}{STREAMACTIVE} = 1; # Statusbit wenn ein Stream aktiviert ist
|
$streamHash->{HELPER}{STREAMACTIVE} = 1; # Statusbit wenn ein Stream aktiviert ist
|
||||||
if(!$hf) {
|
if(!$hb) {
|
||||||
$ret .= "<a onClick=\"$cmdrefresh\" onmouseover=\"Tip('$ttrefresh')\" onmouseout=\"UnTip()\">$imgrefresh </a>";
|
$ret .= "<a onClick=\"$cmdrefresh\" onmouseover=\"Tip('$ttrefresh')\" onmouseout=\"UnTip()\">$imgrefresh </a>";
|
||||||
$ret .= $imgblank;
|
$ret .= $imgblank;
|
||||||
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
||||||
@ -7510,7 +7517,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
$ret .= "<td>$ptz_ret</td>";
|
$ret .= "<td>$ptz_ret</td>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/) {
|
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/ && !$hau) {
|
||||||
$ret .= "</tr>";
|
$ret .= "</tr>";
|
||||||
$ret .= '<tr class="odd">';
|
$ret .= '<tr class="odd">';
|
||||||
$ret .= "<td><audio src=$hash->{HELPER}{AUDIOLINK} preload='none' volume='0.5' controls>
|
$ret .= "<td><audio src=$hash->{HELPER}{AUDIOLINK} preload='none' volume='0.5' controls>
|
||||||
@ -7537,7 +7544,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
$ret .= "<a onClick=\"$cmdstop\" onmouseover=\"Tip('$ttcmdstop')\" onmouseout=\"UnTip()\">$imgstop </a>";
|
$ret .= "<a onClick=\"$cmdstop\" onmouseover=\"Tip('$ttcmdstop')\" onmouseout=\"UnTip()\">$imgstop </a>";
|
||||||
$ret .= "<a onClick=\"$cmdrefresh\" onmouseover=\"Tip('$ttrefresh')\" onmouseout=\"UnTip()\">$imgrefresh </a>";
|
$ret .= "<a onClick=\"$cmdrefresh\" onmouseover=\"Tip('$ttrefresh')\" onmouseout=\"UnTip()\">$imgrefresh </a>";
|
||||||
$ret .= "</td>";
|
$ret .= "</td>";
|
||||||
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/) {
|
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/ && !$hau) {
|
||||||
$ret .= '</tr>';
|
$ret .= '</tr>';
|
||||||
$ret .= '<tr class="odd">';
|
$ret .= '<tr class="odd">';
|
||||||
$ret .= "<td><audio src=$hash->{HELPER}{AUDIOLINK} preload='none' volume='0.5' controls>
|
$ret .= "<td><audio src=$hash->{HELPER}{AUDIOLINK} preload='none' volume='0.5' controls>
|
||||||
@ -7563,7 +7570,7 @@ sub SSCam_StreamDev($$$;$) {
|
|||||||
$streamHash->{HELPER}{STREAMACTIVE} = 1 if($link); # Statusbit wenn ein Stream aktiviert ist
|
$streamHash->{HELPER}{STREAMACTIVE} = 1 if($link); # Statusbit wenn ein Stream aktiviert ist
|
||||||
$ret .= "<a onClick=\"$cmdstop\" onmouseover=\"Tip('$ttcmdstop')\" onmouseout=\"UnTip()\">$imgstop </a>";
|
$ret .= "<a onClick=\"$cmdstop\" onmouseover=\"Tip('$ttcmdstop')\" onmouseout=\"UnTip()\">$imgstop </a>";
|
||||||
$ret .= "</td>";
|
$ret .= "</td>";
|
||||||
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/) {
|
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/ && !$hau) {
|
||||||
$ret .= '</tr>';
|
$ret .= '</tr>';
|
||||||
$ret .= '<tr class="odd">';
|
$ret .= '<tr class="odd">';
|
||||||
$ret .= "<td><audio src=$hash->{HELPER}{AUDIOLINK} preload='none' volume='0.5' controls>
|
$ret .= "<td><audio src=$hash->{HELPER}{AUDIOLINK} preload='none' volume='0.5' controls>
|
||||||
@ -7721,7 +7728,7 @@ sub SSCam_composegallery ($;$$$) {
|
|||||||
? ReadingsTimestamp($name,"LastSnapTime"," ")
|
? ReadingsTimestamp($name,"LastSnapTime"," ")
|
||||||
: ReadingsTimestamp($name,"LastUpdateTime"," ")); # letzte Aktualisierung
|
: ReadingsTimestamp($name,"LastUpdateTime"," ")); # letzte Aktualisierung
|
||||||
$lupt =~ s/ / \/ /;
|
$lupt =~ s/ / \/ /;
|
||||||
my ($alias,$dlink,$hf) = ("","","");
|
my ($alias,$dlink,$hb) = ("","","");
|
||||||
|
|
||||||
# Kontext des SSCamSTRM-Devices speichern für SSCam_refresh
|
# Kontext des SSCamSTRM-Devices speichern für SSCam_refresh
|
||||||
$hash->{HELPER}{STRMDEV} = $strmdev; # Name des aufrufenden SSCamSTRM-Devices
|
$hash->{HELPER}{STRMDEV} = $strmdev; # Name des aufrufenden SSCamSTRM-Devices
|
||||||
@ -7733,8 +7740,12 @@ sub SSCam_composegallery ($;$$$) {
|
|||||||
$uuid = $streamHash->{FUUID}; # eindeutige UUID des Streamingdevices
|
$uuid = $streamHash->{FUUID}; # eindeutige UUID des Streamingdevices
|
||||||
delete $streamHash->{HELPER}{STREAM};
|
delete $streamHash->{HELPER}{STREAM};
|
||||||
$alias = AttrVal($strmdev, "alias", $strmdev); # Linktext als Aliasname oder Devicename setzen
|
$alias = AttrVal($strmdev, "alias", $strmdev); # Linktext als Aliasname oder Devicename setzen
|
||||||
|
if(AttrVal($strmdev, "noLink", 0)) {
|
||||||
|
$dlink = $alias; # keine Links im Stream-Dev generieren
|
||||||
|
} else {
|
||||||
$dlink = "<a href=\"/fhem?detail=$strmdev\">$alias</a>";
|
$dlink = "<a href=\"/fhem?detail=$strmdev\">$alias</a>";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my $cmddosnap = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name snap 1 2 STRM:$uuid')"; # Snapshot auslösen mit Kennzeichnung "by STRM-Device"
|
my $cmddosnap = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name snap 1 2 STRM:$uuid')"; # Snapshot auslösen mit Kennzeichnung "by STRM-Device"
|
||||||
my $imgdosnap = "<img src=\"$FW_ME/www/images/sscam/black_btn_DOSNAP.png\">";
|
my $imgdosnap = "<img src=\"$FW_ME/www/images/sscam/black_btn_DOSNAP.png\">";
|
||||||
@ -7752,7 +7763,7 @@ sub SSCam_composegallery ($;$$$) {
|
|||||||
$pws = AttrVal($strmdev, "popupWindowSize", ""); # Größe eines Popups (umgelegt: Forum:https://forum.fhem.de/index.php/topic,45671.msg927912.html#msg927912)
|
$pws = AttrVal($strmdev, "popupWindowSize", ""); # Größe eines Popups (umgelegt: Forum:https://forum.fhem.de/index.php/topic,45671.msg927912.html#msg927912)
|
||||||
$pws =~ s/"//g if($pws);
|
$pws =~ s/"//g if($pws);
|
||||||
$ha = AttrVal($strmdev, "htmlattr", $ha); # htmlattr vom SSCamSTRM-Device übernehmen falls von SSCamSTRM-Device aufgerufen und gesetzt
|
$ha = AttrVal($strmdev, "htmlattr", $ha); # htmlattr vom SSCamSTRM-Device übernehmen falls von SSCamSTRM-Device aufgerufen und gesetzt
|
||||||
$hf = AttrVal($strmdev, "hideButtons", 0); # Drucktasten im unteren Bereich ausblenden ?
|
$hb = AttrVal($strmdev, "hideButtons", 0); # Drucktasten im unteren Bereich ausblenden ?
|
||||||
if($ftui) {
|
if($ftui) {
|
||||||
$ha = AttrVal($strmdev, "htmlattrFTUI", $ha); # wenn aus FTUI aufgerufen divers setzen
|
$ha = AttrVal($strmdev, "htmlattrFTUI", $ha); # wenn aus FTUI aufgerufen divers setzen
|
||||||
}
|
}
|
||||||
@ -7775,7 +7786,7 @@ sub SSCam_composegallery ($;$$$) {
|
|||||||
|
|
||||||
# Header Generierung
|
# Header Generierung
|
||||||
my $header;
|
my $header;
|
||||||
if($strmdev) {
|
if($strmdev) { # Forum: https://forum.fhem.de/index.php/topic,45671.msg975610.html#msg975610
|
||||||
if($ftui) {
|
if($ftui) {
|
||||||
$header .= "$dlink <br>" if(!AttrVal($strmdev,"hideDisplayNameFTUI",0));
|
$header .= "$dlink <br>" if(!AttrVal($strmdev,"hideDisplayNameFTUI",0));
|
||||||
} else {
|
} else {
|
||||||
@ -7834,7 +7845,7 @@ sub SSCam_composegallery ($;$$$) {
|
|||||||
$htmlCode .= "</tbody>";
|
$htmlCode .= "</tbody>";
|
||||||
$htmlCode .= "</table>";
|
$htmlCode .= "</table>";
|
||||||
$htmlCode .= "</div>";
|
$htmlCode .= "</div>";
|
||||||
if(!$hf) {
|
if(!$hb) {
|
||||||
$htmlCode .= "<a onClick=\"$cmddosnap\" onmouseover=\"Tip('$ttsnap')\" onmouseout=\"UnTip()\">$imgdosnap </a>" if($strmdev);
|
$htmlCode .= "<a onClick=\"$cmddosnap\" onmouseover=\"Tip('$ttsnap')\" onmouseout=\"UnTip()\">$imgdosnap </a>" if($strmdev);
|
||||||
}
|
}
|
||||||
$htmlCode .= "</html>";
|
$htmlCode .= "</html>";
|
||||||
@ -9171,12 +9182,12 @@ sub SSCam_setVersionInfo($) {
|
|||||||
if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) {
|
if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) {
|
||||||
# META-Daten sind vorhanden
|
# META-Daten sind vorhanden
|
||||||
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}}
|
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}}
|
||||||
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCam.pm 20165 2019-09-15 21:04:28Z DS_Starter $ im Kopf komplett! vorhanden )
|
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCam.pm 20198 2019-09-19 17:14:20Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||||
$modules{$type}{META}{x_version} =~ s/1.1.1/$v/g;
|
$modules{$type}{META}{x_version} =~ s/1.1.1/$v/g;
|
||||||
} else {
|
} else {
|
||||||
$modules{$type}{META}{x_version} = $v;
|
$modules{$type}{META}{x_version} = $v;
|
||||||
}
|
}
|
||||||
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCam.pm 20165 2019-09-15 21:04:28Z DS_Starter $ im Kopf komplett! vorhanden )
|
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCam.pm 20198 2019-09-19 17:14:20Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||||
if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) {
|
if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) {
|
||||||
# es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen
|
# es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen
|
||||||
# mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden
|
# mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden
|
||||||
@ -10613,10 +10624,13 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<b>Examples:</b><br>
|
<b>Examples:</b><br>
|
||||||
attr <name> hlsStrmObject https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8 <br>
|
attr <name> hlsStrmObject https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8 <br>
|
||||||
# a video stream used for testing the streaming device function (internet connection is needed) <br><br>
|
attr <name> hlsStrmObject https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8 <br>
|
||||||
|
# Sample video streams used for testing the streaming device function (internet connection is needed) <br><br>
|
||||||
|
|
||||||
attr <name> hlsStrmObject http://192.168.2.10:32000/CamHE1.m3u8 <br>
|
attr <name> hlsStrmObject http://192.168.2.10:32000/CamHE1.m3u8 <br>
|
||||||
# playback a HLS video stream of a camera witch is delivered by e.g. a ffmpeg conversion process <br><br>
|
# playback a HLS video stream of a camera witch is delivered by e.g. a ffmpeg conversion process <br><br>
|
||||||
|
|
||||||
attr <name> hlsStrmObject http://192.168.2.10:32000/$NAME.m3u8 <br>
|
attr <name> hlsStrmObject http://192.168.2.10:32000/$NAME.m3u8 <br>
|
||||||
# Same as example above, but use the replacement with variable $NAME for "CamHE1"
|
# Same as example above, but use the replacement with variable $NAME for "CamHE1"
|
||||||
</ul>
|
</ul>
|
||||||
@ -12429,10 +12443,13 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<b>Beispiele:</b><br>
|
<b>Beispiele:</b><br>
|
||||||
attr <name> hlsStrmObject https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8 <br>
|
attr <name> hlsStrmObject https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8 <br>
|
||||||
# ein Beispielstream der zum Test des Streaming Devices verwendet werden kann (Internetverbindung nötig) <br><br>
|
attr <name> hlsStrmObject https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8 <br>
|
||||||
|
# Beispielstreams der zum Test des Streaming Devices verwendet werden kann (Internetverbindung nötig) <br><br>
|
||||||
|
|
||||||
attr <name> hlsStrmObject http://192.168.2.10:32000/CamHE1.m3u8 <br>
|
attr <name> hlsStrmObject http://192.168.2.10:32000/CamHE1.m3u8 <br>
|
||||||
# Wiedergabe eines Kamera HLS-Streams der z.B. durch ffmpeg bereitgestellt wird <br><br>
|
# Wiedergabe eines Kamera HLS-Streams der z.B. durch ffmpeg bereitgestellt wird <br><br>
|
||||||
|
|
||||||
attr <name> hlsStrmObject http://192.168.2.10:32000/$NAME.m3u8 <br>
|
attr <name> hlsStrmObject http://192.168.2.10:32000/$NAME.m3u8 <br>
|
||||||
# Wie obiges Beispiel mit der Variablennutzung für "CamHE1"
|
# Wie obiges Beispiel mit der Variablennutzung für "CamHE1"
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
# $Id: 49_SSCamSTRM.pm 19051 2019-03-27 22:10:48Z DS_Starter $
|
# $Id: 49_SSCamSTRM.pm 20198 2019-09-19 17:14:20Z DS_Starter $
|
||||||
#########################################################################################################################
|
#########################################################################################################################
|
||||||
# 49_SSCamSTRM.pm
|
# 49_SSCamSTRM.pm
|
||||||
#
|
#
|
||||||
@ -35,7 +35,9 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1;
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
our %SSCamSTRM_vNotesIntern = (
|
our %SSCamSTRM_vNotesIntern = (
|
||||||
"2.8.0" => "09.09.2019 new attribute hideFooter ",
|
"2.10.0" => "21.09.2019 new attribute hideAudio ",
|
||||||
|
"2.9.0" => "19.09.2019 new attribute noLink ",
|
||||||
|
"2.8.0" => "09.09.2019 new attribute hideButtons ",
|
||||||
"2.7.0" => "15.07.2019 FTUI support, new attributes htmlattrFTUI, hideDisplayNameFTUI, ptzButtonSize, ptzButtonSizeFTUI ",
|
"2.7.0" => "15.07.2019 FTUI support, new attributes htmlattrFTUI, hideDisplayNameFTUI, ptzButtonSize, ptzButtonSizeFTUI ",
|
||||||
"2.6.0" => "21.06.2019 GetFn -> get <name> html ",
|
"2.6.0" => "21.06.2019 GetFn -> get <name> html ",
|
||||||
"2.5.0" => "27.03.2019 add Meta.pm support ",
|
"2.5.0" => "27.03.2019 add Meta.pm support ",
|
||||||
@ -84,9 +86,11 @@ sub SSCamSTRM_Initialize($) {
|
|||||||
"genericStrmHtmlTag ".
|
"genericStrmHtmlTag ".
|
||||||
"htmlattr ".
|
"htmlattr ".
|
||||||
"htmlattrFTUI ".
|
"htmlattrFTUI ".
|
||||||
|
"hideAudio:1,0 ".
|
||||||
|
"hideButtons:1,0 ".
|
||||||
"hideDisplayName:1,0 ".
|
"hideDisplayName:1,0 ".
|
||||||
"hideDisplayNameFTUI:1,0 ".
|
"hideDisplayNameFTUI:1,0 ".
|
||||||
"hideButtons:1,0 ".
|
"noLink:1,0 ".
|
||||||
"popupWindowSize ".
|
"popupWindowSize ".
|
||||||
"popupStreamFW:$fwd ".
|
"popupStreamFW:$fwd ".
|
||||||
"popupStreamTo:OK,1,2,3,4,5,6,7,8,9,10,15,20,25,30,40,50,60 ".
|
"popupStreamTo:OK,1,2,3,4,5,6,7,8,9,10,15,20,25,30,40,50,60 ".
|
||||||
@ -333,12 +337,12 @@ sub SSCamSTRM_setVersionInfo($) {
|
|||||||
if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) {
|
if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) {
|
||||||
# META-Daten sind vorhanden
|
# META-Daten sind vorhanden
|
||||||
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}}
|
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}}
|
||||||
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 19051 2019-03-27 22:10:48Z DS_Starter $ im Kopf komplett! vorhanden )
|
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 20198 2019-09-19 17:14:20Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||||
$modules{$type}{META}{x_version} =~ s/1.1.1/$v/g;
|
$modules{$type}{META}{x_version} =~ s/1.1.1/$v/g;
|
||||||
} else {
|
} else {
|
||||||
$modules{$type}{META}{x_version} = $v;
|
$modules{$type}{META}{x_version} = $v;
|
||||||
}
|
}
|
||||||
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 19051 2019-03-27 22:10:48Z DS_Starter $ im Kopf komplett! vorhanden )
|
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 20198 2019-09-19 17:14:20Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||||
if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) {
|
if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) {
|
||||||
# es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen
|
# es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen
|
||||||
# mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden
|
# mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden
|
||||||
@ -529,6 +533,12 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
<br><br>
|
<br><br>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<a name="hideAudio"></a>
|
||||||
|
<li><b>hideAudio</b><br>
|
||||||
|
Hide the control block for audio playback in the footer.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
|
||||||
<a name="hideButtons"></a>
|
<a name="hideButtons"></a>
|
||||||
<li><b>hideButtons</b><br>
|
<li><b>hideButtons</b><br>
|
||||||
Hide the buttons in the footer. It has no impact for streaming devices of type "switched".
|
Hide the buttons in the footer. It has no impact for streaming devices of type "switched".
|
||||||
@ -569,6 +579,12 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<a name="noLink"></a>
|
||||||
|
<li><b>noLink</b><br>
|
||||||
|
The device name or alias doesn't contain a link to the detail device view.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
|
||||||
<a name="popupStreamFW"></a>
|
<a name="popupStreamFW"></a>
|
||||||
<li><b>popupStreamFW</b><br>
|
<li><b>popupStreamFW</b><br>
|
||||||
You can specify a particular FHEMWEB device whose active browser pages should open a popup window by the
|
You can specify a particular FHEMWEB device whose active browser pages should open a popup window by the
|
||||||
@ -760,6 +776,12 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
<br><br>
|
<br><br>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<a name="hideAudio"></a>
|
||||||
|
<li><b>hideAudio</b><br>
|
||||||
|
Verbirgt die Steuerungsbereich für die Audiowiedergabe in der Fußzeile.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
|
||||||
<a name="hideButtons"></a>
|
<a name="hideButtons"></a>
|
||||||
<li><b>hideButtons</b><br>
|
<li><b>hideButtons</b><br>
|
||||||
Verbirgt die Drucktasten in der Fußzeile. Dieses Attribut hat keinen Einfluß bei Streaming-Devices vom Typ "switched".
|
Verbirgt die Drucktasten in der Fußzeile. Dieses Attribut hat keinen Einfluß bei Streaming-Devices vom Typ "switched".
|
||||||
@ -800,6 +822,12 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<a name="noLink"></a>
|
||||||
|
<li><b>noLink</b><br>
|
||||||
|
Der Devicename oder Alias enthält keinen Link zur Detailansicht.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
|
||||||
<a name="popupStreamFW"></a>
|
<a name="popupStreamFW"></a>
|
||||||
<li><b>popupStreamFW</b><br>
|
<li><b>popupStreamFW</b><br>
|
||||||
Es kann mit diesem Attribut das FHEMWEB-Device bestimmt werden, auf dessen Browserseiten sich Popup-Fenster mit
|
Es kann mit diesem Attribut das FHEMWEB-Device bestimmt werden, auf dessen Browserseiten sich Popup-Fenster mit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user