FTUI Widget Readingsgroup: Unterschied zwischen den Versionen
K (catsort) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Das [[{{PAGENAME}}|readingsgroup Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem eine in FHEM definierte readingsGroup auch im FHEM Tablet UI angezeigt werden kann | Das [[{{PAGENAME}}|readingsgroup Widget]] ist ein Widget für [[FHEM Tablet UI V2]], mit dem eine in FHEM definierte readingsGroup auch im FHEM Tablet UI angezeigt werden kann | ||
<gallery> | <gallery> | ||
Zeile 115: | Zeile 115: | ||
[[Kategorie:FHEM Tablet UI|Readingsgroup]] | [[Kategorie:FHEM Tablet UI V2|Readingsgroup]] |
Aktuelle Version vom 3. August 2024, 09:37 Uhr
Das readingsgroup Widget ist ein Widget für FHEM Tablet UI V2, mit dem eine in FHEM definierte readingsGroup auch im FHEM Tablet UI angezeigt werden kann
Attribute
Attribut | Beschreibung | Standard-Wert | Beispiel |
---|---|---|---|
data-device | FHEM-Device, dessen HTML-Inhalt angezeigt werden soll | ||
data-get | Name des Readings, das eine Änderung der ReadingsGroup anzeigt | 'STATE' | |
data-max-update | Maximale Häufigkeit in Sekunden für das Update der ReadingsGoup | 60 |
Hinweise
Im ReadingsGroup widget wird anders als in anderen widgets nicht der angegebene Wert aus dem Device dargestellt, sondern der HTML-Inhalt des angegebenen ReadingsGroup-Devices. Dieser HTML-Inhalt wird ohne Änderungen eingebettet. Das data-get Reading dient nur dazu ein nötiges Update der ReadingsGroup zu erkennen.
CSS-Klassen
Keine eigenen CSS-Klassen, im HTML-Rendering können aber Referenzen auf CSS-Klassen aus FHEMWeb enthalten sein
Beispiele
ReadingsGroup von verschiedenen Thermo/Hygro-Sensoren
Hier werden Readings für verschiedene Typen von Sensoren als Tabelle angezeigt.
<header>THY readings</header>
<div class="cell">
<div data-type="readingsgroup" data-device="MyTHYReadings"></div>
</div>
Der Vollständigkeit halber noch die Definition der readingsGroup in FHEM
define MyTHYReadings readingsGroup <%temperature_humidity>,<%temp_temperature>,<>,<%weather_humidity>,<>,<%measure_battery_50>,<>,<Update> TYPE=LaCrosse:temperature,< >,humidity,< >,battery,< >,<{getTimeDiffDesc(getNewestTimestamp($DEVICE,"temperature","humidity"))}@temperature> TYPE=CUL_TX:temperature,< >,humidity,< >,<>,< >,<{getTimeDiffDesc(getNewestTimestamp($DEVICE,"temperature","humidity"))}@temperature> HMT_wz:measured-temp,< >,humidity,< >,battery,< >,<{getTimeDiffDesc(getNewestTimestamp($DEVICE,"measured-temp","humidity"))}@measured-temp> HMT_lars:measured-temp,< >,<>,< >,battery,< >,<{getTimeDiffDesc(getNewestTimestamp($DEVICE,"measured-temp","battery"))}@measured-temp> attr MyTHYReadings noheading 1 attr MyTHYReadings room TEMP attr MyTHYReadings valueStyle style="text-align:right" attr MyTHYReadings valueSuffix { "temperature" => ' C ', "measured-temp" => ' C ' , "humidity" => ' % ' }
Und damit auch alles funktioniert hier noch der Perl-Code (aus 99_myUtils) für die beiden Perl-Routinen
############################################## # Berechne Zeitdifferenz von String zeit -> als Beschreibung # sub getTimeDiffDesc($) { my ($str) = @_; my $now = time; my $td = $now - time_str2num( $str ); my $tstr = "???"; if ( $td < 1 ) { $tstr = "<1m"; } elsif ( $td < 60 ) { $tstr = "<1m"; } elsif ( $td < 3600 ) { $tstr = sprintf("%2d", int(($td/60) + 0.5) )."m" ; } elsif ( $td < (3600*24) ) { $tstr = sprintf("%2d", int(($td/3600) + 0.5) )."h" ; } else { $tstr = int(($td/(3600*24)) + 0.5)."d" ; } return $tstr; } ############################################## # Berechne neuesten Zeitstempel von mehreren Stati # sub getNewestTimestamp($@) { my ($device, @args) = @_; my $nt = 0; my $nts = ""; for(my $i=0; $i < int(@args); $i++) { my $tds = ReadingsTimestamp($device,$args[$i],""); if ( $tds ne "" ) { my $td = time_str2num( $tds ); if ( $nt == 0 ) { $nt = $td; $nts = $tds; } elsif ( $td > $nt ) { $nt = $td; $nts = $tds; } } } return $nts; }