Das Fhem-HilfsmodulreadingsGroup[1] 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 Beispielen 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.
Definition
Erläuterungen
Aussehen
define battStatus readingsGroup .*:[Bb]attery
Alle readings mit Namen Battery oder battery von allen Devices.
attr battStatus alias FHT Batteriestatus
Der Alias wird als Überschrift verwendet
attr battStatus mapping %ROOM
Mapping %ROOM führt dazu, dass der Raumname als Zeilentitel angezeigt wird.
Definition
Erläuterungen
Aussehen
define rg_battery readingsGroup .*:battery
Alle readings mit Namen battery von allen Devices.
Formatierung der Ausgabewerte. Achtung: "%" die in der Ausgabe erscheinen sollen, müssen verdoppelt werden!
Definition
Erläuterungen
Aussehen
define Wetter readingsGroup define Wetter readingsGroup WetterXXX:<%temp_temperature>,<Temperatur>,temperature WetterXXX:<%weather_humidity>,<Luftfeuchte>,humidity WetterXXX:<%weather_baraometric_pressure>,<Luftdruck>,pressure
Die readings mit Namen temperature, humidity und pressure vom Device WetterXXX jeweils mit einem Icon und einem Label davor
attr Wetter valueFormat { temperature => '%1.f °;C', humidity => '%1.f %%', pressure => '%i mbar' }
Die Formatierung der Readingswerte
attr Wetter valueStyle style="text-align:right"
Die Readings sollen rechtsbündig dargestellt werden.
Den cul_RSSI Wert aller Devices die einen solchen haben anzeigen. 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. Achtung: "internal values" werden nicht per longpoll aktualisiert, sondern nur beim Seitenaufbau.
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
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.
links und trigger
readingGroup mit link
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 man z.B. ein notify hängen 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.