diff --git a/fhem/CHANGED b/fhem/CHANGED index c8fccdc5e..0d4443e14 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,7 @@ # 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: 95_Dashboard: new attribute dashboard_hideGroupHeader, path + handling of backgroundimage changed, comref revised - bugfix: 98_weekprofile: read weekprofile from HMCCUDEV|HM-TC-IT-WM-W-EU - change: 93_DbLog: change cache from %defs to %data, improved log infos with verbose 5 of SVG generation, bugfix check TIMESTAMP diff --git a/fhem/FHEM/95_Dashboard.pm b/fhem/FHEM/95_Dashboard.pm index a644ac0d0..0258dfa65 100644 --- a/fhem/FHEM/95_Dashboard.pm +++ b/fhem/FHEM/95_Dashboard.pm @@ -55,6 +55,8 @@ use vars qw($FW_ss); # is smallscreen, needed by 97_GROUP/95_VIEW # Versions History intern our %Dashboard_vNotesIntern = ( + "3.17.0" => "06.10.2019 Path handling of backgroundimage changed ", + "3.16.0" => "04.10.2019 new attribute dashboard_hideGroupHeader, commandref revised ", "3.15.2" => "29.09.2019 fix warnings, Forum: https://forum.fhem.de/index.php/topic,16503.msg978883.html#msg978883 ", "3.15.1" => "25.09.2019 change initial attributes, commandref revised ", "3.15.0" => "24.09.2019 set activateTab, rename dashboard_activetab to dashboard_homeTab, ". @@ -74,6 +76,8 @@ our %Dashboard_vNotesIntern = ( ######################### # Forward declaration sub Dashboard_GetGroupList(); +sub Dashboard_searchImage($$$$); +use vars qw($FW_dir); # base directory for web server ######################### # Global variables @@ -97,7 +101,8 @@ sub Dashboard_Initialize ($) { "dashboard_colcount:1,2,3,4,5 ". "dashboard_customcss " . "dashboard_debug:0,1 ". - "dashboard_flexible " . + "dashboard_flexible " . + "dashboard_hideGroupHeader:1,0 " . "dashboard_rowtopheight ". "dashboard_rowbottomheight ". "dashboard_row:top,center,bottom,top-center,center-bottom,top-center-bottom ". @@ -268,11 +273,11 @@ sub Dashboard_Get($@) { # Attr ################################################################ sub Dashboard_Attr($$$) { - my ($cmd, $name, $attrName, $attrVal) = @_; + my ($cmd, $name, $aName, $aVal) = @_; my $hash = $defs{$name}; if ($cmd eq "set") { - if ($attrName =~ m/dashboard_tab([1-9][0-9]*)groups/ || $attrName =~ m/dashboard_tab([1-9][0-9]*)devices/) { + if ($aName =~ m/dashboard_tab([1-9][0-9]*)groups/ || $aName =~ m/dashboard_tab([1-9][0-9]*)devices/) { # add dynamic attributes addToDevAttrList($name, "dashboard_tab" . ($1 + 1) . "name"); addToDevAttrList($name, "dashboard_tab" . ($1 + 1) . "devices"); @@ -284,14 +289,31 @@ sub Dashboard_Attr($$$) { addToDevAttrList($name, "dashboard_tab" . ($1 + 1) . "backgroundimage"); } - if ($attrName =~ m/alias/) { + if ($aName =~ m/alias/) { # if an alias is set to the dashboard, replace the name shown in the left navigation by this alias my $url = '/dashboard/'.$name; - $data{FWEXT}{$url}{NAME} = $attrVal; + $data{FWEXT}{$url}{NAME} = $aVal; } - if ($attrName =~ m/dashboard_homeTab/) { - Dashboard_activateTab ($name,$attrVal); + if ($aName =~ m/dashboard_homeTab/) { + Dashboard_activateTab ($name,$aVal); + } + } + + if ($aName =~ m/dashboard_(.*)backgroundimage/) { + my $ct = ""; + if (!$1) { + $ct = "MAIN"; + } else { + $ct = $1; + } + delete $hash->{HELPER}{BIMG}{$ct}; + if($cmd eq "set") { + Dashboard_searchImage($name, "$FW_dir/images", $aVal,$ct); + if (!$hash->{HELPER}{BIMG}{$ct}) { + Log3 ($name, 2, "Dashboard $name - Background image file not found: $aVal"); + return "Background image file not found: $aVal"; + } } } @@ -408,8 +430,7 @@ sub Dashboard_SummaryFN ($$$$) { my $showfullsize = AttrVal($name, "dashboard_showfullsize", 0); my $flexible = AttrVal($name, "dashboard_flexible", 0); my $customcss = AttrVal($name, "dashboard_customcss", "none"); - my $backgroundimage = AttrVal($name, "dashboard_backgroundimage", ""); - my $row = AttrVal($name, "dashboard_row", "center"); + # my $row = AttrVal($name, "dashboard_row", "center"); my $debug = AttrVal($name, "dashboard_debug", "0"); my ($activetab,$tabname) = Dashboard_GetActiveTab($name,1); my $tabcount = Dashboard_GetTabCount($hash, 1); @@ -427,6 +448,9 @@ sub Dashboard_SummaryFN ($$$$) { readingsSingleUpdate($hash, "state", "Disabled", 0 ); return ""; } + + # Hintergrundbild bauen + my $bimg = $hash->{HELPER}{BIMG}{MAIN}?"url(/fhem/images/$hash->{HELPER}{BIMG}{MAIN})":"none"; if ($debug == 1) { $debugfield = "edit"; } if ($showtabs eq "tabs-and-buttonbar-at-the-top") { $showbuttonbar = "top"; } @@ -453,28 +477,44 @@ sub Dashboard_SummaryFN ($$$$) { ############################ Set FHEM url to avoid hardcoding it in javascript ############################ $ret .= ""; + ## Dashboard-Tab Details Tabelle (Stift rechte Seite im Kopf) $ret .= "
\n"; $ret .= "
\n"; - $ret .= "\n"; + + $ret .= "
\n"; $ret .= "\n"; - $ret .= "\n"; - $ret .= ""; - $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= "\n"; + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; # the method FW_multipleSelect seems not to be available any more in fhem #$ret .= ""; - $ret .= ""; - $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; + $ret .= ""; $ret .= "
Tabtitle:
Tabicon:
Tabtitle:
Tabicon:
Groups:
Groups:
Groups:
\n"; - $ret .= "
\n"; + $ret .= "
\n"; + $ret .= "
\n"; $ret .= "Comming soon"; $ret .= "
\n"; - $ret .= "
\n"; + + $ret .= "\n"; $ret .= "\n"; + ## Ende Dashboard-Tab Details Tabelle $ret .= "
$name
\n"; $ret .= "\n"; @@ -483,7 +523,10 @@ sub Dashboard_SummaryFN ($$$$) { $ret .= "\n"; $ret .= "\n"; $ret .= "\n"; - $ret .= "\n"; + $ret .= ""; + $ret .= "\n"; $ret .= "
\n"; + + ## Tab Content + $ret .= "
\n"; + $ret .= "
"; ########################### Dashboard Tab-Liste ############################################## $ret .= "
    \n"; @@ -498,7 +541,8 @@ sub Dashboard_SummaryFN ($$$$) { $ret .= Dashboard_BuildDashboardTab($t, $name); } } - $ret .= "
