ReadingsGroup: Unterschied zwischen den Versionen
K Anpassung an geänderte Vorlage "Infobox Modul" |
Charakteristika der Beispiele in Überschrift gesetzt; manche Tabellen umgestaltet; diverse Korrekturen |
||
| Zeile 12: | Zeile 12: | ||
== Beispiele == | == Beispiele == | ||
Achtung: Die Beispiele enthalten keine Maskierungen oder Verdoppelungen für ; und Zeilenende, sondern sind so angegeben, wie sie in Fhemweb, in der command box oder nach Klick auf DEF eingegeben werden. Beim manuellen Einfügen in eine [[Konfiguration|Konfigurationsdatei]] sind diese Maskierungen oder Verdoppelungen natürlich vorzunehmen. | Achtung: Die Beispiele enthalten keine Maskierungen oder Verdoppelungen für ; und Zeilenende, sondern sind so angegeben, wie sie in Fhemweb, in der command box oder nach Klick auf DEF eingegeben werden. Beim manuellen Einfügen in eine [[Konfiguration|Konfigurationsdatei]] sind diese Maskierungen oder Verdoppelungen natürlich vorzunehmen. | ||
{| class="wikitable | |||
=== Einfache Auswahl über Reading-Namen === | |||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 21: | Zeile 23: | ||
|- | |- | ||
| <code>attr battStatus alias FHT Batteriestatus </code> | | <code>attr battStatus alias FHT Batteriestatus </code> | ||
| Der Alias wird als | | Der Alias wird als Zeilentitel verwendet | ||
|- | |- | ||
| <code>attr battStatus mapping %ROOM </code> | | <code>attr battStatus mapping %ROOM </code> | ||
| Zeile 27: | Zeile 29: | ||
|} | |} | ||
{| class="wikitable | === Auswahl über Reading-Namen, Status als Symbol dargestellt | ||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 44: | Zeile 47: | ||
|} | |} | ||
{| class="wikitable | === Reading-Werte zuordnen (Icon / Text) === | ||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 61: | Zeile 65: | ||
|} | |} | ||
{| class="wikitable | === Formatvorgabe für Ausgabewerte === | ||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 69: | Zeile 74: | ||
|- | |- | ||
| <code>attr TempHygro alias Temperatur / rel. Feuchte / Taupunkt</code> | | <code>attr TempHygro alias Temperatur / rel. Feuchte / Taupunkt</code> | ||
| Der Alias der | | Der Alias der readingsGroup wird als Überschrift verwendet | ||
|- | |- | ||
| <code>attr TempHygro mapping %ALIAS</code> | | <code>attr TempHygro mapping %ALIAS</code> | ||
| Zeile 78: | Zeile 83: | ||
|} | |} | ||
{| class="wikitable | === Ausgabestil (hier rechtsbündig) === | ||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 93: | Zeile 99: | ||
|} | |} | ||
{| class="wikitable | === Internal Value ausgeben === | ||
Diese Beispiel könnte entfallen (nächstes Beispiel ist sehr ähnlich; es wird lediglich ein weiterer Wert ausgegeben). | |||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 101: | Zeile 109: | ||
|} | |} | ||
{| class="wikitable | === Internal Values ausgeben === | ||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| style="width:40%" |<code>define culRSSI readingsGroup cul_RSSI=.*:+cul_RSSI,+cul_TIME</code> | | style="width:40%" |<code>define culRSSI readingsGroup cul_RSSI=.*:+cul_RSSI,+cul_TIME</code> | ||
| Den cul_RSSI Wert mit der zugehörigen Zeit aller Devices die einen solchen haben anzeigen.<br> '''Achtung''': "internal values" werden nicht per longpoll aktualisiert, sondern nur beim Seitenaufbau. | | Den cul_RSSI Wert mit der zugehörigen Zeit aller Devices die einen solchen haben anzeigen.<br> '''Achtung''': "internal values" werden nicht per longpoll aktualisiert, sondern nur beim Seitenaufbau.<br>"Internal Values" werden durch das vorangestellte '''+''' (Pluszeichen) identifiziert. | ||
| rowspan=1 | [[Datei:rgculRSSI2.png|thumb]] | | rowspan=1 | [[Datei:rgculRSSI2.png|thumb]] | ||
|} | |} | ||
{| class="wikitable | === Alle Readings eines Gerätes, mit Ausnahme von... === | ||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 126: | Zeile 136: | ||
|} | |} | ||
{| class="wikitable | === Anzeige auf einem Floorplan === | ||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | ! Definition !! Erläuterungen !! Aussehen | ||
|- | |- | ||
| Zeile 149: | Zeile 160: | ||
|} | |} | ||
{| class="wikitable | === Schriftgrößen, Farben, Icons === | ||
! Definition !! Erläuterungen | {| class="wikitable" | ||
! Definition !! Erläuterungen | |||
|- | |||
| colspan=2 | [[Datei:rgVerbrauchPCA301.png|links|mini|400px|Schriftgröße, Farbe, Icons...]] | |||
|- | |- | ||
| style="width:40%" |<code>define Verbrauch readingsGroup TYPE=PCA301:state,power,consumption</code> | | style="width:40%" |<code>define Verbrauch readingsGroup TYPE=PCA301:state,power,consumption</code> | ||
| Die readings state, power und consumption aller [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]] Devices mit einer Zeile pro Device. | | Die readings state, power und consumption aller [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]] Devices mit einer Zeile pro Device. | ||
|- | |- | ||
| <code>attr Verbrauch mapping %ROOM %ALIAS</code> | | <code>attr Verbrauch mapping %ROOM %ALIAS</code> | ||
| Zeile 175: | Zeile 188: | ||
|} | |} | ||
{| class="wikitable | === Wertabhängige Farbgebung === | ||
! Definition !! Erläuterungen | {| class="wikitable" | ||
! Definition !! Erläuterungen | |||
|- | |||
| colspan=2 | [[Datei:TemperaturenRG.png|600px|mini|links|Wertabhängige Farben]] | |||
[[Datei:TemperaturenRG2.png|600px|mini|links|Andere Werte - andere Farben]] | |||
|- | |- | ||
| style="width:40%" |<code>define wzTemperaturenRG readingsGroup Aussen:,<Temperatur>,temperature,<Luftfeuchte>,humidity Wohnzimmer:,<Temperatur>,temperature,<Luftfeuchte>,humidity Kasten_E_Geraete:,<Temperatur>,temperature,<Luftfeuchte>,humidity</code> | | style="width:40%" |<code>define wzTemperaturenRG readingsGroup Aussen:,<Temperatur>,temperature,<Luftfeuchte>,humidity Wohnzimmer:,<Temperatur>,temperature,<Luftfeuchte>,humidity Kasten_E_Geraete:,<Temperatur>,temperature,<Luftfeuchte>,humidity</code> | ||
| Die readings temperatur und humidity der Devices Aussen, Wohnzimmer und Kasten_E_Geraete in einer Zeile pro Device. | | Die readings temperatur und humidity der Devices Aussen, Wohnzimmer und Kasten_E_Geraete in einer Zeile pro Device. | ||
|- | |- | ||
| <code>attr wzTemperaturenRG group 3. Temperaturen</code> | | <code>attr wzTemperaturenRG group 3. Temperaturen</code> | ||
| Zeile 202: | Zeile 217: | ||
|} | |} | ||
{| class="wikitable | === Enigma Receiver === | ||
! Definition !! Erläuterungen | {| class="wikitable" | ||
! Definition !! Erläuterungen | |||
|- | |||
| colspan=2 | [[Datei:ReceiverRG.jpg|600px|mini|links|Wertabhängige Farben]] | |||
[[Datei:ReceiverRGmute.jpg|600px|mini|links|Wertabhängige Farben]] | |||
|- | |- | ||
| style="width:40%" |<code>define wzReceiverRG readingsGroup wzReceiver:,<Aktuell>,eventtitle,<Rest>,eventremaining_hr,<Dauer>,eventduration_hr wzReceiver:<Beschreibung>,eventdescription wzReceiver:,<Nächste>,eventtitle_next,<Start>,eventstart_next_hr,<Dauer>,eventduration_next_hr wzReceiver:,<HDD Kapazität>,hdd1_capacity,<Frei>,wzReceiver:hdd1_free wzReceiver:,<Lautstärke>,volume,<HDD>,hdd1_capacity,<Frei>,hdd1_free</code> | | style="width:40%" |<code>define wzReceiverRG readingsGroup wzReceiver:,<Aktuell>,eventtitle,<Rest>,eventremaining_hr,<Dauer>,eventduration_hr wzReceiver:<Beschreibung>,eventdescription wzReceiver:,<Nächste>,eventtitle_next,<Start>,eventstart_next_hr,<Dauer>,eventduration_next_hr wzReceiver:,<HDD Kapazität>,hdd1_capacity,<Frei>,wzReceiver:hdd1_free wzReceiver:,<Lautstärke>,volume,<HDD>,hdd1_capacity,<Frei>,hdd1_free</code> | ||
| Mehrere readings des Device wzReceiver in mehreren Zeilen. Wenn der Receiver auf mute ist, wird anstatt der Lautstärke, mute angezeigt. Farbige Anzeige des freien Speicherplatzes | | Mehrere readings des Device wzReceiver in mehreren Zeilen. Wenn der Receiver auf mute ist, wird anstatt der Lautstärke, mute angezeigt. Farbige Anzeige des freien Speicherplatzes | ||
'''Benötigt:''' ENIGMA2 Receiver, 70_ENIGMA2.pm - Siehe: [[Enigma2 Receiver (Dreambox, VUplus etc.) steuern]] | '''Benötigt:''' ENIGMA2 Receiver, 70_ENIGMA2.pm - Siehe: [[Enigma2 Receiver (Dreambox, VUplus etc.) steuern]] | ||
|- | |- | ||
| <code>attr wzReceiverRG group Fernseher Receiver</code> | | <code>attr wzReceiverRG group Fernseher Receiver</code> | ||
| Zeile 256: | Zeile 273: | ||
|} | |} | ||
{| class="wikitable | === Heizungswerte inklusive Batterie- und Fensterstatus === | ||
! Definition !! Erläuterungen | {| class="wikitable" | ||
! Definition !! Erläuterungen | |||
|- | |||
| colspan=2 | [[Datei:rgHeizung3.png|thumb|links|500px|Heizungswerte inklusive Batterie- und Fensterstatus]] | |||
|- | |- | ||
| style="width:40%" |<code>define Heizungswerte readingsGroup <%sani_heating>,< >,<Act>,<Soll>,<Ist> TYPE=FHT:actuator,desired-temp,measured-temp,<%18>,<%20>,<%22>,window,battery</code> | | style="width:40%" |<code>define Heizungswerte readingsGroup <%sani_heating>,< >,<Act>,<Soll>,<Ist> TYPE=FHT:actuator,desired-temp,measured-temp,<%18>,<%20>,<%22>,window,battery</code> | ||
| Diverse readings aller Devices des Typs <b>FHT</b>. | | Diverse readings aller Devices des Typs <b>FHT</b>. | ||
|- | |- | ||
| <code>attr Heizungswerte commands { 'Heizungswerte.18' => 'set $DEVICE desired-temp 18', 'Heizungswerte.20' => 'set $DEVICE desired-temp 20', 'Heizungswerte.22' => 'set $DEVICE desired-temp 22' }</code> | | <code>attr Heizungswerte commands { 'Heizungswerte.18' => 'set $DEVICE desired-temp 18', 'Heizungswerte.20' => 'set $DEVICE desired-temp 20', 'Heizungswerte.22' => 'set $DEVICE desired-temp 22' }</code> | ||
| Zeile 273: | Zeile 292: | ||
|} | |} | ||
{| class="wikitable | === Heizungswerte, Stati und Regelmöglichkeit === | ||
! Definition !! Erläuterungen | {| class="wikitable" | ||
! Definition !! Erläuterungen | |||
|- | |||
| colspan=2 | [[Datei:rgHeizung2.png|thumb|500px|links|Anzeige + Regelmöglichkeit]] | |||
|- | |- | ||
| style="width:40%" |<code>define Heizungswerte2 readingsGroup <%sani_heating>,< >,<Act>,<Soll>,<Ist> TYPE=FHT:actuator,desired-temp,measured-temp,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired-temp>,desired-new,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired-temp>,window,battery</code> | | style="width:40%" |<code>define Heizungswerte2 readingsGroup <%sani_heating>,< >,<Act>,<Soll>,<Ist> TYPE=FHT:actuator,desired-temp,measured-temp,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired-temp>,desired-new,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired-temp>,window,battery</code> | ||
| Diverse readings aller Devices des Typs <b>FHT</b>. | | Diverse readings aller Devices des Typs <b>FHT</b>. | ||
|- | |- | ||
| <code>attr Heizungswerte2 nameStyle style="color:yellow;font-weight:bold"</code> | | <code>attr Heizungswerte2 nameStyle style="color:yellow;font-weight:bold"</code> | ||
| Zeile 290: | Zeile 311: | ||
|- | |- | ||
| <code> | | <code> | ||
#Heizung regeln in | #Heizung regeln in readingsGroup | ||
sub | sub | ||
myUtils_HeizungUpDown($$) | myUtils_HeizungUpDown($$) | ||
| Zeile 353: | Zeile 374: | ||
|} | |} | ||
== | === Dynamische Inhalte === | ||
[[Datei:rgDynamic-1.png|mini| | [[Datei:rgDynamic-1.png|mini|450px|readingsGroup mit umschaltbarem Inhalt 1]] | ||
[[Datei:rgDynamic-2.png|mini| | [[Datei:rgDynamic-2.png|mini|450px|readingsGroup mit umschaltbarem Inhalt 2]] | ||
Es ist möglich den in einer | Es ist möglich, den in einer readingsGroup dargestellten Inhalt dynamisch von zusätzlichen Bedingungen abhängig zu machen. Im folgenden Beispiel lässt sich | ||
einstellen, dass nur die Devices angezeigt werden, die einen bestimmten Zustand (hier: on/off, open/tilted/closed) haben. Hier wird zum Umschalten ein dummy, der direkt über der readingsGroup dargestellt wird, verwendet. Über das links und/oder commands lässt sich auch eine Darstellung erzeugen, bei der das Umschalten direkt innerhalb der readingsGroup möglich ist. | |||
<pre> | <pre> | ||
| Zeile 373: | Zeile 394: | ||
</pre> | </pre> | ||
== | == Links und Trigger == | ||
[[Datei:rgPCA-detail.png|mini| | [[Datei:rgPCA-detail.png|mini|400px|readingsGroup mit Link]] | ||
Das PCA301 Beispiel oben lässt sich mit einem ans Ende des define angehängten <code><{appendTrigger($DEVICE,"clear","Alle löschen")}></code> und der folgenden appendTrigger | Das PCA301 Beispiel oben lässt sich mit einem ans Ende des define angehängten | ||
< | :<code><{appendTrigger($DEVICE,"clear","Alle löschen")}></code> | ||
define clearVerbrauch notify Verbrauch:clear set TYPE=PCA301 clear | und der folgenden appendTrigger Definition in 99_myUtils.pm um einen Link erweitern, der ein Event auslöst, an das z.B. ein notify gehängt werden kann, um die Verbrauchszähler der PCA301 Dosen zurückzusetzen. | ||
</ | :<code>define clearVerbrauch notify Verbrauch:clear set TYPE=PCA301 clear</code> | ||
<pre>use vars qw($FW_ME); | <pre>use vars qw($FW_ME); | ||
use vars qw($FW_subdir); | use vars qw($FW_subdir); | ||
| Zeile 395: | Zeile 417: | ||
}</pre> | }</pre> | ||
Ein weiteres Beispiel für 'custom links und trigger' findet sich [http://forum.fhem.de/index.php/topic,14425.msg109383.html#msg109383 | Ein weiteres Beispiel für 'custom links und trigger' findet sich im [http://forum.fhem.de/index.php/topic,14425.msg109383.html#msg109383 Forum]: dort wird damit eine readingsGroup dynamisch umgeschaltet, um nur die eingeschalteten, nur die ausgeschalteten oder alle Lampen anzuzeigen. | ||
== Sonstiges == | == Sonstiges == | ||
Mit <code>attr <device> style style="border:0px;background:none;box-shadow:none"</code> lässt sich der Rahmen um eine readingsGroup entfernen, wenn sie in einer group verwendet wird und der doppelte Rahmen stört. | |||
Mit <code>attr <device> style style="border:0px;background:none;box-shadow:none"</code> lässt sich der Rahmen um eine readingsGroup entfernen wenn sie in einer group verwendet wird und der doppelte Rahmen stört. | |||
[[Kategorie:HOWTOS]] | [[Kategorie:HOWTOS]] | ||
[[Kategorie:Code Snippets]] | [[Kategorie:Code Snippets]] | ||
Version vom 27. April 2014, 16:42 Uhr
| readingsGroup | |
|---|---|
| Zweck / Funktion | |
| Einfache zusammenfassende Darstellung von Informationen über mehrere Geräte | |
| Allgemein | |
| Typ | Hilfsmodul |
| Details | |
| Dokumentation | EN / DE |
| Modulname | 33_readingsGroup.pm |
| Ersteller | Andre / justme1968 |
| Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! | |
Das Fhem-Hilfsmodul readingsGroup bietet eine einfache Möglichkeit, readings und internal values von einem oder mehreren Devices darzustellen und flexibel zu formatieren.
Hier soll eine Sammlung von Beispielen zur Verwendung der readingsGroup mitsamt der zugehörigen Screenshots entstehen.
Beispiele
Achtung: Die Beispiele enthalten keine Maskierungen oder Verdoppelungen für ; und Zeilenende, sondern sind so angegeben, wie sie in Fhemweb, in der command box oder nach Klick auf DEF eingegeben werden. Beim manuellen Einfügen in eine Konfigurationsdatei sind diese Maskierungen oder Verdoppelungen natürlich vorzunehmen.
Einfache Auswahl über Reading-Namen
=== Auswahl über Reading-Namen, Status als Symbol dargestellt
Reading-Werte zuordnen (Icon / Text)
Formatvorgabe für Ausgabewerte
| Definition | Erläuterungen | Aussehen |
|---|---|---|
define TempHygro readingsGroup TYPE=CUL_WS:temperature,humidity,dewpoint
|
Alle readings mit Namen temperature, humidity, dewpoint von allen Devices des Typs CUL_WS | ![]() |
attr TempHygro alias Temperatur / rel. Feuchte / Taupunkt
|
Der Alias der readingsGroup wird als Überschrift verwendet | |
attr TempHygro mapping %ALIAS
|
Mapping %ALIAS führt dazu, dass der Alias des Geräts als Zeilentitel angezeigt wird. | |
attr TempHygro valueFormat { temperature => "%.1f°C", humidity => "%.1f %%", dewpoint => "%.1f°C"}
|
Formatierung der Ausgabewerte. Achtung: "%" die in der Ausgabe erscheinen sollen, müssen verdoppelt werden! |
Ausgabestil (hier rechtsbündig)
Internal Value ausgeben
Diese Beispiel könnte entfallen (nächstes Beispiel ist sehr ähnlich; es wird lediglich ein weiterer Wert ausgegeben).
Internal Values ausgeben
Alle Readings eines Gerätes, mit Ausnahme von...
Anzeige auf einem Floorplan
Schriftgrößen, Farben, Icons
| Definition | Erläuterungen |
|---|---|
define Verbrauch readingsGroup TYPE=PCA301:state,power,consumption
|
Die readings state, power und consumption aller PCA301 Devices mit einer Zeile pro Device. |
attr Verbrauch mapping %ROOM %ALIAS
|
Der Raumname und der Alias werden als Zeilentitel verwendet |
attr Verbrauch nameStyle style="font-weight:bold"
|
Der Zeilentitel soll fett sein |
attr Verbrauch style style="font-size:20px"
|
Alles in einem größeren Font |
attr Verbrauch valueFormat {power => "%.1f W", consumption => "%.2f kWh"}
|
Die Formatierung für die power und consumption readings: eine Nachkommastelle plus Einheit. |
attr Verbrauch valueIcon { state => '%devStateIcon' }
|
Für die Dosen, die schaltbar sind, soll das anklickbare device icon gezeigt werden. |
attr Verbrauch valueStyle {($READING eq "power" && $VALUE > 40)?'style="color:red"':'style="color:green"'}
|
Wenn das power reading >40 ist, soll es in rot angezeigt werden, alle anderen Werte und readings in grün |
Wertabhängige Farbgebung
Enigma Receiver
| Definition | Erläuterungen |
|---|---|
define wzReceiverRG readingsGroup wzReceiver:,<Aktuell>,eventtitle,<Rest>,eventremaining_hr,<Dauer>,eventduration_hr wzReceiver:<Beschreibung>,eventdescription wzReceiver:,<Nächste>,eventtitle_next,<Start>,eventstart_next_hr,<Dauer>,eventduration_next_hr wzReceiver:,<HDD Kapazität>,hdd1_capacity,<Frei>,wzReceiver:hdd1_free wzReceiver:,<Lautstärke>,volume,<HDD>,hdd1_capacity,<Frei>,hdd1_free
|
Mehrere readings des Device wzReceiver in mehreren Zeilen. Wenn der Receiver auf mute ist, wird anstatt der Lautstärke, mute angezeigt. Farbige Anzeige des freien Speicherplatzes
Benötigt: ENIGMA2 Receiver, 70_ENIGMA2.pm - Siehe: Enigma2 Receiver (Dreambox, VUplus etc.) steuern |
attr wzReceiverRG group Fernseher Receiver
|
Die readingsGroup kommt in eine Gruppe |
attr wzReceiverRG mapping
|
mapping wird auf (Leerzeichen) gesetzt, damit der Device Name nicht angezeigt wird |
attr wzReceiverRG noheading 1
|
noheading |
attr wzReceiverRG nostate 1
|
nostate |
attr wzReceiverRG notime 1
|
notime |
attr wzReceiverRG valueColumns { eventdescription => 'colspan="4"' }
|
Die Beschreibung soll über 4 Spalten gehen |
attr wzReceiverRG valueFormat { wzReceiverRGvalueFormat($DEVICE,$READING,$VALUE);; }
|
Die Formatierung wird in die 99_myUtils.pm ausgelagert. Siehe: 99 myUtils anlegen |
attr wzReceiverRG valueStyle { if($READING eq "hdd1_free" && $VALUE < 200){ 'style="color:red"' }elsif( $READING eq "hdd1_free" && $VALUE < 500 ){ 'style="color:orange"' }elsif( $READING eq "volume" && ReadingsVal($DEVICE, "mute", "") eq "on" ){ 'style="color:red"' }else{ 'style="color:green"' } }
|
Diverse Farbkombinationen sind möglich. Wenn der Receiver auf mute ist, wird anstatt der Lautstärke mute angezeigt. |
|
Dieser Teil kommt in die 99_myUtils.pm |
Heizungswerte inklusive Batterie- und Fensterstatus
Heizungswerte, Stati und Regelmöglichkeit
| Definition | Erläuterungen |
|---|---|
define Heizungswerte2 readingsGroup <%sani_heating>,< >,<Act>,<Soll>,<Ist> TYPE=FHT:actuator,desired-temp,measured-temp,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired-temp>,desired-new,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired-temp>,window,battery
|
Diverse readings aller Devices des Typs FHT. |
attr Heizungswerte2 nameStyle style="color:yellow;font-weight:bold"
|
Die Überschriften sollen gelb sein. |
attr Heizungswerte2 valueIcon {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red', 'window.closed' => 'fts_window_1w@lightgreen', 'window.open' => 'fts_window_1w_open@red'}
|
Für den Batteriestand und den Zustand der Fenster sollen jeweils Icons angezeigt werden. |
attr Heizungswerte2 valueStyle {($VALUE eq "00")?'style="visibility:hidden"':}
|
Nach dem Einstellen den Wert wieder ausblenden. |
|
Dieser Teil kommt in die 99_myUtils.pm: Hiermit werden die Icons zum Ändern der gewünschten Temperatur dargestellt und im Bereich >=18 und <= 24 Grad anklickbar gemacht. Zwischen den Pfeilen wird der gerade eingestellte Wert angezeigt. Wenn dieser drei Sekunden nicht mehr geändert wurde wird die desired-temp auf diesen Wert gesetzt und die Anzeige zwischen den Pfeilen ausgeblendet. |
Dynamische Inhalte


Es ist möglich, den in einer readingsGroup dargestellten Inhalt dynamisch von zusätzlichen Bedingungen abhängig zu machen. Im folgenden Beispiel lässt sich einstellen, dass nur die Devices angezeigt werden, die einen bestimmten Zustand (hier: on/off, open/tilted/closed) haben. Hier wird zum Umschalten ein dummy, der direkt über der readingsGroup dargestellt wird, verwendet. Über das links und/oder commands lässt sich auch eine Darstellung erzeugen, bei der das Umschalten direkt innerhalb der readingsGroup möglich ist.
define LXrg dummy
attr LXrg group -
attr LXrg setList mode1:on,off mode2:open,closed,tilted
attr LXrg stateFormat 1=mode1 2=mode2
attr LXrg webCmd mode1:mode2
define rg readingsGroup Window.*:state Light.*:state
attr rg group -
attr rg valueFormat { return $VALUE if ( $VALUE eq ReadingsVal("LXrg","mode1","") || $VALUE eq ReadingsVal("LXrg","mode2","") );; return undef;;}
define Watch_LX notify LX.*:.* {my $value = ReadingsVal($NAME,'state','');;;;fhem("setreading $NAME $value")}
Links und Trigger

Das PCA301 Beispiel oben lässt sich mit einem ans Ende des define angehängten
<{appendTrigger($DEVICE,"clear","Alle löschen")}>
und der folgenden appendTrigger Definition in 99_myUtils.pm um einen Link erweitern, der ein Event auslöst, an das z.B. ein notify gehängt werden kann, um die Verbrauchszähler der PCA301 Dosen zurückzusetzen.
define clearVerbrauch notify Verbrauch:clear set TYPE=PCA301 clear
use vars qw($FW_ME);
use vars qw($FW_subdir);
sub
appendTrigger($$$)
{
my ($name,$trigger,$label) = @_;
my $ret .= "</table></td></tr>";
my $link = "cmd=trigger $name $trigger";
my $txt = "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$link')\">$label</a>";
$ret .= "<td colspan=\"99\"><div style=\"cursor:pointer;color:#888888;text-align:right\">$txt</div></td>";
return ($ret,0);
}
Ein weiteres Beispiel für 'custom links und trigger' findet sich im Forum: dort wird damit eine readingsGroup dynamisch umgeschaltet, um nur die eingeschalteten, nur die ausgeschalteten oder alle Lampen anzuzeigen.
Sonstiges
Mit attr <device> style style="border:0px;background:none;box-shadow:none" lässt sich der Rahmen um eine readingsGroup entfernen, wenn sie in einer group verwendet wird und der doppelte Rahmen stört.















