Hi,
ich habe auf meinem Dashboard diverse Devices und Schnittstellen zu Fhem, die ich überwache, ob Sie laufen oder ob es Probleme damit geht. Ich habe dazu habe keine Dashboard Gruppen definiert, sondern die Geräte einzeln hinzugefügt. Soweit so gut.
Ich vermute, das ich nicht den Hintergrund der einzelnen Container abhängig vom Status ändern kann, oder? Ansonsten würde es mir reichen, den state auch farbig zu ändern (Beispiel: disconnected, dann state == rot). Das müsste ja mit stateformat und ReadingVal gehen, oder?
Steh grad auf dem Schlauch, vielleicht kann mal jemand nen Schubs geben ;-)
Danke und Gruß
Kai
z.B. so:
stateFormat
stateFormat
{
if (ReadingsVal("$name", "state", "") eq "disconnected") {
return '<font color="red">'.ReadingsVal("$name", "state", "") .'</b>';
} else {
return ReadingsVal("$name", "state", "");
}
}
Hey - danke - fehlt da nicht noch ein ) hinter disconnected?
Zitat von: Kai-Alfonso am 10 Oktober 2017, 17:59:04
Hey - danke - fehlt da nicht noch ein ) hinter disconnected?
Jupp, hattest Recht, habe es oben gleich geändert.
Hallo liebe Fhem Gemeinde,
ich habe folgendes Problem... oder einen Wunsch: Ich möchte ein Dummy mit drei verschiedenen Werten füllen... aber jeder Text soll eine andere Farbe bekommen. Mit diesem Beispiel schaffe ich ja schon einmal zwei Farben. Aber wie bekomme ich es hin drei verschiedene (oder mehr) Farben zu erstellen?
Hier meine Grundeinstellung:
{
if (ReadingsVal("$name", "state", "") eq "Rasenmäher mäht!") {
return '<font color="green">'.ReadingsVal("$name", "state", "") .'</b>';
}else {
return '<font color="lightgrey">'. ReadingsVal("$name", "state", "")
}
}
jetzt möchte ich noch in Rot angezeigt bekommen wenn ein Fehler auftritt.
Ich habe keine Ahnung wie ich das erweitern kann? Und mich auch schon Stundenlang hier durch das Forum gelesen... Bei Werten die Zahlenabhängig sind funktioniert es seit Jahren bei mir...
Wer kann mir auf die Sprünge helfen??
Danke und Grüße
Christoph
Hi,
Du meinst sowas?
{
if (ReadingsVal("$name", "state", "") eq "Rasenmäher mäht!") {
return '<font color="green">'.ReadingsVal("$name", "state", "") .'</b>';
} elsif (ReadingsVal("$name", "state", "") eq "Rasenmäher error!") {
return '<font color="red">'.ReadingsVal("$name", "state", "") .'</b>';
} else {
return '<font color="lightgrey">'. ReadingsVal("$name", "state", "")
}
}
Geht sicher alles eleganter - ich habe nur versucht Deine Frage zu verstehen. Den "Wurm" kannst Du auch verlängern ...
Gruß Otto
Das </b> (bold) muss aber durch </font> ersetzt werden.
{
if (ReadingsVal("$name", "state", "") eq "Rasenmäher mäht!") {
return '<font color="green">'.ReadingsVal("$name", "state", "") .'</font>';
} elsif (ReadingsVal("$name", "state", "") eq "disconnected")) {
return '<font color="red">'.ReadingsVal("$name", "state", "") .'</font>';
} else {
return '<font color="lightgrey">'. ReadingsVal("$name", "state", "").'</font>';
}
}
Hallo Christoph,
Zitat von: Astralsen am 04 März 2021, 22:12:04
ich habe folgendes Problem... oder einen Wunsch: Ich möchte ein Dummy mit drei verschiedenen Werten füllen... aber jeder Text soll eine andere Farbe bekommen. Mit diesem Beispiel schaffe ich ja schon einmal zwei Farben. Aber wie bekomme ich es hin drei verschiedene (oder mehr) Farben zu erstellen?
Hier meine Grundeinstellung:
{
if (ReadingsVal("$name", "state", "") eq "Rasenmäher mäht!") {
return '<font color="green">'.ReadingsVal("$name", "state", "") .'</b>';
}else {
return '<font color="lightgrey">'. ReadingsVal("$name", "state", "")
}
}
jetzt möchte ich noch in Rot angezeigt bekommen wenn ein Fehler auftritt.
Ich habe keine Ahnung wie ich das erweitern kann? Und mich auch schon Stundenlang hier durch das Forum gelesen... Bei Werten die Zahlenabhängig sind funktioniert es seit Jahren bei mir...
Wer kann mir auf die Sprünge helfen??
Was sind denn die Status, die du wie formatieren willst? Ansonsten heißt das Stichwort
elsif.
(Beim von dir geschriebenen Perl und HTML krauselt es aber auch die Fußnägel hoch ;-))
Super vielen Dank !
Das mit elsif hatte ich auch probiert aber ich hatte es aber "else if" geschrieben.... :-[
Die Lösung von Otto123 funktioniert am besten für mich.
Ich wollte eine Art Ampel Text machen: Normale Farbe wenn der Mäher in der Station steht -->also weiß.
Der Text wird grün wenn der Mäher arbeitet, und rot wenn der Mäher ein Problem hat.
Aber ich habe auch noch andere Einsatzmöglichkeiten "gefunden" ;-)
hier zB für unsere Balkontür:
{
if (ReadingsVal("$name", "state", "") eq "Balkontür Kipp") {
return '<font color="orange">'.ReadingsVal("$name", "state", "") .'</b>';
} elsif (ReadingsVal("$name", "state", "") eq "Balkontür Auf") {
return '<font color="red">'.ReadingsVal("$name", "state", "") .'</b>';
} else {
return '<font color="lightgrey">'. ReadingsVal("$name", "state", "")
}
}
Besten Dank Euch für den Anschubser!
Grüße aus Hamburg
Christoph
Guck mal, ich mach das so:
reachable_formatted:activity:.+ {
my $reachable = ::ReadingsVal($name, q(activity), undef);
my @values = ($reachable)
? ($reachable eq q(alive))
? qw(green Erreichbar)
: (q(red), q(Nicht erreichbar))
: qw(red Unbekannt);
return sprintf q(<span style="color: %s";>%s</span>), @values;
}
Vorteil: Man spart sich die Wiederholung des HTML-Teils und man muss nicht mehrfach ReadingsVal aufrufen.
ZitatDie Lösung von Otto123 funktioniert am besten für mich.
Ich hatte nur Deinen Code "hochinterpoliert"
@Astralsen Deine HTML Tags sind dabei wirklich bedenklich, das musst Du ändern. Das die am Ende funktionieren ist wahrscheinlich der Gutmütigkeit eines Webinterfaces und der Browserinterpretation zu verdanken. :)
Die Lösung Deines Namenvetters ist weitaus eleganter. Falls die für dich nicht nachvollziehbar ist, dann frag einfach - aber ändere wenigstens Deine Tags so, dass es "vorn und hinten" passt! Siehe Post von Jamo.
Danke für die Hinweise.
Ich habe Jamo´s Tipp mit "reingearbeitet" und es funktioniert noch ;-)
Leider habe ich absolut kein Ahnung von Perl oder HTML deswegen bastle ich immer bis das Ergebnis passt... ::)
Ich werde aber auch noch einmal die Variante von Christoph Morrison versuchen....
Zitat von: Astralsen am 05 März 2021, 11:15:42
Leider habe ich absolut kein Ahnung von Perl oder HTML deswegen bastle ich immer bis das Ergebnis passt... ::)
Ist ja auch in Ordnung. Was mir immer hilft
https://www.w3schools.com/html/default.asp
https://perldoc.perl.org/index
Zitat von: Christoph Morrison am 05 März 2021, 10:37:47Guck mal, ich mach das so:
reachable_formatted:activity:.+ {
my $reachable = ::ReadingsVal($name, q(activity), undef);
my @values = ($reachable)
? ($reachable eq q(alive))
? qw(green Erreichbar)
: (q(red), q(Nicht erreichbar))
: qw(red Unbekannt);
return sprintf q(<span style="color: %s";>%s</span>), @values;
}
Vorteil: Man spart sich die Wiederholung des HTML-Teils und man muss nicht mehrfach ReadingsVal aufrufen.
Äh, wie bitte? Kannst du das mal erklären? Als Beispeil vielleicht: Readname "Battery_charge" und als Wert grösser 25 -> grün, kleiner 26 -> rot?
Im Prinzip ist das ein doppeltes Ternär-Operator-Statement, das statt einer Variable eine Liste benutzt.
@values is gleich grün/Erreichbar, wenn $reachable existiert und alive ist, wenn es existiert und nicht alive ist, dann rot/Nicht erreichbar. Wenn ReadingsVal() keinen Wert lieft, wird rot/Unbekannt zurückgegeben.
sprintf macht aus der Liste dann einen String mit zwei ersetzten Werten, einmal für Text-Status und einmal für die Textfarbe.
battery_formatted:Battery_charge:.+ {
my $battery = ::ReadingsVal($name, q(Battery_charge), undef);
my @values = ($battery) ? ($battery >= 26)
? qw(green Ok)
: qw(red Wechseln)
: qw(red Unbekannt);
return sprintf q(<span style="color: %s";>%s</span>), @values;
}
Hallo zusammen, hoffe ich darf vier Mal mit rein grätschen.
Ich würde gerne die Daten meiner USB abhängig vom Zustand (OL Online und OB On Battery) in Grün bzw Rot darstellen.
Hatte es dazu so versucht was aber mit einer Fehlermeldung und fehlerhaften Darstellung scheitert.
{
if (ReadingsVal("$name", "state", "") eq "OL") {
return '<font color="green">'.ReadingsVal("$name", "state", "") .'</b>';
} elsif (ReadingsVal("$name", "state", "") eq "OB") {
return '<font color="red">'.ReadingsVal("$name", "state", "") .'</b>';
} else {
return '<font color="lightgrey">'. ReadingsVal("$name", "state", "")
}
}
An ei Screenshots der Meldung und der Darstellung
LG holgerScreenshot_20230910_075824_Chrome.jpgScreenshot_20230910_080549_Chrome.jpg
Es liegt wohl an meinem stateFormat das sieht ohne den Farbteil so aus
1:state
<br>
Batteriespannung battery.voltage V
<br>
Eingangsspannung input.voltage V
<br>
USV Load ups.load %
<br>
USV Temperatur ups.temperature °C
Du kannst entweder Deine bisherige Variante nehmen oder alles komplett durch Perlcode ersetzen. Was Du jetzt gemacht hast ist nur Code und Text zusammenkopiert - auch noch eine schlechte Variante aus allen bisherigen Antworten. :o
Ja, aber wie mache ich das?
Ich möchte halt die Darstellung wie ich sie habe aber halt zusätzlich das die Werte der Readings in Rot bzw Grün sind je nach State der USV.
Kannst du mir da helfen, ich verstehe den Aufbau nicht wirklich. Hoffe das ich es dann nachher auch noch für andere Sachen nehmen kann wie z.b. den Stromzähler
LG holger
Ich habe zur Veranschaulichung mal Christophs Vorschlag in einem kompletten Beispiel umgesetzt (Raw Definition):
defmod Battery dummy
attr Battery readingList Battery_charge
attr Battery setList Battery_charge
attr Battery stateFormat battery_formatted
attr Battery userReadings battery_formatted:Battery_charge:.+ {\
my $battery = ::ReadingsVal($name, q(Battery_charge), undef);;\
my @values = ($battery) ? ($battery >= 26)\
? qw(green Ok)\
: qw(red Wechseln)\
: qw(red Unbekannt);;\
\
return sprintf q(<span style="color: %s";;>%s</span>), @values;;\
}
Vorschlag: Du baust Dir nach dem Schema ein userReadings in deinem Device und schreibst den Namen des Readings einfach in dein stateFormat.
Und wenn du ganz faul bist, legst du dir das als Subroutine in deine 99_MyUtils an und hast dann überall die Möglichkeit, einfach einen farbig formatierten State zu haben.
Zitat von: Christoph Morrison am 10 September 2023, 11:38:27Und wenn du ganz faul bist, legst du dir das als Subroutine in deine 99_MyUtils an und hast dann überall die Möglichkeit, einfach einen farbig formatierten State zu haben.
und davon verstehe ich noch weniger,
aber ich versuche heute noch Ottos Vorschlag um zu setzen
lieben dank an euch
Richtig ungern (weil ich die negative Eigenschaft hab nachtragend zu sein), anbei ein Beispiel es mit einem devstateicon (statt Text) und regulären Ausdrücken umzusetzen:
defmod Battery dummy
attr Battery devStateIcon ([0-9]{1}|1[0-9]{1}|2[0-5]{1}):10px-kreis-rot (2[6-9]{1}|[3-9][0-9]{1}|100):10px-kreis-gruen
attr Battery readingList Battery_charge
attr Battery setList Battery_charge:slider,1,1,100,1
attr Battery stateFormat Battery_charge
setstate Battery 8
setstate Battery 2023-09-10 12:05:46 Battery_charge 8
Zitat von: TomLee am 10 September 2023, 12:16:32Richtig ungern (weil ich die negative Eigenschaft hab nachtragend zu sein),
Oh oh das hört sich so an als hätte ich da mal Mist gebaut.
Weiß jetzt Grade nicht wo aber ich räume Fehler gerne ein und stehe dazu.
Wenn ich dir irgendwo auf die Füße getreten bin tut es mir leid
Bei deinem Beispiel verstehe ich nicht warum der grüne Punkt ab 25 angezeigt wird bis 30 dann zahlen Werte bis 59 und ab 60 wieder der grüne punkt
Weil ich mein Beispiel im nachhinein falsch korrigiert habe ::) , habs gerade angepasst.
Ahh moment
(2[4-9]{1}|[6-9][0-9]{1}|100) zerlegt ist:
Erster Bereich: 24-29
Zweiter Bereich 60-99
Dritter Bereich 100
In diesen soll der grüne Punkt erscheinen.
Beim Roten
0-9
10-19
20-24
Jetzt wird ein Schuh draus
Ja fast, weil ich es nochmal korrigieren musste, jetzt sollte es passen.
Okay das würde mir eventuell bei meinem Zähler Problem helfen der je nach Leistung der Solaranlage auch mal negative Werte anzeigt.
Aber verstehe nicht wie ich daraus abhängig davon ob die USV und darin das Reading state OL oder OB ist alle Daten Grün oder Rot einfärbe.
Das DevStateIcon soll ja auch erhalten bleiben
Zitat von: TomLee am 10 September 2023, 12:58:01Ja fast, weil ich es nochmal korrigieren musste, jetzt sollte es passen.
Vielen lieben dank... irgendwie will das nicht mehr so einfach in meinen kopf wie vor 10 Jahren noch.
bin dann immer dankbar wenn mich jemand an die Hand nimmt
ZitatAber verstehe nicht wie ich daraus abhängig davon ob die USV und darin das Reading state OL oder OB ist alle Daten Grün oder Rot einfärbe.
Das DevStateIcon soll ja auch erhalten bleiben
Stimmt, hatte mich von Ottos Beispiel verleiten lassen und nicht auf die eigentliche Fragestellung eingegangen.
Ganz verstehen tu ich es aber trotzdem noch nicht.
Soll nur
state eingefärbt werden oder der ganze Text in der Deviceoverview ?
Hier nochmal ein Beispiel für in das Attribut devstateicon, welches nur
state einfärbt, alles einzufärben bekommst auch selbst hin.
{my %val2color = (
'OL' => 'green',
'OB' => 'red',);
my $color = $val2color{ReadingsVal("$name", 'state', 'error')};
$color = 'lightgrey' if !$val2color{ReadingsVal("$name", 'state', 'error')};
return "<span style='color: ".$color."'>".ReadingsVal($name,'state',0)."</span><br>
<span>Batteriespannung ".ReadingsNum($name,'battery.voltage',0)." A</span><br>
<span>Eingangsspannung ".ReadingsNum($name,'input.voltage',0)."</span><br>
<span>USV Load ".ReadingsNum($name,'ups.load',0)."</span><br>
<span>Temperatur ".ReadingsNum($name,'ups.temperature',0)."</span>"
}
Zu beachten ist, sollte
STATE in deinem Device mehrzeilig sein, wegen deinem bisher mehrzeiligen stateformat, dann wird mein Code mehrfach angezeigt (je Zeile in STATE einmal), um das zu beheben/bereinigen müsstest du das Internal STATE löschen -> mit
{delete($defs{USV}{STATE})} in der Kommandozeile, oben, ginge das.
STATE ist mehrzeilig siehe Screenshot.
Mir würde es reichen wenn nur die 4 Readings:
battery.voltage
input.voltage
ups.load
ups.temperature
Eingefärbt wären
Das 5. Reading "state" wird ja als DevStateIcon dargestellt (OL ein Grüner Stecker, OB als Rote Batterie)
Ich werde es später Testen und sage aber schonmal vielen lieben dank.
Screenshot_20230910_200144_Chrome.jpgScreenshot_20230910_200225_Chrome.jpg
Ohne List oder vollständige (mit den setstate Zeilen) Raw-Definition, verliert man die Lust weiter zu raten/ sich weiter mit zu beschäftigen, welches icon das nun ist wo du verwendest in devstateicon.
Sorry dachte das wäre zu unübersichtlich
define USV NUT mustek 127.0.0.1:3493
attr USV asReadings battery.charge,battery.runtime,input.voltage,ups.load,ups.power,ups.realpower,battery.voltage,ups.temperature
attr USV devStateIcon 1.OB:USV_battery@red 1.OL:hue_filled_plug@green
attr USV disable 0
attr USV fp_Grundriss 642,605,0,USV,
attr USV pollState 10
attr USV pollVal 60
attr USV room Strom
attr USV stateFormat 1:state\
<br>\
Batteriespannung battery.voltage V\
<br>\
Eingangsspannung input.voltage V\
<br>\
USV Load ups.load %\
<br>\
USV Temperatur ups.temperature °C\
\
\
\
# DEF mustek 127.0.0.1:3493
# DeviceName 127.0.0.1:3493
# FD 25
# FUUID 64ee55aa-f33f-91a4-86ad-f675ec87952896ec
# NAME USV
# NR 154
# PARTIAL
# STATE 1:OL
#<br>
#Batteriespannung 13.10 V
#<br>
#Eingangsspannung 227.6 V
#<br>
#USV Load 32 %
#<br>
#USV Temperatur 25.0 °C
#
#
#
#
# TYPE NUT
# UpsName mustek
# buffer
# eventCount 10431
# lastStatus OL
# pollValState 0
# READINGS:
# 2023-09-10 20:33:03 battery.voltage 13.10
# 2023-09-10 20:33:03 input.voltage 227.6
# 2023-09-10 20:33:53 state OL
# 2023-09-10 20:33:03 ups.load 32
# 2023-09-10 20:33:03 ups.temperature 25.0
# helper:
# battery.voltage 13.10
# device.type ups
# driver.name nutdrv_qx
# driver.parameter.pollfreq 30
# driver.parameter.pollinterval 2
# driver.parameter.port auto
# driver.parameter.synchronous no
# driver.version 2.7.4
# driver.version.data Q1 0.07
# driver.version.internal 0.28
# input.frequency 50.1
# input.voltage 227.6
# input.voltage.fault 227.6
# output.voltage 227.7
# ups.beeper.status enabled
# ups.delay.shutdown 30
# ups.delay.start 180
# ups.load 32
# ups.productid 5161
# ups.status OL
# ups.temperature 25.0
# ups.type offline / line interactive
# ups.vendorid 0665
#
setstate USV 1:OL\
<br>\
Batteriespannung 13.10 V\
<br>\
Eingangsspannung 227.6 V\
<br>\
USV Load 32 %\
<br>\
USV Temperatur 25.0 °C\
\
\
\
setstate USV 2023-09-10 20:33:03 battery.voltage 13.10
setstate USV 2023-09-10 20:33:03 input.voltage 227.6
setstate USV 2023-09-10 20:33:53 state OL
setstate USV 2023-09-10 20:33:03 ups.load 32
setstate USV 2023-09-10 20:33:03 ups.temperature 25.0
Internals:
DEF mustek 127.0.0.1:3493
DeviceName 127.0.0.1:3493
FD 25
FUUID 64ee55aa-f33f-91a4-86ad-f675ec87952896ec
NAME USV
NR 154
PARTIAL
STATE 1:OL
<br>
Batteriespannung 13.10 V
<br>
Eingangsspannung 228.7 V
<br>
USV Load 32 %
<br>
USV Temperatur 25.0 °C
TYPE NUT
UpsName mustek
buffer
eventCount 10436
lastStatus OL
pollValState 40
READINGS:
2023-09-10 20:34:03 battery.voltage 13.10
2023-09-10 20:34:03 input.voltage 228.7
2023-09-10 20:34:33 state OL
2023-09-10 20:34:03 ups.load 32
2023-09-10 20:34:03 ups.temperature 25.0
helper:
battery.voltage 13.10
device.type ups
driver.name nutdrv_qx
driver.parameter.pollfreq 30
driver.parameter.pollinterval 2
driver.parameter.port auto
driver.parameter.synchronous no
driver.version 2.7.4
driver.version.data Q1 0.07
driver.version.internal 0.28
input.frequency 50.1
input.voltage 228.7
input.voltage.fault 228.7
output.voltage 228.6
ups.beeper.status enabled
ups.delay.shutdown 30
ups.delay.start 180
ups.load 32
ups.productid 5161
ups.status OL
ups.temperature 25.0
ups.type offline / line interactive
ups.vendorid 0665
Attributes:
asReadings battery.charge,battery.runtime,input.voltage,ups.load,ups.power,ups.realpower,battery.voltage,ups.temperature
devStateIcon 1.OB:USV_battery@red 1.OL:hue_filled_plug@green
disable 0
fp_Grundriss 642,605,0,USV,
pollState 10
pollVal 60
room Strom
stateFormat 1:state
<br>
Batteriespannung battery.voltage V
<br>
Eingangsspannung input.voltage V
<br>
USV Load ups.load %
<br>
USV Temperatur ups.temperature °C
Ok, du verwendest zwei Icons, das USV_battery gibts auf meiner Test-Installation nicht, da muss ich mich mit beschäftigen warum.
Wenn du nur ein Icon verwendet hättest könnte mein Beispiel so aussehen:
{my %val2color = (
'OL' => 'green',
'OB' => 'red',);
my $color = $val2color{ReadingsVal("$name", 'state', 'error')};
$color = 'lightgrey' if !$val2color{ReadingsVal("$name", 'state', 'error')};
return "<span>".FW_makeImage("hue_filled_plug\@$color",'')."</span><br>
<span>Batteriespannung ".ReadingsNum($name,'battery.voltage',0)." A</span><br>
<span>Eingangsspannung ".ReadingsNum($name,'input.voltage',0)."</span><br>
<span>USV Load ".ReadingsNum($name,'ups.load',0)."</span><br>
<span>Temperatur ".ReadingsNum($name,'ups.temperature',0)."</span>"
}
Da du zwei verschiedene verwendest und für den dritten Zustand gar kein Icon angegeben hast, muss ich erstmal weiter grübeln, weiß aber nicht ob das heute noch was wird.
Das Icon kannst du nicht haben,ist von mir da ich nichts passendes gefunden habe, sind im anhang, das 3. Icon kann das sein "message_attention" in Orange
Mein Beispiel sollte dann eigentlich so bei Dir klappen:
{my %val2color = (
'OL' => 'hue_filled_plug@green',
'OB' => 'USV_battery@red',);
my $color = $val2color{ReadingsVal("$name", 'state', 'error')};
$color = 'USV_online@lightgrey' if !$val2color{ReadingsVal("$name", 'state', 'error')};
return "<span>".FW_makeImage("$color",'')."</span><br>
<span>Batteriespannung ".ReadingsNum($name,'battery.voltage',0)." A</span><br>
<span>Eingangsspannung ".ReadingsNum($name,'input.voltage',0)."</span><br>
<span>USV Load ".ReadingsNum($name,'ups.load',0)."</span><br>
<span>Temperatur ".ReadingsNum($name,'ups.temperature',0)."</span>"
}
Sorry wenn ich jetzt doof Frage.
Soll das als userReading oder in stateFormat??
Mach ein copy USV USVTest
in der Kommandozeile.
Lösche stateFormat in dem USVTest-Device, ersetze deinen Code in devstaticon durch meinen gezeigten und führe ein {delete($defs{USVTest}{STATE})}
in der Kommandozeile aus.
Sehe leider von der Optik keinen Unterschied!
Screenshot_20230910_222458_Chrome.jpg
Was brauchst du von mir? Wie kann ich dir helfen
Wenn das jetzt nicht passt, vermute ich, das Ziel war den ganzen "Text" in der DeviceOverview je nach Zustand von state einzufärben ?
Also mir würde es echt reichen wenn das Icon und die Werte eingefärbt wären die Texte
Batteriespannung
Eingangsspannung
USV Load
USV Temperatur
Müssen nicht farbig werden, wäre aber nicht schlimm.
Das nächste mal erwarte ich bitte von Dir das du dich mit den gezeigten Vorschlägen beschäftigst und nicht alles aus der Nase ziehen lässt:
{my %val2color = (
'OL' => 'hue_filled_plug@green',
'OB' => 'people_sensor@red',);
my $color = $val2color{ReadingsVal("$name", 'state', 'error')};
$color = 'control_home@lightgrey' if !$val2color{ReadingsVal("$name", 'state', 'error')};
my $coltext = substr($color, index($color, "@") + 1);
return "<span>".FW_makeImage("$color",'')."</span><br>
<span>Batteriespannung </span><span style='color: ".$coltext."'>".ReadingsNum($name,'battery.voltage',0)." A</span><br>
<span>Eingangsspannung </span><span style='color: ".$coltext."'>".ReadingsNum($name,'input.voltage',0)."</span><br>
<span>USV Load </span><span style='color: ".$coltext."'>".ReadingsNum($name,'ups.load',0)."</span><br>
<span>Temperatur </span><span style='color: ".$coltext."'>".ReadingsNum($name,'ups.temperature',0)."</span>"
}
Super, vielen vielen herzlichen Dank, jetzt heißt es den Code verstehen und für noch ein zwei andere Sachen anpassen.
Danke das du so geduldig bist, warst. Ich finde das sieht jetzt soviel geiler aus und man kann den Status viel schneller erkennen.
Danke danke danke im übrigen für beide!!!
So habe die Anzeige noch um die Einheiten V % Und °C ergänzt macht jetzt echt was her auch im Floorplan