\n"; } else { @@ -522,22 +566,26 @@ return $ret; sub Dashboard_BuildDashboardTab ($$) { my ($t, $name) = @_; my $hash = $defs{$name}; + my $ret; my $id = $hash->{NR}; - my $colcount = AttrVal($name, 'dashboard_tab'.($t + 1).'colcount', AttrVal($name, "dashboard_colcount", 1)); - my $colwidths = AttrVal($name, 'dashboard_tab'.($t + 1).'rowcentercolwidth', AttrVal($name, "dashboard_rowcentercolwidth", 100)); + my $colcount = AttrVal($name, 'dashboard_tab'.($t+1).'colcount', AttrVal($name, "dashboard_colcount", 1)); + my $colwidths = AttrVal($name, 'dashboard_tab'.($t+1).'rowcentercolwidth', AttrVal($name, "dashboard_rowcentercolwidth", 100)); $colwidths =~ tr/,/:/; - my $backgroundimage = AttrVal($name, 'dashboard_tab'.($t + 1).'backgroundimage', ""); my $row = AttrVal($name, "dashboard_row", "center"); - my $tabgroups = AttrVal($name, "dashboard_tab".($t + 1)."groups", ""); - my $tabsortings = AttrVal($name, "dashboard_tab".($t + 1)."sorting", ""); - my $tabdevicegroups = AttrVal($name, "dashboard_tab".($t + 1)."devices", ""); + my $tabgroups = AttrVal($name, "dashboard_tab".($t+1)."groups", ""); + my $tabsortings = AttrVal($name, "dashboard_tab".($t+1)."sorting", ""); + my $tabdevicegroups = AttrVal($name, "dashboard_tab".($t+1)."devices", ""); my $tabcount = Dashboard_GetTabCount($hash, 1); unless ($tabgroups || $tabdevicegroups) { readingsSingleUpdate($hash, "state", "No Groups or devices set", 0); return ""; } + + # Hintergrundbild bauen + my $ct = "tab".($t+1); + my $bimg = $hash->{HELPER}{BIMG}{$ct}?"url(/fhem/images/$hash->{HELPER}{BIMG}{$ct})":"none"; my @temptabdevicegroup = split(' ', $tabdevicegroups); my @tabdevicegroups = (); @@ -593,9 +641,9 @@ sub Dashboard_BuildDashboardTab ($$) { } } - my $ret = "
\n"; - $ret .= " \n"; - $ret .= "
\n"; + $ret .= "\n"; + $ret .= "\n"; + $ret .= "\n"; return $ret; } @@ -626,9 +674,11 @@ sub Dashboard_BuildDashboardTopRow ($$$$$) { $ret .= "\n"; $ret .= "
\n"; - $ret .= "
\n"; + + $ret .= "
\n"; $ret .= Dashboard_BuildGroupWidgets($name,$t,"100",$id,$devicegroups,$groupsorting); - $ret .= "
\n"; + $ret .= "
\n"; + $ret .= "
\n"; $ret .= "\n"; @@ -646,7 +696,7 @@ sub Dashboard_BuildDashboardCenterRow ($$$$$$) { my $currentcol = $colcount; my $maxcolindex = $colcount - 1; - my $replace = "t" . $t . "c" . $maxcolindex . ","; + my $replace = "t".$t."c".$maxcolindex.","; # replace all sortings referencing not existing columns # this does only work if there is no empty column inbetween @@ -657,9 +707,9 @@ sub Dashboard_BuildDashboardCenterRow ($$$$$$) { } for (my $i=0;$i<$colcount;$i++){ - $ret .= "
\n"; + $ret .= "
\n"; $ret .= Dashboard_BuildGroupWidgets($name,$t,$i,$id,$devicegroups,$groupsorting); - $ret .= "
\n"; + $ret .= "
\n"; } $ret .= "\n"; $ret .= "\n"; @@ -674,10 +724,11 @@ sub Dashboard_BuildDashboardBottomRow ($$$$$) { my ($name,$t,$id, $devicegroups, $groupsorting) = @_; my $ret; $ret .= "\n"; - $ret .= "
\n"; - $ret .= "
\n"; + + $ret .= "
\n"; $ret .= Dashboard_BuildGroupWidgets($name,$t,"200",$id,$devicegroups,$groupsorting); - $ret .= "
\n"; + $ret .= "
\n"; + $ret .= "
\n"; $ret .= "\n"; @@ -784,7 +835,7 @@ sub Dashboard_BuildGroup ($$$$$$) { $ret .= "
\n"; $ret .= "
\n"; - if ($groupname && $groupname ne $devices) { + if ($groupname && $groupname ne $devices && !AttrVal($name,"dashboard_hideGroupHeader",0)) { $ret .= "
"; if ($icon) { $ret.= FW_makeImage($icon,$icon,"dashboard_group_icon"); @@ -1138,6 +1189,30 @@ sub Dashboard_Escape($) { return $a; } +###################################################################################### +# angegebenes $file im $dir und Unterverzeichnissen suchen +# und mit Pfad ab ".../images/" in $ct speichern wenn gefunden +###################################################################################### +sub Dashboard_searchImage($$$$) { + my ($name,$dir,$file,$ct) = @_; + my $hash = $defs{$name}; + + my ($t,$im); + opendir(DIR, $dir); + my(@files) = grep {!/^\.\.?$/ } readdir(DIR); + closedir(DIR); + foreach (@files) { + if (-d ($t = "$dir/$_")) { # -d returns true if the following string is a directory. + Dashboard_searchImage($name,$t,$file,$ct); + } else { + next if ($_ ne $file); + $im = (split("images\/", $dir."/".$_))[1]; + $hash->{HELPER}{BIMG}{$ct} = $im; # Ergebnisfile in Container speichern wenn gefunden + Log3 ($name, 5, "Dashboard $name - Background image file found in: $dir/$_"); + } + } +} + 1; =pod @@ -1242,10 +1317,30 @@ return $a;
  • dashboard_backgroundimage
    - Displays a background image for the complete dashboard. The image is not stretched in any way so the size should - match/extend the dashboard height/width. + Displays a background image for the complete dashboard. The image is not stretched in any way. So the size should + match/extend the dashboard height/width. The relative path to "./www/images" has to be used.

    + + Example
    + attr dashboard_backgroundimage dashboard/cam_video.PNG
    + # File ./www/images/dashboard/cam_video.PNG is shown
    + attr dashboard_backgroundimage cam_video.PNG
    + # File ./www/images/cam_video.PNG is shown

  • + +
  • dashboard_backgroundimage
    + Displays a background image for the complete dashboard. The image is not stretched in any way. So the size should + match/extend the dashboard height/width. Only the filename has to be set.
    + The file must be at any location below the directory "./www/images/".
    + Suggestion: Create the directory "./www/images/dashboard" and put the image file into. +

    + + Example
    + attr dashboard_backgroundimage cam_video.PNG
    + +
  • +
    +
  • dashboard_colcount
    Number of columns in which the groups can be displayed. Nevertheless, it is possible to have multiple groups
    @@ -1256,7 +1351,7 @@ return $a;
  • dashboard_debug
    - Show Hiddenfields. Only for Maintainer's use.
    + Show Hiddenfields. Only for Maintainer's use.
    Default: 0

  • @@ -1265,24 +1360,32 @@ return $a;
  • dashboard_flexible
    If set to a value > 0, the widgets are not positioned in columns any more but can be moved freely to any position in the tab.
    - The value for this parameter also defines the grid, in which the position "snaps in". + The value for this parameter also defines the grid, in which the position "snaps in".
    Default: 0

  • + +
  • dashboard_hideGroupHeader
    + If set, the header containing the group name and group icon above the pictured FHEM-group (see also dashboard_tab1groups) is hidden.
    + Default: 0 +
  • +
    +
  • dashboard_homeTab
    - Specifies which tab is activated. If it isn't set, the last selected tab will also be the active tab. (Default: 1) + Specifies which tab is activated. If it isn't set, the last selected tab will also be the active tab.
    + Default: 1

  • dashboard_row
    - To select which rows are displayed. top only; center only; bottom only; top and center; center and bottom; top,center and bottom.
    + To select which rows are displayed. top only; center only; bottom only; top and center; center and bottom; top,center and bottom.
    Default: center

  • dashboard_rowbottomheight
    - Height of the bottom row in which the groups may be positioned.
    + Height of the bottom row in which the groups may be positioned.
    Default: 250

  • @@ -1300,7 +1403,7 @@ return $a; specifies the width of the first column, the second value of the width of the second column, etc. Is the sum of the width greater than 100 it is reduced. If more columns defined as widths the missing widths are determined by the difference to 100. However, are less - columns are defined as the values ​​of ignores the excess values​​.
    + columns are defined as the values ​​of ignores the excess values​​.
    Default: 100
    @@ -1312,31 +1415,55 @@ return $a;
  • dashboard_showfullsize
    - Hide FHEMWEB Roomliste (complete left side) and Page Header if Value is 1.
    + Hide FHEMWEB Roomliste (complete left side) and Page Header if Value is 1.
    Default: 0

  • dashboard_showtabs
    - Displays the Tabs/Buttonbar on top or bottom, or hides them. If the Buttonbar is hidden lockstate is "lock" is used.
    + Displays the Tabs/Buttonbar on top or bottom, or hides them. If the Buttonbar is hidden lockstate is "lock" is used.
    Default: tabs-and-buttonbar-at-the-top

  • dashboard_showtogglebuttons
    - Displays a Toogle Button on each Group do collapse.
    + Displays a Toogle Button on each Group do collapse.
    Default: 0

  • - -
  • dashboard_tab1name
    - Title of Tab. (also valid for further dashboard_tabXname) -

  • + +
  • dashboard_tab1backgroundimage
    + Shows a background image for the tab. (also valid for further dashboard_tabXbackgroundimage)
    + The image is not stretched in any way, it should therefore match the tab size or extend it. + Only the filename has to be set.
    + The file must be at any location below the directory "./www/images/".
    + Suggestion: Create the directory "./www/images/dashboard" and put the image file into. +

    + + Example
    + attr dashboard_tab1backgroundimage cam_video.PNG
    + +
  • +
    - -
  • dashboard_tab1sorting
    - Contains the position of each group in Tab. (also valid for further dashboard_tabXsorting)
    - Value is written by the "Set" button. It is not recommended to take manual changes. + +
  • dashboard_tab1colcount
    + Number of columns for a specific tab in which the groups can be displayed. (also valid for further dashboard_tabXcolcount)
    + Nevertheless, it is possible to have multiple groups to be positioned in a column next to each other. + This depends on the width of columns and groups.
    + Default: <dashboard_colcount> +

  • + + +
  • dashboard_tab1devices
    + DevSpec list of devices that should appear in the tab. (also valid for further dashboard_tabXdevices)
    + The format is:

    +
      + GROUPNAME:devspec1,devspec2,...,devspecX:ICONNAME

      +
    + ICONNAME is optional. Also GROUPNAME is optional. In case of missing GROUPNAME, the matching devices are + not grouped, but shown as separate widgets without titles. + For further details on the DevSpec format see DevSpec.

  • @@ -1355,18 +1482,6 @@ return $a; .*Light.* to show all groups that contain the string "Light"
    - -
  • dashboard_tab1devices
    - DevSpec list of devices that should appear in the tab. (also valid for further dashboard_tabXdevices)
    - The format is:

    -
      - GROUPNAME:devspec1,devspec2,...,devspecX:ICONNAME

      -
    - ICONNAME is optional. Also GROUPNAME is optional. In case of missing GROUPNAME, the matching devices are - not grouped, but shown as separate widgets without titles. - For further details on the DevSpec format see DevSpec. -

  • -
  • dashboard_tab1icon
    Set the icon for a Tab. (also valid for further dashboard_tabXicon)
    @@ -1374,19 +1489,16 @@ return $a; referencing an SVG icon, then you can use the @colorname suffix to color the image.

  • - -
  • dashboard_tab1colcount
    - Number of columns for a specific tab in which the groups can be displayed. (also valid for further dashboard_tabXcolcount)
    - Nevertheless, it is possible to have multiple groups to be positioned in a column next to each other. - This depends on the width of columns and groups.
    - Default: <dashboard_colcount> + +
  • dashboard_tab1name
    + Title of Tab. (also valid for further dashboard_tabXname)

  • - - -
  • dashboard_tab1backgroundimage
    - Shows a background image for the tab. (also valid for further dashboard_tabXbackgroundimage)
    - The image is not stretched in any way, it should therefore match the tab size or extend it. -

  • + + +
  • dashboard_tab1sorting
    + Contains the position of each group in Tab. (also valid for further dashboard_tabXsorting)
    + Value is written by the "Set" button. It is not recommended to take manual changes. +

  • dashboard_noLinks
    @@ -1406,14 +1518,14 @@ return $a;
  • are positioning to the tab specified by command "set <name> activateTab"

  • - (default: all) + Default: all

  • dashboard_width
    - To determine the Dashboardwidth. The value can be specified, or an absolute width value (eg 1200) in pixels in% (eg 80%).
    + To determine the Dashboardwidth. The value can be specified, or an absolute width value (eg 1200) in pixels in% (eg 80%).
    Default: 100%

  • @@ -1517,8 +1629,15 @@ return $a;
  • dashboard_backgroundimage
    - Zeig in Hintergrundbild im Dashboard an. Das Bild wird nicht gestreckt, es sollte daher auf die Größe des Dashboards - passen oder diese überschreiten. + Zeigt ein Hintergrundbild im Dashboard an. Das Bild wird nicht gestreckt, es sollte daher auf die Größe des Dashboards + passen oder diese überschreiten. Es ist nur der Filename anzugeben.
    + Das File muss sich an beliebiger Stelle unterhalb des Verzeichnisses "./www/images/" befinden.
    + Empfehlung: Das Verzeichnis "./www/images/dashboard" anlegen und das Bildfile in diesem Verzeichnis ablegen. +

    + + Beispiel
    + attr dashboard_backgroundimage cam_video.PNG
    +

  • @@ -1527,43 +1646,51 @@ return $a; Die Anzahl der Spalten in der Gruppen dargestellt werden können. Dennoch ist es möglich, mehrere Gruppen
    in einer Spalte nebeneinander zu positionieren. Dies ist abhängig von der Breite der Spalten und Gruppen.
    Gilt nur für die mittlere Spalte!
    - Standard: 1 + Default: 1
  • dashboard_debug
    - Zeigt Debug-Felder an. Sollte nicht gesetzt werden!
    - Standard: 0 + Zeigt Debug-Felder an. Sollte nicht gesetzt werden!
    + Default: 0

  • dashboard_flexible
    Hat dieser Parameter einen Wert > 0, dann können die Widgets in den Tabs frei positioniert werden und hängen nicht - mehr an den Spalten fest. Der Wert gibt ebenfalls das Raster an, in dem die Positionierung "zu schnappt". - Standard: 0 + mehr an den Spalten fest. Der Wert gibt ebenfalls das Raster an, in dem die Positionierung "zuschnappt".
    + Default: 0 +
  • +
    + + +
  • dashboard_hideGroupHeader
    + Wenn gesetzt, wird der Kopf mit Gruppenname und -icon der dargestellten FHEM-Gruppe (siehe dashboard_tab1groups) verborgen.
    + Default: 0

  • dashboard_homeTab
    - Legt das aktuell aktivierte Tab fest. Wenn nicht gesetzt, wird das zuletzt gewählte Tab das aktive Tab. (Default: 1) + Legt das aktuell aktivierte Tab fest. Wenn nicht gesetzt, wird das zuletzt gewählte Tab das aktive Tab.
    + Default: 1

  • dashboard_row
    Auswahl welche Zeilen angezeigt werden sollen. top (nur Oben), center (nur Mitte), bottom (nur Unten) und den - Kombinationen daraus.
    - Standard: center + Kombinationen daraus.
    + Default: center

  • dashboard_rowcenterheight
    Höhe der mittleren Zeile, in der die Gruppen angeordnet werden.
    - Standard: 400 + Default: 400

  • @@ -1573,28 +1700,28 @@ return $a; Die Werte sind durch ein Komma (ohne Leerzeichen) zu trennen. Jeder Wert bestimmt die Spaltenbreite in %! Der erste Wert gibt die Breite der ersten Spalte an, der zweite Wert die Breite der zweiten Spalte usw. Ist die Summe der Breite größer als 100 werden die Spaltenbreiten reduziert. Sind mehr Spalten als Breiten definiert werden die fehlenden Breiten um die Differenz zu 100 festgelegt. Sind hingegen weniger Spalten als Werte definiert werden - die überschüssigen Werte ignoriert.
    - Standard: 100 + die überschüssigen Werte ignoriert.
    + Default: 100
  • dashboard_rowtopheight
    Höhe der oberen Zeile, in der die Gruppen angeordnet werden.
    - Standard: 250 + Default: 250

  • dashboard_rowbottomheight
    - Höhe der unteren Zeile, in der die Gruppen angeordnet werden.
    - Standard: 250 + Höhe der unteren Zeile, in der die Gruppen angeordnet werden.
    + Default: 250

  • dashboard_showfullsize
    Blendet die FHEMWEB Raumliste (kompleter linker Bereich der Seite) und den oberen Bereich von FHEMWEB aus wenn der - Wert auf 1 gesetzt ist.
    + Wert auf 1 gesetzt ist.
    Default: 0

  • @@ -1602,29 +1729,54 @@ return $a;
  • dashboard_showtabs
    Zeigt die Tabs/Schalterleiste des Dashboards oben oder unten an, oder blendet diese aus. Wenn die Schalterleiste - ausgeblendet wird ist das Dashboard gespert.
    - Standard: tabs-and-buttonbar-at-the-top + ausgeblendet wird ist das Dashboard gespert.
    + Default: tabs-and-buttonbar-at-the-top

  • dashboard_showtogglebuttons
    - Zeigt eine Schaltfläche in jeder Gruppe mit der man diese auf- und zuklappen kann.
    - Standard: 0 + Zeigt eine Schaltfläche in jeder Gruppe mit der man diese auf- und zuklappen kann.
    + Default: 0

  • - -
  • dashboard_tab1name
    - Titel des Tab. (gilt ebenfalls für weitere dashboard_tabXname) + +
  • dashboard_tab1backgroundimage
    + Zeigt ein Hintergrundbild für den Tab an. (gilt ebenfalls für weitere dashboard_tabXbackgroundimage)
    + Das Bild wird nicht gestreckt, es sollte also auf die Größe des Tabs passen oder diese überschreiten. Es ist nur der + Filename anzugeben.
    + Das File muss sich an beliebiger Stelle unterhalb des Verzeichnisses "./www/images/" befinden.
    + Empfehlung: Das Verzeichnis "./www/images/dashboard" anlegen und das Bildfile in diesem Verzeichnis ablegen. +

    + + Beispiel
    + attr dashboard_tab1backgroundimage cam_video.PNG
    +
  • -
    +
    - -
  • dashboard_tab1sorting
    - Enthält die Positionierung jeder Gruppe im Tab. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht - empfohlen dieses Attribut manuell zu ändern. (gilt ebenfalls für weitere dashboard_tabXsorting) + +
  • dashboard_tab1colcount
    + Die Anzahl der Spalten im Tab in der Gruppen dargestellt werden können. (gilt ebenfalls für weitere dashboard_tabXcolcount)
    + Dennoch ist es möglich, mehrere Gruppen in einer Spalte nebeneinander zu positionieren. Dies ist abhängig von der Breite + der Spalten und Gruppen.
    + Gilt nur für die mittlere Spalte!
    + Default: <dashboard_colcount>
  • -
    +
    + + +
  • dashboard_tab1devices
    + DevSpec Liste von Geräten, die im Tab angezeigt werden sollen. (gilt ebenfalls für weitere dashboard_tabXdevices)
    + Das Format ist:

    +
      + GROUPNAME:devspec1,devspec2,...,devspecX:ICONNAME

      +
    + ICONNAME ist optional. Auch GROUPNAME muss nicht vorhanden sein. Fehlt GROUPNAME, werden die angegebenen + Geräte nicht gruppiert, sondern als einzelne Widgets im Tab angezeigt. Für weitere Details bezüglich DevSpec: + DevSpec +
  • +
  • dashboard_tab1groups
    @@ -1642,44 +1794,29 @@ return $a; Beispiel:
    .*Licht.* zeigt alle Gruppen an, die das Wort "Licht" im Namen haben.
  • -
    - - -
  • dashboard_tab1devices
    - DevSpec Liste von Geräten, die im Tab angezeigt werden sollen. (gilt ebenfalls für weitere dashboard_tabXdevices)
    - Das Format ist:

    -
      - GROUPNAME:devspec1,devspec2,...,devspecX:ICONNAME

      -
    - ICONNAME ist optional. Auch GROUPNAME muss nicht vorhanden sein. Fehlt GROUPNAME, werden die angegebenen - Geräte nicht gruppiert, sondern als einzelne Widgets im Tab angezeigt. Für weitere Details bezüglich DevSpec: - DevSpec -
  • -
    - - -
  • dashboard_tabXicon
    - Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es +
    + + +
  • dashboard_tab1icon
    + Zeigt am Tab ein Icon an (gilt ebenfalls für weitere dashboard_tabXicon). + Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname für die Farbe des Icons angegeben werden.

  • - -
  • dashboard_tab1colcount
    - Die Anzahl der Spalten im Tab in der Gruppen dargestellt werden können. (gilt ebenfalls für weitere dashboard_tabXcolcount)
    - Dennoch ist es möglich, mehrere Gruppen in einer Spalte nebeneinander zu positionieren. Dies ist abhängig von der Breite - der Spalten und Gruppen.
    - Gilt nur für die mittlere Spalte!
    - Standard: <dashboard_colcount> + +
  • dashboard_tab1name
    + Titel des Tab. (gilt ebenfalls für weitere dashboard_tabXname)
  • -
    +
    - -
  • dashboard_tab1backgroundimage
    - Zeigt ein Hintergrundbild für den Tab an. (gilt ebenfalls für weitere dashboard_tabXbackgroundimage)
    - Das Bild wird nicht gestreckt, es sollte also auf die Größe des Tabs passen oder diese überschreiten. + +
  • dashboard_tab1sorting
    + Enthält die Positionierung jeder Gruppe im Tab (gilt ebenfalls für weitere dashboard_tabXsorting).
    + Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht + empfohlen dieses Attribut manuell zu ändern.
  • -
    +
  • dashboard_noLinks
    @@ -1700,7 +1837,7 @@ return $a;
  • beim Ausführen von "set <name> activateTab" auf diesen Tab im Dashboard positionieren

  • - (default: alle) + Default: alle

    @@ -1708,8 +1845,8 @@ return $a;
  • dashboard_width
    Zum bestimmen der Dashboardbreite. Der Wert kann in % (z.B. 80%) angegeben werden oder als absolute Breite (z.B. 1200) - in Pixel.
    - Standard: 100% + in Pixel.
    + Default: 100%