mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-10 08:04:00 +00:00
49_SSCam: V7.7.0, autocreateCams command added to SVS device, SSCamSTRM devices have get popupStream command, pls. execute "get <SSCam> versionNotes" for further info
git-svn-id: https://svn.fhem.de/fhem/trunk@17950 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
9a3a442c01
commit
103a4913ec
@ -1,5 +1,8 @@
|
||||
# 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: V7.7.0, autocreateCams command added to SVS device,
|
||||
SSCamSTRM devices have get popupStream command, pls.
|
||||
execute "get <SSCam> versionNotes" for further info
|
||||
- bugfix: 51_MOBILEALERTS.pm: Offlimit for decodeHumidityDecimal added
|
||||
- change: 98_MSwitch.pm, update V2.07
|
||||
- change: 20_FRM_IN: only update on change (Forum #81815)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -34,6 +34,7 @@ use warnings;
|
||||
|
||||
# Versions History intern
|
||||
our %SSCamSTRM_vNotesIntern = (
|
||||
"2.0.0" => "09.12.2018 get command \"popupStream\" and attribute \"popupStreamFW\" ",
|
||||
"1.5.0" => "02.12.2018 new attribute \"popupWindowSize\" ",
|
||||
"1.4.1" => "31.10.2018 attribute \"autoLoop\" changed to \"autoRefresh\", new attribute \"autoRefreshFW\" ",
|
||||
"1.4.0" => "29.10.2018 readingFnAttributes added ",
|
||||
@ -55,6 +56,7 @@ our %SSCamSTRM_vNotesIntern = (
|
||||
# Standardvariablen und Forward-Declaration
|
||||
sub SSCam_ptzpanel($;$$);
|
||||
sub SSCam_StreamDev($$$);
|
||||
sub SSCam_getclhash($;$$);
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Initialize($) {
|
||||
@ -63,6 +65,7 @@ sub SSCamSTRM_Initialize($) {
|
||||
my $fwd = join(",",devspec2array("TYPE=FHEMWEB:FILTER=STATE=Initialized"));
|
||||
|
||||
$hash->{DefFn} = "SSCamSTRM_Define";
|
||||
$hash->{GetFn} = "SSCamSTRM_Get";
|
||||
$hash->{AttrList} = "autoRefresh:selectnumbers,120,0.2,1800,0,log10 ".
|
||||
"autoRefreshFW:$fwd ".
|
||||
"disable:1,0 ".
|
||||
@ -70,6 +73,8 @@ sub SSCamSTRM_Initialize($) {
|
||||
"htmlattr ".
|
||||
"hideDisplayName:1,0 ".
|
||||
"popupWindowSize ".
|
||||
"popupStreamFW:$fwd ".
|
||||
"popupStreamTo:OK,1,2,3,4,5,6,7,8,9,10,15,20,25,30,40,50,60 ".
|
||||
$readingFnAttributes;
|
||||
$hash->{FW_summaryFn} = "SSCamSTRM_FwFn";
|
||||
$hash->{FW_detailFn} = "SSCamSTRM_FwFn";
|
||||
@ -101,6 +106,59 @@ sub SSCamSTRM_Define($$) {
|
||||
return undef;
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Get($@) {
|
||||
my ($hash, @a) = @_;
|
||||
return "\"set X\" needs at least an argument" if ( @a < 2 );
|
||||
my $name = $a[0];
|
||||
my $opt = $a[1];
|
||||
my $prop = $a[2];
|
||||
|
||||
return if(IsDisabled($name) || $hash->{MODEL} =~ /ptzcontrol|snapgallery/);
|
||||
|
||||
my $getlist = "Unknown argument $opt, choose one of ".
|
||||
"popupStream "
|
||||
;
|
||||
|
||||
if ($opt eq "popupStream") {
|
||||
my $txt = SSCam_getclhash($hash);
|
||||
return $txt if($txt);
|
||||
|
||||
my $link = AnalyzePerlCommand(undef, $hash->{LINK}) if($hash->{LINK} =~ m/^{(.*)}$/s);
|
||||
|
||||
# OK-Dialogbox oder Autoclose
|
||||
my $todef = 5;
|
||||
my $temp = AttrVal($name, "popupStreamTo", $todef);
|
||||
my $to = $prop?$prop:$temp;
|
||||
unless ($to =~ /^\d+$/ || lc($to) eq "ok") { $to = $todef; }
|
||||
$to = ($to =~ /\d+/)?(1000 * $to):$to;
|
||||
|
||||
my $pd = AttrVal($name, "popupStreamFW", "TYPE=FHEMWEB");
|
||||
|
||||
my $parent = $hash->{PARENT};
|
||||
my $parentHash = $defs{$parent};
|
||||
|
||||
my $htmlCode = $hash->{HELPER}{STREAM};
|
||||
|
||||
if ($hash->{HELPER}{STREAMACTIVE}) {
|
||||
my $out = "<html>";
|
||||
$out .= $htmlCode;
|
||||
$out .= "</html>";
|
||||
|
||||
if($to =~ /\d+/) {
|
||||
map {FW_directNotify("#FHEMWEB:$_", "FW_errmsg('$out', $to)", "")} devspec2array("$pd");
|
||||
} else {
|
||||
map {FW_directNotify("#FHEMWEB:$_", "FW_okDialog('$out')", "")} devspec2array("$pd");
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
return "$getlist";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Attr($$$$) {
|
||||
my ($cmd,$name,$aName,$aVal) = @_;
|
||||
@ -120,6 +178,12 @@ sub SSCamSTRM_Attr($$$$) {
|
||||
|
||||
readingsSingleUpdate($hash, "state", $val, 1);
|
||||
}
|
||||
|
||||
if ($cmd eq "set") {
|
||||
if ($aName =~ m/popupStreamTo/) {
|
||||
unless ($aVal =~ /^\d+$/ || $aVal eq "OK") { $_[3] = 5; }
|
||||
}
|
||||
}
|
||||
|
||||
return undef;
|
||||
}
|
||||
@ -228,7 +292,23 @@ Dependend of the Streaming-Device state, different buttons are provided to start
|
||||
<b>Set</b> <ul>N/A</ul><br>
|
||||
|
||||
<a name="SSCamSTRMget"></a>
|
||||
<b>Get</b> <ul>N/A</ul><br>
|
||||
<b>Get</b>
|
||||
<ul>
|
||||
|
||||
<ul>
|
||||
<li><b>popupStream</b> <br>
|
||||
|
||||
The current streaming content is depicted in a popup window. By setting attribute "popupWindowSize" the
|
||||
size of display can be adjusted. The attribute "popupStreamTo" determines the type of the popup window.
|
||||
If "OK" is set, an OK-dialog window will be opened. A specified number in seconds closes the popup window after this
|
||||
time automatically (default 5 seconds). <br>
|
||||
Optionally you can append "OK" or <seconds> directly to override the adjustment by attribute "popupStreamTo".
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<a name="SSCamSTRMattr"></a>
|
||||
<b>Attributes</b>
|
||||
@ -285,10 +365,32 @@ Dependend of the Streaming-Device state, different buttons are provided to start
|
||||
</li>
|
||||
<br>
|
||||
|
||||
<a name="popupStreamFW"></a>
|
||||
<li><b>popupStreamFW</b><br>
|
||||
You can specify a particular FHEMWEB device whose active browser pages should open a popup window by the
|
||||
"get <name> popupStream" command (default: all active FHEMWEB devices).
|
||||
</li>
|
||||
<br>
|
||||
|
||||
<a name="popupStreamTo"></a>
|
||||
<li><b>popupStreamTo [OK | <seconds>]</b><br>
|
||||
The attribute "popupStreamTo" determines the type of the popup window which is opend by get-function "popupStream".
|
||||
If "OK" is set, an OK-dialog window will be opened. A specified number in seconds closes the popup window after this
|
||||
time automatically (default 5 seconds)..
|
||||
<br><br>
|
||||
<ul>
|
||||
<b>Example: </b><br>
|
||||
attr <name> popupStreamTo 10 <br>
|
||||
</ul>
|
||||
<br>
|
||||
</li>
|
||||
|
||||
<a name="popupWindowSize"></a>
|
||||
<li><b>popupWindowSize</b><br>
|
||||
If the content of playback (Videostream or Snapshot gallery) is suitable, by clicking the content a popup window will appear.
|
||||
If the content of playback (Videostream or Snapshot gallery) is suitable, by clicking the content a popup window will
|
||||
appear.
|
||||
The size of display can be setup by this attribute.
|
||||
It is also valid for the get-function "popupStream".
|
||||
<br><br>
|
||||
<ul>
|
||||
<b>Example: </b><br>
|
||||
@ -343,10 +445,27 @@ Abhängig vom Zustand des Streaming-Devices werden zum Start von Aktionen unters
|
||||
<b>Set</b> <ul>N/A</ul><br>
|
||||
|
||||
<a name="SSCamSTRMget"></a>
|
||||
<b>Get</b> <ul>N/A</ul><br>
|
||||
<b>Get</b>
|
||||
<ul>
|
||||
|
||||
<ul>
|
||||
<li><b>popupStream [OK | <Sekunden>]</b> <br>
|
||||
|
||||
Der aktuelle Streaminhalt wird in einem Popup-Fenster dargestellt. Mit dem Attribut "popupWindowSize" kann die
|
||||
Darstellungsgröße eingestellt werden. Das Attribut "popupStreamTo" legt die Art des Popup-Fensters fest.
|
||||
Ist "OK" eingestellt, öffnet sich ein OK-Dialogfenster. Die angegebene Zahl in Sekunden schließt das Fenster nach dieser
|
||||
Zeit automatisch (default 5 Sekunden). <br>
|
||||
Durch die optionalen Angabe von "OK" oder <Sekunden> kann die Einstellung des Attributes "popupStreamTo" übersteuert
|
||||
werden.
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<a name="SSCamSTRMattr"></a>
|
||||
<b>Attributes</b>
|
||||
<b>Attribute</b>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
@ -400,10 +519,31 @@ Abhängig vom Zustand des Streaming-Devices werden zum Start von Aktionen unters
|
||||
</li>
|
||||
<br>
|
||||
|
||||
<a name="popupStreamFW"></a>
|
||||
<li><b>popupStreamFW</b><br>
|
||||
Es kann mit diesem Attribut das FHEMWEB-Device bestimmt werden, auf dessen Browserseiten sich Popup-Fenster mit
|
||||
"get <name> popupStream" öffnen sollen (default: alle aktiven FHEMWEB-Devices).
|
||||
</li>
|
||||
<br>
|
||||
|
||||
<a name="popupStreamTo"></a>
|
||||
<li><b>popupStreamTo [OK | <Sekunden>]</b><br>
|
||||
Das Attribut "popupStreamTo" legt die Art des Popup-Fensters fest welches mit der get-Funktion "popupStream" geöffnet wird.
|
||||
Ist "OK" eingestellt, öffnet sich ein OK-Dialogfenster. Die angegebene Zahl in Sekunden schließt das Fenster nach dieser
|
||||
Zeit automatisch (default 5 Sekunden).
|
||||
<br><br>
|
||||
<ul>
|
||||
<b>Beispiel: </b><br>
|
||||
attr <name> popupStreamTo 10 <br>
|
||||
</ul>
|
||||
<br>
|
||||
</li>
|
||||
|
||||
<a name="popupWindowSize"></a>
|
||||
<li><b>popupWindowSize</b><br>
|
||||
Bei geeigneten Wiedergabeinhalten (Videostream oder Schnappschußgalerie) öffnet ein Klick auf den Bildinhalt ein
|
||||
Popup-Fenster mit diesem Inhalt. Die Darstellungsgröße kann mit diesem Attribut eingestellt werden.
|
||||
Das Attribut gilt ebenfalls für die get-Funktion "popupStream".
|
||||
<br><br>
|
||||
<ul>
|
||||
<b>Beispiel: </b><br>
|
||||
|
@ -45,8 +45,8 @@ use HttpUtils;
|
||||
|
||||
# Versions History intern
|
||||
our %SSCam_vNotesIntern = (
|
||||
"7.7.0" => "07.12.2018 SVS-Device: autocreateCams command added, some other fixes and improvements, minor code rewrite, ".
|
||||
"save Stream \$streamHash->{HELPER}{STREAM} for popupStream in SSCamSTRM-Device ",
|
||||
"7.7.0" => "10.12.2018 SVS-Device: autocreateCams command added, some other fixes and improvements, minor code rewrite, ".
|
||||
"save Stream in \$streamHash->{HELPER}{STREAM} for popupStream in SSCamSTRM-Device ",
|
||||
"7.6.0" => "02.12.2018 sub SSCam_ptzpanel completed by Preset and Patrol, minor fixes ",
|
||||
"7.5.0" => "02.12.2018 sub SSCam_StreamDev and SSCam_composegallery changed to use popup window ",
|
||||
"7.4.1" => "26.11.2018 sub composegallery deleted, SSCam_composegallery changed to get information for SSCam_refresh ",
|
||||
@ -99,7 +99,7 @@ our %SSCam_vNotesIntern = (
|
||||
|
||||
# Versions History extern
|
||||
our %SSCam_vNotesExtern = (
|
||||
"7.7.0" => "07.12.2018 autocreateCams command added in SVS device. By this command all cameras installed in SVS can be ".
|
||||
"7.7.0" => "10.12.2018 autocreateCams command added to SVS device. By this command all cameras installed in SVS can be ".
|
||||
"defined automatically. <br>".
|
||||
"In SSCamSTRM devices the \"get <name> popupStream\" command is implemented which may open a popup window with the ".
|
||||
"active streaming content. ",
|
||||
@ -6266,7 +6266,7 @@ sub SSCam_StreamDev($$$) {
|
||||
my $ha = AttrVal($camname, "htmlattr", 'width="500" height="325"'); # HTML Attribute der Cam
|
||||
$ha = AttrVal($strmdev, "htmlattr", $ha); # htmlattr mit htmattr Streaming-Device übersteuern
|
||||
my $pws = AttrVal($strmdev, "popupWindowSize", ""); # Größe eines Popups
|
||||
$pws =~ s/"//g if($pws);
|
||||
$pws =~ s/"//g if($pws);
|
||||
my $StmKey = ReadingsVal($camname,"StmKey",undef);
|
||||
|
||||
$ret = "";
|
||||
@ -6344,8 +6344,12 @@ sub SSCam_StreamDev($$$) {
|
||||
|
||||
$ret .= "<td>";
|
||||
$ret .= "$htag";
|
||||
$streamHash->{HELPER}{STREAM} = "$htag"; # Stream für "get <SSCamSTRM-Device> popupStream" speichern
|
||||
$streamHash->{HELPER}{STREAMACTIVE} = 1 if($htag); # Statusbit wenn ein Stream aktiviert ist
|
||||
if($htag) {
|
||||
$streamHash->{HELPER}{STREAM} = "$htag"; # Stream für "get <SSCamSTRM-Device> popupStream" speichern
|
||||
$streamHash->{HELPER}{STREAM} =~ s/["']//g;
|
||||
$streamHash->{HELPER}{STREAM} =~ s/\s+/ /g;
|
||||
$streamHash->{HELPER}{STREAMACTIVE} = 1; # Statusbit wenn ein Stream aktiviert ist
|
||||
}
|
||||
$ret .= "<br>";
|
||||
Log3($strmdev, 4, "$strmdev - generic Stream params:\n$htag");
|
||||
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdrefresh')\">$imgrefresh </a>";
|
||||
|
@ -34,7 +34,7 @@ use warnings;
|
||||
|
||||
# Versions History intern
|
||||
our %SSCamSTRM_vNotesIntern = (
|
||||
"2.0.0" => "09.12.2018 get command \"popupStream\" ",
|
||||
"2.0.0" => "09.12.2018 get command \"popupStream\" and attribute \"popupStreamFW\" ",
|
||||
"1.5.0" => "02.12.2018 new attribute \"popupWindowSize\" ",
|
||||
"1.4.1" => "31.10.2018 attribute \"autoLoop\" changed to \"autoRefresh\", new attribute \"autoRefreshFW\" ",
|
||||
"1.4.0" => "29.10.2018 readingFnAttributes added ",
|
||||
|
Loading…
x
Reference in New Issue
Block a user