diff --git a/fhem/CHANGED b/fhem/CHANGED
index d9cb998e0..2e04ff7ce 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: 33_readingsGroup: added german commandref (by HomeAuto_User)
- feature: 10_pilight_ctrl: support bh1750 illuminance sensor
- feature: 71_YAMAHA_NP: Added player readings support for
airplay and spotify inputs.
diff --git a/fhem/FHEM/33_readingsGroup.pm b/fhem/FHEM/33_readingsGroup.pm
index 24b20a500..c705e76bb 100644
--- a/fhem/FHEM/33_readingsGroup.pm
+++ b/fhem/FHEM/33_readingsGroup.pm
@@ -1700,7 +1700,7 @@ readingsGroup_Attr($$$;$)
=pod
=item helper
=item summary display a formated collection of readings from devices
-=item summary_DE Stellt eine formatierte Readings von Geräte dar
+=item summary_DE Stellt eine formatierte Darstellung aus Readings von Geräte bereit
=begin html
@@ -1964,4 +1964,249 @@ readingsGroup_Attr($$$;$)
=end html
+=begin html_DE
+
+
+
readingsGroup
+
+ Zeigt eine Sammlung von Messwerten von einem oder mehreren Geräten an.
+
+
+
+ Define
+
+ define <name> readingsGroup <device>[:regex] [<device-2>[:regex-2]] ... [<device-n>[:regex-n]]
+
+
+ Anmerkungen:
+
+ - <device> kann die Form INTERNAL=VALUE haben, wobei INTERNAL der Name eines internen Wertes ist und VALUE ein Regex.
+ - <device> kann die Form ATTRIBUTE&VALUE haben, wobei ATTRIBUTE der Name eines Attributs ist und VALUE ein Regex.
+ - <device> kann die Form <STRING> oder <{perl}> haben, wobei STRING oder die von Perl zurückgegebene Zeichenfolge als Zeile in die Readings List eingefügt wird. Wird übersprungen, wenn STRING undef ist.
+ - <device> kann ein devspec sein (siehe devspec) mit mindestens einem FILTER-Ausdruck sein.
+ - Wenn Regex eine Komma separarierte Liste ist, werden die Reading-Values in einer einzelnen Zeile angezeigt.
+ - Wenn Regex mit einem "+" beginnt, wird es mit den internen Werten (Internals) des Geräts anstelle der Readings verglichen.
+ - Wenn Regex mit einem '?' beginnt, wird es mit den Attributen des Geräts verglichen und nicht mit den Werten (Readings) verglichen.
+ - Wenn Regex mit einem '!' beginnt, wird die Anzeige des Wertes erzwungen, auch wenn kein Reading mit diesem Namen verfügbar ist.
+ - Wenn Regex mit einem '$' beginnt, ist die Berechnung mit Wert-Spalten und Zeilen möglich.
+ - Die folgenden "set magic" Präfixe und Suffixe können mit Regex verwendet werden:
+
+ - Sie können anstelle von + und ? ein Präfix i :, r: oder a: verwenden. Analog zur devspec-Filterung.
+ - Der Suffix :d ruft die erste Nummer ab.
+ - Der Suffix :i ruft den ganzzahligen Teil der ersten Zahl ab.
+ - Der Suffix :r<n> ruft die erste Zahl ab und rundet sie auf <n> Nachkommastellen ab. Wenn fehlt, wird es auf eine Dezimalstelle gerundet.
+ - Der Suffix :t gibt den Zeitstempel zurück (funktioniert nur mit Readings).
+ - Der Suffix :sec gibt die Anzahl der Sekunden seit dem das Reading gesetzt wurde zurück. Wahrscheinlich nicht nützlich mit readingsGroups.
+
+ - Regex kann von der Form <regex>@device sein, um Readings von einem anderen Gerät zu verwenden.
+ Wenn der Gerätename mit einem '!' beginnt, wird die Anzeige deaktiviert. Verwenden Sie in Verbindung mit ! den Reading-Name.
+ - Regex kann die Form <regex>@{perl} haben, um Readings von einem anderen Gerät zu verwenden.
+ - Regex kann von der Form <STRING> oder <{perl}[@readings]> sein, wobei STRING oder die von Perl zurückgegebene Zeichenfolge als Reading eingefügt wird, oder:
+
- das Element wird übersprungen, wenn STRING undef ist
+ - wenn STRING br ist, wird eine neue Zeile gestartet
+ - wenn STRING hr ist, wird eine horizontale Linie eingefügt
+ - wenn STRING tfoot ist, wird der Tabellenfuß gestartet
+ - wenn STRING die Form hat, %ICON[%CMD] ICON wird als Name eines Symbols anstelle von Text und CMD als der Befehl verwendet, der ausgeführt werden soll, wenn auf das Symbol geklickt wird. Siehe auch die Befehlsattribute.
+ Wenn Readings aktualisiert werden, wird der Perl-Ausdruck bei Longpoll-Aktualisierungen erneut ausgewertet.
+ - Wenn der erste Regex '@<index>' ist, gibt es den Index der folgenden Regex an, mit dem die Messwerte gruppiert werden sollen. Wenn Erfassungsgruppen verwendet werden, können sie durch #<number> refferenziert werden. z.Bsp:
+ <IP-Adress><Hostname><MAC><Vendor>
+ nmap:@2,<#1>,(.*)_hostname,#1_macAddress,#1_macVendor
+ - Für interne Werte (Internals) und Attribute ist longpoll update nicht möglich. Aktualisieren Sie die Seite, um die Werte zu aktualisieren.
+ - Der Ausdruck <{perl}> ist auf Ausdrücke ohne Leerzeichen beschränkt. Es ist am besten, eine kleine Sub in 99_myUtils.pm aufzurufen, anstatt einen complexen Ausdruck im Define zu haben.
+
+
+ Beispiele:
+
+
+ define batteries readingsGroup .*:battery
+
+ define temperatures readingsGroup s300th.*:temperature
+ define temperatures readingsGroup TYPE=CUL_WS:temperature
+
+ define culRSSI readingsGroup cul_RSSI=.*:+cul_RSSI
+
+ define heizung readingsGroup t1:temperature t2:temperature t3:temperature
+ attr heizung notime 1
+ attr heizung mapping {'t1.temperature' => 'Vorlauf', 't2.temperature' => 'Rücklauf', 't3.temperature' => 'Zirkulation'}
+ attr heizung style style="font-size:20px"
+
+ define systemStatus readingsGroup sysstat
+ attr systemStatus notime 1
+ attr systemStatus nostate 1
+ attr systemStatus mapping {'load' => 'Systemauslastung', 'temperature' => 'Systemtemperatur in °C'}
+
+ define Verbrauch readingsGroup TYPE=PCA301:state,power,consumption
+ attr Verbrauch mapping %ALIAS
+ attr Verbrauch nameStyle style="font-weight:bold"
+ attr Verbrauch style style="font-size:20px"
+ attr Verbrauch valueFormat {power => "%.1f W", consumption => "%.2f kWh"}
+ attr Verbrauch valueIcon { state => '%devStateIcon' }
+ attr Verbrauch valueStyle {($READING eq "power" && $VALUE > 150)?'style="color:red"':'style="color:green"'}
+
+ define rg_battery readingsGroup TYPE=LaCrosse:[Bb]attery
+ attr rg_battery alias Batteriestatus
+ attr rg_battery commands { "battery.low" => "set %DEVICE replaceBatteryForSec 60" }
+ attr rg_battery valueIcon {'battery.ok' => 'batterie', 'battery.low' => 'batterie@red'}
+
+ define rgMediaPlayer readingsGroup myMediaPlayer:currentTitle,<>,totaltime,
,currentAlbum,<>,currentArtist,
,volume,<{if(ReadingsVal($DEVICE,"playStatus","")eq"paused"){"%rc_PLAY%set+$DEVICE+play"}else{"%rc_PAUSE%set+$DEVICE+pause"}}@playStatus>,playStatus
+ attr rgMediaPlayer commands { "playStatus.paused" => "set %DEVICE play", "playStatus.playing" => "set %DEVICE pause" }
+ attr rgMediaPlayer mapping
+ attr rgMediaPlayer notime 1
+ attr rgMediaPlayer valueFormat { "volume" => "Volume: %i" }
+ #attr rgMediaPlayer valueIcon { "playStatus.paused" => "rc_PLAY", "playStatus.playing" => "rc_PAUSE" }
+
+
+
+
+
+ Set
+
+ - hide
+ Alle sichtbaren Instanzen dieser ReadingsGroup werden ausgeblendet
+ - show
+ Zeigt alle sichtbaren Instanzen dieser ReadingsGroup an
+ - toggle
+ Schaltet den versteckten / angezeigten Zustand aller sichtbaren Instanzen dieser ReadingsGroup an.
+ - toggle2
+ schaltet den erweiterten / kollabierten Zustand aller sichtbaren Instanzen dieser ReadingsGroup an.
+
+
+
+ Get
+
+
+
+ Attribute
+
+ - alwaysTrigger
+ 1 -> alwaysTrigger Ereignisse aktualisieren auch wenn nicht sichtbar.
+ 2 -> trigger Ereignisse für berechnete Werte.
+ - disable
+ 1 -> Deaktivieren der Benachrichtigung Verarbeitung und Longpoll-Updates. Hinweis: Dadurch wird auch die Umbenennung und Löschbehandlung deaktiviert.
+ 2 -> Deaktivieren der HTML-Tabellenerstellung
+ 3 -> Deaktivieren der HTML-Erstellung vollständig
+ - sortDevices
+ 1 -> Sortieren der Geräteliste alphabetisch. Verwenden Sie das erste von sortby oder alias oder name, das für jedes Gerät definiert ist.
+ - noheading
+ Wenn sie auf 1 gesetzt ist, hat die Readings-Tabelle keine Überschrift.
+ - nolinks
+ Deaktiviert die HTML-Links von der Überschrift und den Readings-Namen.
+ - nostate
+ Wenn der Wert 1 ist, wird der Status nicht berücksichtigt.
+ - nonames
+ Wenn der Wert auf 1 gesetzt ist, wird der Readings-Name / Zeilentitel nicht angezeigt.
+ - notime
+ Wenn der Wert auf 1 gesetzt, wird der Readings-Timestamp nicht angezeigt.
+ - mapping
+ Kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zurückgibt, der den Reading-Name dem angezeigten Namen zuordnet.
+ Der Schlüssel kann entweder der Name des Readings oder <device>.<reading> oder <reading>.<value> oder <device>.<reading>.<value> sein.
+ %DEVICE, %ALIAS, %ROOM, %GROUP, %ROW und %READING werden durch den Gerätenamen, Gerätealias, Raumattribut ersetzt. Sie können diesen Keywords auch ein Präfix voranstellen $ anstatt von %. Beispiele:
+ attr temperatures mapping $DEVICE-$READING
+ attr temperatures mapping {temperature => "%DEVICE Temperatur"}
+
+ - separator
+ Das zu verwendende Trennzeichen zwischen dem Gerätealias und dem Reading-Namen, wenn keine Zuordnung angegeben ist, standardgemäß ':'
+ Ein Leerzeichen wird so dargestellt
+ - setList
+ Eine durch Leerzeichen getrennte Liste von Befehlen, die zurückgegeben werden "set name ?",
+ Das FHEMWEB-Frontend kann also ein Dropdown-Menü erstellen und An / Aus-Schalter anbieten.
+ Set-Befehle, die nicht in dieser Liste enthalten sind, werden zurückgewiesen.
+ - setFn
+ Perl-Ausdruck, der für die Befehle aus der setList ausgeführt wird. Es hat Zugriff auf $CMD und $ARGS.
+ - style
+ Geben Sie einen HTML-Stil für die Readings-Tabelle an, z.Bsp:
+ attr temperatures style style="font-size:20px"
+ - cellStyle
+ Geben Sie einen HTML-Stil für eine Zelle der Readings-Tabelle an. Normale Zeilen und Spalten werden gezählt beginnend mit 1,
+ Die Zeilenüberschriften beginnt mit der Spaltennummer 0. Perl-Code hat Zugriff auf $ROW und $COLUMN. Schlüssel für Hash-Lookup können sein:
+ r:#, c:# oder r:#,c:# , z.Bsp:
+ attr temperatures cellStyle { "c:0" => 'style="text-align:right"' }
+ - nameStyle
+ Geben Sie einen HTML-Stil für die Readings-Namen an, z.Bsp:
+ attr temperatures nameStyle style="font-weight:bold"
+ - valueStyle
+ Geben Sie einen HTML-Stil für die Readings-Werte an, z.Bsp:
+ attr temperatures valueStyle style="text-align:right"
+ - valueColumn
+ Geben Sie die Mindestspalte an, in der ein Messwert angezeigt werden soll. z.Bsp:
+ attr temperatures valueColumn { temperature => 2 }
+ - valueColumns
+ Geben Sie einen HTML-Colspan für die Readings-Werte an, z.Bsp:
+ attr wzReceiverRG valueColumns { eventdescription => 'colspan="4"' }
+ - valueFormat
+ Geben Sie eine Sprintf-Stilformat-Zeichenfolge an, die zum Anzeigen der Readings-Werte verwendet wird. Wenn die Formatzeichenfolge undef ist
+ wird dieser Messwert übersprungen. Es kann als String angegeben werden, ein Perl-Ausdruck, der einen Hash- oder Perl-Ausdruck zurückgibt, der einen String zurückgibt, z.Bsp:
+ attr temperatures valueFormat %.1f °C
+ attr temperatures valueFormat { temperature => "%.1f °C", humidity => "%i %" }
+ attr temperatures valueFormat { ($READING eq 'temperature')?"%.1f °C":undef }
+ - valuePrefix
+ Text, der dem Readings-Wert vorangestellt wird
+ - valueSuffix
+ Text, der nach dem Readings-Wert angehängt wird
+ attr temperatures valueFormat { temperature => "%.1f", humidity => "%i" }
+ attr temperatures valueSuffix { temperature => "°C", humidity => " %" }
+ - nameIcon
+ Geben Sie das Symbol an, das anstelle des Readings-Name verwendet werden soll. Es kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zurückgibt, der dem Readings-Name den Icon-Namen zuordnet. z.Bsp:
+ attr devices nameIcon $DEVICE
+ - valueIcon
+ Geben Sie ein Symbol an, das anstelle des Readings-Wert verwendet werden soll. Es kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zurückgibt, der dem Readings-Wert dem Symbolnamen zuordnet. z.Bsp:
+ attr devices valueIcon $VALUE
+ attr devices valueIcon {state => '%VALUE'}
+ attr devices valueIcon {state => '%devStateIcon'}
+ attr rgMediaPlayer valueIcon { "playStatus.paused" => "rc_PLAY", "playStatus.playing" => "rc_PAUSE" }
+ - commands
+ Kann auf verschiedene Arten verwendet werden:
+
+ - Um ein Reading oder ein Symbol anklickbar zu machen, indem Sie direkt den Befehl angeben, der ausgeführt werden soll. z.Bsp:
+ attr rgMediaPlayer commands { "playStatus.paused" => "set %DEVICE play", "playStatus.playing" => "set %DEVICE pause" }
+ - Wenn der zugeordnete Befehl die Form <command>:[<modifier>] hat, wird das normale FHEMWEB webCmd-Widget für für diesen commands verwendet. z.Bsp:
+ attr rgMediaPlayer commands { volume => "volume:slider,0,1,100" }
+ attr lights commands { pct => "pct:", dim => "dim:" }
+ - commands können für Attribute verwendet werden. z.Bsp:
+ attr commands { disable => "disable:" }
+
+ - visibility
+ Wenn sie auf hidden oder hideable eingestellt ist, wird eine kleine Schaltfläche links neben dem Namen der Readings-Group angezeigt, um den Inhalt der Readings-Group zu erweitern / auszublenden. Wenn eine Readings-Group erweitert wird, werden alle anderen Gruppen derselben Gruppe ausgeblendet.
+
+ hidden -> Standardmäßig ist hidden aktiv, kann jedoch erweitert werden.
+ hideable -> Standardmäßig ist hideable aktiv, kann jedoch ausgeblendet werden.
+
+ Wenn diese Option auf "collapsed" oder "collapsible" eingestellt ist, erkennt readingsGroup die Specials <->,<+> und <+-> als die ersten Elemente von
+ eine Linie, um dieser Linie ein + oder - Symbol hinzuzufügen. Durch Klicken auf das + oder - Symbol wird zwischen erweitertem und reduziertem Zustand umgeschaltet. Wenn eine Readings-Group erweitert wird, werden alle anderen Gruppen in der gleichen Gruppe ausgeblendet.
+
+ - -> Die Linie wird im expandierten Zustand sichtbar sein.
+ + -> Die Linie wird im zusammengefalteten Zustand angezeigt.
+ +- -> Die Linie wird in beiden Zuständen sichtbar sein.
+
+ collapsed -> Der Standardstatus ist reduziert, kann jedoch erweitert werden.
+ collapsible -> Der Standardstatus ist sichtbar, kann jedoch minimiert werden.
+
+ - headerRows
+
+ - sortColumn
+ > 0 -> sortiert die Tabelle automatisch nach dem Laden der Seite nach dieser Spalte
+ 0 -> sortiert Sie nicht automatisch, sondern durch Klicken auf eine Spaltenüberschrift
+ < 0 -> sortiert die Tabelle automatisch nach dem Laden der Seite nach dieser Spalte
+
+
- perlSyntaxCheck
+
+
+ Für die Hash-Version aller Zuordnungsattribute kann ein Standardwert angegeben werden mit { '' => <default> }
.
+
+ Die Stilattribute können auch einen in {} eingeschlossenen Perl-Ausdruck enthalten, der die zu verwendende Stilzeichenfolge zurückgibt. Für nameStyle und valueStyle, kann der Perl-Code $DEVICE,$READING,$VALUE und $NUM verwendet werden. z.Bsp:
+
+ attr batteries valueStyle {($VALUE ne "ok")?'style="color:red"':'style="color:green"'}
+ attr temperatures valueStyle {($DEVICE =~ m/aussen/)?'style="color:green"':'style="color:red"'}
+
+
+ Hinweis: Nur valueStyle, valueFomat, valueIcon und <{...}@reading> werden bei Longpoll-Updates ausgewertet und valueStyle muss für jeden möglichen Wert einen nicht leeren Stil zurückgeben. Alle anderen Perl-Ausdrücke werden nur einmal während der HTML-Erstellung ausgewertet und geben keine Wertupdates mit longpoll wieder.
+ Aktualisieren Sie die Seite, um den dynamischen Stil zu aktualisieren. Für nameStyle funktioniert das Farbattribut momentan nicht, die font -... und background Attribute funktionieren.
+
+ Berechnung: Bitte sehen Sie sich dafür diese Beschreibung an in der Wiki.
+ z.Bsp: define rg readingsGroup .*:temperature rg:$avg
+
+
+
+=end html_DE
=cut