From 0481e31ecf48561d1bb60101298422704da7af6f Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Mon, 9 Sep 2019 22:24:51 +0000 Subject: [PATCH] 49_SSCam.pm: contrib 8.17.0 git-svn-id: https://svn.fhem.de/fhem/trunk@20140 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/49_SSCam.pm | 287 +++++++++++++----------- fhem/contrib/DS_Starter/49_SSCamSTRM.pm | 44 +++- 2 files changed, 193 insertions(+), 138 deletions(-) diff --git a/fhem/contrib/DS_Starter/49_SSCam.pm b/fhem/contrib/DS_Starter/49_SSCam.pm index 9756d1518..b86f4728a 100644 --- a/fhem/contrib/DS_Starter/49_SSCam.pm +++ b/fhem/contrib/DS_Starter/49_SSCam.pm @@ -1,5 +1,5 @@ ######################################################################################################################## -# $Id: 49_SSCam.pm 19750 2019-06-30 20:34:25Z DS_Starter $ +# $Id: 49_SSCam.pm 19996 2019-08-13 21:21:54Z DS_Starter $ ######################################################################################################################### # 49_SSCam.pm # @@ -48,6 +48,10 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1; # Versions History intern our %SSCam_vNotesIntern = ( + "8.17.0" => "09.09.2019 fix warnings, suport hide buttons in streaming device ", + "8.16.3" => "13.08.2019 commandref revised ", + "8.16.2" => "17.07.2019 change function SSCam_ptzpanel using css stylesheet ", + "8.16.1" => "16.07.2019 fix warnings ", "8.16.0" => "14.07.2019 change detail link generation from SSCamSTRM to SSCam ", "8.15.2" => "14.07.2019 fix order of snaps in snapgallery when adding new snaps, fix english date formating in composegallery, ". "align center of FTUI table, set compatibility to 8.2.5 ", @@ -953,7 +957,6 @@ sub SSCam_Set($@) { if($spec =~ /STRM:/) { $spec =~ m/.*STRM:(.*).*/i; # Snap by SSCamSTRM-Device $hash->{HELPER}{INFORM} = $1; - $hash->{HELPER}{SNAPBYSTRMDEV} = 1; } my $emtxt = AttrVal($name, "snapEmailTxt", ""); @@ -1948,7 +1951,7 @@ sub SSCam_FWdetailFn ($$$$) { $ret .= $hash->{".setup"}; } - $hash->{".ptzhtml"} = SSCam_ptzpanel($d) if($hash->{".ptzhtml"} eq ""); + $hash->{".ptzhtml"} = SSCam_ptzpanel($d,$d) if($hash->{".ptzhtml"} eq ""); if($hash->{".ptzhtml"} ne "" && AttrVal($d,"ptzPanel_use",1)) { $ret .= $hash->{".ptzhtml"}; @@ -6950,19 +6953,24 @@ return ($ret); ############################################################################### sub SSCam_ptzpanel(@) { my ($name,$ptzcdev,$ptzcontrol,$ftui) = @_; - my $hash = $defs{$name}; - my $iconpath = AttrVal("$name","ptzPanel_iconPath","www/images/sscam"); - my $iconprefix = AttrVal("$name","ptzPanel_iconPrefix","black_btn_"); - my $valPresets = ReadingsVal("$name","Presets",""); - my $valPatrols = ReadingsVal("$name","Patrols",""); - my $rowisset = 0; - my $ptz_ret; - my $row; + my $hash = $defs{$name}; + my $iconpath = AttrVal("$name","ptzPanel_iconPath","www/images/sscam"); + my $iconprefix = AttrVal("$name","ptzPanel_iconPrefix","black_btn_"); + my $valPresets = ReadingsVal("$name","Presets",""); + my $valPatrols = ReadingsVal("$name","Patrols",""); + my $rowisset = 0; + my ($pbs,$pbsf) = ("",""); + my ($row,$ptz_ret); return "" if(SSCam_myVersion($hash) <= 71); + + $pbs = AttrVal($ptzcdev,"ptzButtonSize", 100); # Größe der Druckbuttons in % + $pbsf = AttrVal($ptzcdev,"ptzButtonSizeFTUI", 100); # Größe der Druckbuttons im FTUI in % - $ptz_ret = "
"; - $ptz_ret.= ''; + $ptz_ret = ""; + $ptz_ret .= ""; + $ptz_ret .= ""; + $ptz_ret .= '
'; foreach my $rownr (0..9) { $rownr = sprintf("%2.2d",$rownr); @@ -6970,27 +6978,31 @@ sub SSCam_ptzpanel(@) { next if (!$row); $rowisset = 1; $ptz_ret .= ""; - my @btn = split (",",$row); # die Anzahl Buttons in einer Reihe + my @btn = split (",",$row); # die Anzahl Buttons in einer Reihe foreach my $btnnr (0..$#btn) { - $ptz_ret .= '\n"; } - $ptz_ret .= "
'; + $ptz_ret .= ''; if ($btn[$btnnr] ne "") { my $cmd; my $img; - if ($btn[$btnnr] =~ /(.*?):(.*)/) { # enthält Komando -> : + if ($btn[$btnnr] =~ /(.*?):(.*)/) { # enthält Komando -> : $cmd = $1; $img = $2; - } else { # button has format or is empty + } else { # button has format or is empty $cmd = $btn[$btnnr]; $img = $btn[$btnnr]; } - if ($img =~ m/\.svg/) { # Verwendung für SVG's + if ($img =~ m/\.svg/) { # Verwendung für SVG's $img = FW_makeImage($img, $cmd, "rc-button"); - } else { - $img = ""; # $FW_ME = URL-Pfad unter dem der FHEMWEB-Server via HTTP erreichbar ist, z.B. /fhem - } + } else { # $FW_ME = URL-Pfad unter dem der FHEMWEB-Server via HTTP erreichbar ist, z.B. /fhem + if($ftui) { + $img = ""; + } else { + $img = ""; + } + } if ($cmd || $cmd eq "0") { - my $cmd1 = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name $cmd')"; # $FW_subdir = Sub-path in URL, used by FLOORPLAN/weblink + my $cmd1 = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name $cmd')"; # $FW_subdir = Sub-path in URL, used by FLOORPLAN/weblink $cmd1 = "ftui.setFhemStatus('set $name $cmd')" if($ftui); $ptz_ret .= "$img"; } else { @@ -7002,9 +7014,7 @@ sub SSCam_ptzpanel(@) { } $ptz_ret .= "
"; - $ptz_ret .= "
"; ######################## # add Preset & Patrols @@ -7021,7 +7031,6 @@ sub SSCam_ptzpanel(@) { } if($Presets) { $Presets =~ s,^]*>(.*)$,$1,; - # Log3($name, 1, "$name - commandArgs: $Presets"); } else { $Presets = FW_pH "cmd.$name=set $name $cmdPreset", $cmdPreset, 0, "", 1, 1; } @@ -7033,33 +7042,24 @@ sub SSCam_ptzpanel(@) { last if(defined($Patrols)); } - # Rahmenklasse - $ptz_ret .= "
"; - $ptz_ret .= ""; + if($Patrols) { + $Patrols =~ s,^]*>(.*)$,$1,; + } else { + $Patrols = FW_pH "cmd.$name=set $name $cmdPatrol", $cmdPatrol, 0, "", 1, 1; + } + + $ptz_ret .= '
'; + $ptz_ret .= ""; - $ptz_ret .= '"; + $ptz_ret .= ""; - # Dropdown Klasse - $ptz_ret .= "
'; + $ptz_ret .= "Preset: $Presets
"; $ptz_ret .= ""; - $ptz_ret .= ""; + $ptz_ret .= ""; $ptz_ret .= ""; + $ptz_ret .= "
Preset:
$Presets
Patrol: $Patrols
"; - - $ptz_ret .= ""; - $ptz_ret .= ""; - $ptz_ret .= ""; - $ptz_ret .= ""; - $ptz_ret .= "
Patrol:
$Patrols
"; - - # Rahmenklasse end - $ptz_ret .= ""; - $ptz_ret .= ""; - $ptz_ret .= ""; - $ptz_ret .= "
"; - - ##################### - } + } if ($rowisset) { return $ptz_ret; @@ -7224,19 +7224,21 @@ sub SSCam_StreamDev($$$;$) { $cmdrefresh = "ftui.setFhemStatus('set $camname refresh STRM:$uuid')"; } - my $ha = AttrVal($camname, "htmlattr", 'width="500" height="325"'); # HTML Attribute der Cam - $ha = AttrVal($strmdev, "htmlattr", $ha); # htmlattr mit htmlattr Streaming-Device übersteuern + my $ha = AttrVal($camname, "htmlattr", 'width="500" height="325"'); # HTML Attribute der Cam + $ha = AttrVal($strmdev, "htmlattr", $ha); # htmlattr mit htmlattr Streaming-Device übersteuern if($ftui) { $ha = AttrVal($strmdev, "htmlattrFTUI", $ha); # wenn aus FTUI aufgerufen divers setzen } - my $pws = AttrVal($strmdev, "popupWindowSize", ""); # Größe eines Popups - $pws =~ s/"//g if($pws); + my $hf = AttrVal($strmdev, "hideButtons", 0); # Drucktasten im unteren Bereich ausblenden ? + + my $pws = AttrVal($strmdev, "popupWindowSize", ""); # Größe eines Popups + $pws =~ s/"//g if($pws); my $show = $defs{$streamHash->{PARENT}}->{HELPER}{ACTSTRM} if($streamHash->{MODEL} =~ /switched/); $show = $show?"($show)":""; - 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 = "$alias"; my $StmKey = ReadingsVal($camname,"StmKey",undef); @@ -7317,19 +7319,20 @@ sub SSCam_StreamDev($$$;$) { $streamHash->{HELPER}{STREAM} = ""; # Stream für "get popupStream" speichern $streamHash->{HELPER}{STREAMACTIVE} = 1 if($link); # Statusbit wenn ein Stream aktiviert ist } - - if(ReadingsVal($camname, "Record", "Stop") eq "Stop") { - # Aufnahmebutton endlos Start - $ret .= "$imgrecendless "; - } else { - # Aufnahmebutton Stop - $ret .= "$imgrecstop "; - } - $ret .= "$imgdosnap "; + if(!$hf) { + if(ReadingsVal($camname, "Record", "Stop") eq "Stop") { + # Aufnahmebutton endlos Start + $ret .= "$imgrecendless "; + } else { + # Aufnahmebutton Stop + $ret .= "$imgrecstop "; + } + $ret .= "$imgdosnap "; + } $ret .= ""; if(AttrVal($camname,"ptzPanel_use",1)) { - my $ptz_ret = SSCam_ptzpanel($camname,'','',$ftui); - if($ptz_ret) { + my $ptz_ret = SSCam_ptzpanel($camname,$strmdev,'',$ftui); + if($ptz_ret) { $ret .= "$ptz_ret"; } } @@ -7352,7 +7355,9 @@ sub SSCam_StreamDev($$$;$) { } else { $ret .= "
"; } - $ret .= "$imgdosnap "; + if(!$hf) { + $ret .= "$imgdosnap "; + } $ret .= ""; $streamHash->{HELPER}{STREAM} = ""; # Stream für "get popupStream" speichern $streamHash->{HELPER}{STREAMACTIVE} = 1 if($link); # Statusbit wenn ein Stream aktiviert ist @@ -7394,19 +7399,21 @@ sub SSCam_StreamDev($$$;$) { } $ret .= "
"; Log3($strmdev, 4, "$strmdev - generic Stream params:\n$htag"); - $ret .= "$imgrefresh "; - $ret .= $imgblank; - if(ReadingsVal($camname, "Record", "Stop") eq "Stop") { - # Aufnahmebutton endlos Start - $ret .= "$imgrecendless "; - } else { - # Aufnahmebutton Stop - $ret .= "$imgrecstop "; - } - $ret .= "$imgdosnap "; + if(!$hf) { + $ret .= "$imgrefresh "; + $ret .= $imgblank; + if(ReadingsVal($camname, "Record", "Stop") eq "Stop") { + # Aufnahmebutton endlos Start + $ret .= "$imgrecendless "; + } else { + # Aufnahmebutton Stop + $ret .= "$imgrecstop "; + } + $ret .= "$imgdosnap "; + } $ret .= ""; if(AttrVal($camname,"ptzPanel_use",1)) { - my $ptz_ret = SSCam_ptzpanel($camname,'','',$ftui); + my $ptz_ret = SSCam_ptzpanel($camname,$strmdev,'',$ftui); if($ptz_ret) { $ret .= "$ptz_ret"; } @@ -7439,20 +7446,21 @@ sub SSCam_StreamDev($$$;$) { $streamHash->{HELPER}{STREAM} = ""; # Stream für "set popupStream" speichern $streamHash->{HELPER}{STREAMACTIVE} = 1; # Statusbit wenn ein Stream aktiviert ist - - $ret .= "$imgrefresh "; - $ret .= $imgblank; - if(ReadingsVal($camname, "Record", "Stop") eq "Stop") { - # Aufnahmebutton endlos Start - $ret .= "$imgrecendless "; - } else { - # Aufnahmebutton Stop - $ret .= "$imgrecstop "; - } - $ret .= "$imgdosnap "; + if(!$hf) { + $ret .= "$imgrefresh "; + $ret .= $imgblank; + if(ReadingsVal($camname, "Record", "Stop") eq "Stop") { + # Aufnahmebutton endlos Start + $ret .= "$imgrecendless "; + } else { + # Aufnahmebutton Stop + $ret .= "$imgrecstop "; + } + $ret .= "$imgdosnap "; + } $ret .= ""; if(AttrVal($camname,"ptzPanel_use",1)) { - my $ptz_ret = SSCam_ptzpanel($camname,'','',$ftui); + my $ptz_ret = SSCam_ptzpanel($camname,$strmdev,'',$ftui); if($ptz_ret) { $ret .= "$ptz_ret"; } @@ -7489,7 +7497,7 @@ sub SSCam_StreamDev($$$;$) { } $ret .= ""; if(AttrVal($camname,"ptzPanel_use",1) && $hash->{HELPER}{RUNVIEW} =~ /live_fw/) { - my $ptz_ret = SSCam_ptzpanel($camname,'','',$ftui); + my $ptz_ret = SSCam_ptzpanel($camname,$strmdev,'',$ftui); if($ptz_ret) { $ret .= "$ptz_ret"; } @@ -7604,7 +7612,7 @@ sub SSCam_StreamDev($$$;$) { $ret .= "$imgdosnap "; $ret .= ""; if(AttrVal($camname,"ptzPanel_use",1)) { - my $ptz_ret = SSCam_ptzpanel($camname,'','',$ftui); + my $ptz_ret = SSCam_ptzpanel($camname,$strmdev,'',$ftui); if($ptz_ret) { $ret .= "$ptz_ret"; } @@ -7705,6 +7713,7 @@ sub SSCam_composegallery ($;$$$) { ? ReadingsTimestamp($name,"LastSnapTime"," ") : ReadingsTimestamp($name,"LastUpdateTime"," ")); # letzte Aktualisierung $lupt =~ s/ / \/ /; + my ($alias,$dlink,$hf) = ("","",""); # Kontext des SSCamSTRM-Devices speichern für SSCam_refresh $hash->{HELPER}{STRMDEV} = $strmdev; # Name des aufrufenden SSCamSTRM-Devices @@ -7715,6 +7724,8 @@ sub SSCam_composegallery ($;$$$) { my $streamHash = $defs{$strmdev}; # Hash des SSCamSTRM-Devices $uuid = $streamHash->{FUUID}; # eindeutige UUID des Streamingdevices delete $streamHash->{HELPER}{STREAM}; + $alias = AttrVal($strmdev, "alias", $strmdev); # Linktext als Aliasname oder Devicename setzen + $dlink = "$alias"; } 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" @@ -7726,16 +7737,14 @@ sub SSCam_composegallery ($;$$$) { } my $ha = AttrVal($name, "snapGalleryHtmlAttr", AttrVal($name, "htmlattr", 'width="500" height="325"')); - - my $alias = AttrVal($strmdev, "alias", $strmdev); # Linktext als Aliasname oder Devicename setzen - my $dlink = "$alias"; - + # falls "SSCam_composegallery" durch ein SSCamSTRM-Device aufgerufen wird my $pws = ""; if ($strmdev) { $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); $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 ? if($ftui) { $ha = AttrVal($strmdev, "htmlattrFTUI", $ha); # wenn aus FTUI aufgerufen divers setzen } @@ -7814,7 +7823,9 @@ sub SSCam_composegallery ($;$$$) { $htmlCode .= ""; $htmlCode .= ""; $htmlCode .= ""; - $htmlCode .= "$imgdosnap " if($strmdev); + if(!$hf) { + $htmlCode .= "$imgdosnap " if($strmdev); + } $htmlCode .= ""; return $htmlCode; @@ -9108,12 +9119,12 @@ sub SSCam_setVersionInfo($) { if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) { # META-Daten sind vorhanden $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 19750 2019-06-30 20:34:25Z DS_Starter $ im Kopf komplett! vorhanden ) + if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCam.pm 19996 2019-08-13 21:21:54Z DS_Starter $ im Kopf komplett! vorhanden ) $modules{$type}{META}{x_version} =~ s/1.1.1/$v/g; } else { $modules{$type}{META}{x_version} = $v; } - return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCam.pm 19750 2019-06-30 20:34:25Z DS_Starter $ im Kopf komplett! vorhanden ) + return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCam.pm 19996 2019-08-13 21:21:54Z DS_Starter $ im Kopf komplett! vorhanden ) if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) { # es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen # mit {->VERSION()} im FHEMWEB kann Modulversion abgefragt werden @@ -10691,14 +10702,15 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR -
  • snapTelegramTxt tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]
    +
  • recTelegramTxt tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]
    Activates the permanent shipping of recordings by TelegramBot after their creation.
    The attribute has to be definied in the form as described. With key "tbot" the TelegramBot device is specified, which is used for shipping the data. Of course, the TelegramBot device must be available and has to be running well.
    The setting of "peers" and "subject" is optional, but the keys must (empty) specified. - If "peer" is empty, teh default peer of the TelegramBot is used.
    - You can use the following placeholders in "subject".

    + If "peer" is empty, the default peer of the TelegramBot device is used.

    + + You can use the following placeholders within "subject".

      @@ -10712,14 +10724,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
      -
        - Examples:
        - recTelegramTxt tbot => teleBot, peers => , subject => Motion alarm ($FILE)
        - recTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
        - recTelegramTxt tbot => teleBot, peers => , subject =>
        - recTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the recording $FILE was created. Now it is $TIME.
        -
      -
      + Examples:
      + attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Motion alarm ($FILE)
      + attr <device> recTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
      + attr <device> recTelegramTxt tbot => teleBot, peers => #nabugroup, subject =>
      + attr <device> recTelegramTxt tbot => teleBot, peers => -123456, subject =>
      + attr <device> recTelegramTxt tbot => teleBot, peers => , subject =>
      + attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the recording $FILE was created. Now it is $TIME.
      +

      @@ -10823,8 +10835,9 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR which is used for shipping the data. Of course, the TelegramBot device must be available and has to be running well.
      The setting of "peers" and "subject" is optional, but the keys must (empty) specified. - If "peer" is empty, teh default peer of the TelegramBot is used.
      - You can use the following placeholders in "subject".

      + If "peer" is empty, the default peer of the TelegramBot device is used.

      + + You can use the following placeholders within "subject".

      @@ -10837,15 +10850,15 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR

    - -
      - Examples:
      - snapTelegramTxt tbot => teleBot, peers => , subject => Motion alarm ($FILE)
      - snapTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
      - snapTelegramTxt tbot => teleBot, peers => , subject =>
      - snapTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the snapshot $FILE was created
      -
    -
    + + Examples:
    + attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Motion alarm ($FILE)
    + attr <device> snapTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
    + attr <device> snapTelegramTxt tbot => teleBot, peers => #nabugroup, subject =>
    + attr <device> snapTelegramTxt tbot => teleBot, peers => -123456, subject =>
    + attr <device> snapTelegramTxt tbot => teleBot, peers => , subject =>
    + attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the snapshot $FILE was created
    +

  • @@ -12512,7 +12525,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR anzugeben, welches für den Versand der Daten verwendet werden soll. Das TelegramBot-Device muss natürlich vorhanden und funktionstüchtig sein.
    Die Angabe von "peers" und "subject" ist optional, jedoch muß der Schlüssel (leer) angegeben werden. - Wurde "peer" leer gelassen, wird der Default-Peer des TelegramBot verwendet.
    + Wurde "peer" leer gelassen, wird der Default-Peer des TelegramBot-Device verwendet.

    + Es können die folgenden Platzhalter im subject verwendet werden.

      @@ -12527,13 +12541,13 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR

    -
      - Beispiele:
      - recTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm ($FILE)
      - recTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
      - recTelegramTxt tbot => teleBot, peers => , subject =>
      - recTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt. Jetzt ist es $TIME.
      -
    + Beispiele:
    + attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm ($FILE)
    + attr <device> recTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
    + attr <device> recTelegramTxt tbot => teleBot, peers => #nabugroup, subject =>
    + attr <device> recTelegramTxt tbot => teleBot, peers => -123456, subject =>
    + attr <device> recTelegramTxt tbot => teleBot, peers => , subject =>
    + attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt. Jetzt ist es $TIME.


    @@ -12641,8 +12655,9 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR anzugeben, welches für den Versand der Daten verwendet werden soll. Das TelegramBot-Device muss natürlich vorhanden und funktionstüchtig sein.
    Die Angabe von "peers" und "subject" ist optional, jedoch muß der Schlüssel (leer) angegeben werden. - Wurde "peer" leer gelassen, wird der Default-Peer des TelegramBot verwendet.
    - Es können die Platzhalter im subject verwendet werden.

    + Wurde "peer" leer gelassen, wird der Default-Peer des TelegramBot-Devices verwendet.

    + + Es können folgende Platzhalter im subject verwendet werden.

      @@ -12656,14 +12671,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
      -
        - Beispiele:
        - snapTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm ($FILE)
        - snapTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
        - snapTelegramTxt tbot => teleBot, peers => , subject =>
        - snapTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt
        -
      -
      + Beispiele:
      + attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm ($FILE)
      + attr <device> snapTelegramTxt tbot => teleBot, peers => @nabuko @foo @bar, subject =>
      + attr <device> snapTelegramTxt tbot => teleBot, peers => #nabugroup, subject =>
      + attr <device> snapTelegramTxt tbot => teleBot, peers => -123456, subject =>
      + attr <device> snapTelegramTxt tbot => teleBot, peers => , subject =>
      + attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt
      +

      diff --git a/fhem/contrib/DS_Starter/49_SSCamSTRM.pm b/fhem/contrib/DS_Starter/49_SSCamSTRM.pm index 6576400d8..2cc190f9e 100644 --- a/fhem/contrib/DS_Starter/49_SSCamSTRM.pm +++ b/fhem/contrib/DS_Starter/49_SSCamSTRM.pm @@ -35,7 +35,8 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1; # Versions History intern our %SSCamSTRM_vNotesIntern = ( - "2.7.0" => "14.07.2019 FTUI support, new attributes htmlattrFTUI, hideDisplayNameFTUI ", + "2.8.0" => "09.09.2019 new attribute hideFooter ", + "2.7.0" => "15.07.2019 FTUI support, new attributes htmlattrFTUI, hideDisplayNameFTUI, ptzButtonSize, ptzButtonSizeFTUI ", "2.6.0" => "21.06.2019 GetFn -> get html ", "2.5.0" => "27.03.2019 add Meta.pm support ", "2.4.0" => "24.02.2019 support for \"genericStrmHtmlTag\" in streaming device MODEL generic ", @@ -85,9 +86,12 @@ sub SSCamSTRM_Initialize($) { "htmlattrFTUI ". "hideDisplayName:1,0 ". "hideDisplayNameFTUI:1,0 ". + "hideButtons:1,0 ". "popupWindowSize ". "popupStreamFW:$fwd ". "popupStreamTo:OK,1,2,3,4,5,6,7,8,9,10,15,20,25,30,40,50,60 ". + "ptzButtonSize:selectnumbers,50,5,100,0,lin ". + "ptzButtonSizeFTUI:selectnumbers,50,5,100,0,lin ". $readingFnAttributes; $hash->{RenameFn} = "SSCamSTRM_Rename"; $hash->{CopyFn} = "SSCamSTRM_Copy"; @@ -525,6 +529,12 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR

      + +
    • hideButtons
      + Hide the buttons in the footer. It has no impact for streaming devices of type "switched". +
    • +
      +
    • hideDisplayName
      Hide the device/alias name (link to detail view). @@ -591,6 +601,18 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR attr <name> popupWindowSize width="600" height="425"
    • +
      + + +
    • ptzButtonSize
      + Specifies the PTZ-panel button size (in %). +
    • +
      + + +
    • ptzButtonSizeFTUI
      + Specifies the PTZ-panel button size used in a Tablet UI (in %). +
    • @@ -736,7 +758,13 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR Devicenamen bzw. das Attribut "popupWindowSize" im Streaming-Device, welches die Größe eines Popup-Windows festlegt.

      - + + + +
    • hideButtons
      + Verbirgt die Drucktasten in der Fußzeile. Dieses Attribut hat keinen Einfluß bei Streaming-Devices vom Typ "switched". +
    • +
    • hideDisplayName
      @@ -803,6 +831,18 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR attr <name> popupWindowSize width="600" height="425"
    • +
      + + +
    • ptzButtonSize
      + Legt die Größe der Drucktasten des PTZ Paneels fest (in %). +
    • +
      + + +
    • ptzButtonSizeFTUI
      + Legt die Größe der Drucktasten des PTZ Paneels in einem Tablet UI fest (in %). +