gauge.png
Hallo zusammen,
das ist der Hilfe-Thread für die Gauge-Widgets.
Infos zum Einrichten finden sich im Wiki:
https://wiki.fhem.de/wiki/FHEMWEB/Gauge
https://wiki.fhem.de/wiki/FHEMWEB/Widgets#Beigesteuerte_Widgets
Gruß schwatter
Danke für die Widgets.
Steht zwar so im Text, aber als kleine Anmerkung:
Zitatattr <devicename> widgetOverride cmd<X>:multigauge,<Ring1>,<Ring2>,<Ring3>,<Label>,<Skalierung>
bzw.
Zitatattr <devicename> widgetOverride cmd<X>:gauge,<Reading>,<Einheit>,<Min>,<Max>,<Farbe/Modus>,<Skalierung>
Danke, die Sonne...hab noch ein paar Stellen angepasst.
Gruß schwatter
Ich habe da mal eine Frage:
Wenn ich die Größe der Widgets über die Skalierung mit dem optionalen letzten Parameter verändere,
werden damit ALLE Widgets in der Größe verändert.
Auch dann, wenn jeweils unterschiedliche Faktoren oder Namen für <cmd> eingetragen sind.
Ist das Absicht, oder fehlt mir da das Verständnis?
Moin,
was ich noch auf todo habe, jedes muss noch einzigartiger werden. Wahrscheinlich
hängt das damit zusammen.
Biste so nett und gibst mir ein Beispieldummy? Oder ist das Widget übergriffig
geworden auf nicht-gauge-widgets?
Gruß schwatter
Daran wird es nicht scheitern.
Hier device Nr. 1:
define Hideki_30_1 Hideki Hideki_30_1
attr Hideki_30_1 room Hideki
attr Hideki_30_1 stateFormat [$name:temperature] °C, [$name:humidity] %, [$name:battery], [$name:state:t]
attr Hideki_30_1 webCmd cmd1
attr Hideki_30_1 widgetOverride cmd1:multigauge,temperature:°C:#ff0000:10-30-none-none,humidity:%:#0000ff:10-90-none-none,none,Küche,1.5
# CODE Hideki_30_1
# DEF Hideki_30_1
# FUUID 6a09604b-f33f-2b56-488a-1b8b0bcff84396ba
# LASTInputDev SIGNALespDach
# MSGCNT 3
# NAME Hideki_30_1
# NR 87
# SIGNALespDach_DMSG P12#75E8BACA2FBEDF51872B01
# SIGNALespDach_MSGCNT 3
# SIGNALespDach_Protocol_ID 12
# SIGNALespDach_RAWMSG MC;LL=-1002;LH=952;SL=-524;SH=458;D=A8FA345AC85E0A09758F4AE;C=489;L=91;R=31;s2;b1;
# SIGNALespDach_RSSI -58.5
# SIGNALespDach_TIME 2026-06-29 11:24:30
# STATE 27.1 °C, 61 %, ok, 2026-06-29 11:24:30
# TYPE Hideki
# eventCount 3
# lastMSG 7538ce5e71c261f3892b01
# lastReceive 1782725070.92043
# READINGS:
# 2026-06-29 11:24:30 battery ok
# 2026-06-29 11:24:30 batteryState ok
# 2026-06-29 11:24:30 channel 1
# 2026-06-29 11:24:30 comfort_level Hum. OK. Temp. uncomfortable (>24.9 or <20)
# 2026-06-29 11:24:30 humidity 61
# 2026-06-29 11:24:30 package_number 1
# 2026-06-29 11:24:30 state T: 27.1 H: 61
# 2026-06-29 11:24:30 temperature 27.1
#
setstate Hideki_30_1 27.1 °C, 61 %, ok, 2026-06-29 11:24:30
setstate Hideki_30_1 2026-06-29 11:24:30 battery ok
setstate Hideki_30_1 2026-06-29 11:24:30 batteryState ok
setstate Hideki_30_1 2026-06-29 11:24:30 channel 1
setstate Hideki_30_1 2026-06-29 11:24:30 comfort_level Hum. OK. Temp. uncomfortable (>24.9 or <20)
setstate Hideki_30_1 2026-06-29 11:24:30 humidity 61
setstate Hideki_30_1 2026-06-29 11:24:30 package_number 1
setstate Hideki_30_1 2026-06-29 11:24:30 state T: 27.1 H: 61
setstate Hideki_30_1 2026-06-29 11:24:30 temperature 27.1
Das device Nr. 2 unterscheidet sich nur in:
attr Hideki_30_2 webCmd cmd2
attr Hideki_30_2 widgetOverride cmd2:multigauge,temperature:°C:#ff0000:10-30-none-none,humidity:%:#0000ff:10-90-none-none,none,Keller,1
Einen Screenshot hat ich mal angehängt.
Tag,
danke. Ich habe es jetzt angepasst und nochmal mit vielen verschiedenen Widgets und Räumen probiert.
Update per contrib (siehe #1)
- dynamisches CSS-Scoping für die Skalierung hinzugefügt
Grußschwatter
Passt!
Danke.
Super,
dann werde ich die Widgets am Wochenende offiziell einchecken.
Außer es gibt noch Probleme.
Gruß schwatter
Hallo Schwatter,
ja, eine Frage habe ich noch.
Beim Multi-Gauge Widget suggeriert
ZitatFarbe: Hex-Code oder 'hue-START-ENDE' (z.B. hue-240-1)
für mich, dass es einen Farbverlauf vom START bis ENDE gibt, also einen Farbverlauf
Es wird aber nur eine gleichbleibende Farbe dargestellt.
Wie immer: Mein Fehler?
Norbert
Ja genau so soll es sein. Die Farbe ändert sich zum aktuellen Readingwert.
Dabei wird der Ring immer in der Farbe eingefärbt, die Prozentual
dazu passt.
Da fällt mir ein, beim Einzel-Gauge muss ich nochmal schauen, weil nur
hue-240-1 funktioniert. Nicht aber hue-240-0.
Das hat aber nichts mit dir zu tun? Oben in deinen Beispielen hattest du
nur eine feste Farbe per Hexdecimal. Vielleicht immer noch so?
Gruß schwatter
Zitat von: schwatter am 03 Juli 2026, 10:42:36Ja genau so soll es sein. Die Farbe ändert sich zum aktuellen Readingwert.
Ok, der Ring als Ganzes wird variabel eingefärbt und kein kontinuierlicher Farbverlauf über den Ring selbst.
Also wie gesagt, mein Fehler.
Aktuell habe ich feste Hex-Werte. HUE hatte ich nur mal ausprobiert.
Norbert
Morgen,
Miniupdate im contrib
- fix für hue 0 im Multigauge
Gruß schwatter
Nabend,
ab Morgen stehen die beiden Widgets per Update bereit.
Der Link zum Wiki ist im ersten Post.
Gruß schwatter
Hallo schwatter,
ich habe mal zwei Fragen zum Widget:
Frage 1:
Wäre es auch möglich Perl-Code für die Farbe mit einzubauen?
Hintergrund ist der, dass ich an anderer Stelle die Farbe in Abgängigkeit einer Temperatur über color:pahcolor ermittle.
{my $temp=ReadingsNum('Z2_Vorne','temperature',0);
fhem("set Nachtlicht_EG color ".substr(Color::pahColor(0,15,25,$temp,[0,0,255,120,180,180,40,255,60,255,255,0,255,69,0],0),0,6))}
Frage 2:
Gibt es eine Beschreibung, welche Zahlenwerte die Farben für den HUE-Modus haben können?
Soweit ich gefunden habe, geht HUE für den Farbton ja von 0 bis 65000. Richtig?
Norbert
Tag,
zu 1.
Im Moment wird nur der Wert bzw Range ermittelt, die fest in widgetOverride hinterlegt ist. Das müsste dann erweitert werden, in dem als drittes
auch ein Reading eingelesen werden kann. Mh, momentan habe ich andere Baustellen. Mal sehen, eine Absage erteile ich aber nicht.
zu 2.
Das habe ich vielleicht schlecht kommuniziert bzw. muss ich gegebenfalls umbenennen. Eingebaut ist CSS HSL/HSV: 0–360°
https://developer.mozilla.org/de/docs/Web/CSS/Reference/Values/hue
0° = Rot
60° = Gelb
120° = Grün
180° = Cyan
240° = Blau
300° = Magenta
360° = wieder Rot
Bedeutet, aus hue-120-0 muss ich hsl-120-0 werden.
Gruß schwatter
Nur keine Hektik. Das ist nice to have.
Ich baue mir das Attrikbut jetzt über ein notify zusammen.
define nHideki_1 notify Hideki_30_1:temperature:.* {\
my $newTemp=ReadingsNum($NAME,'temperature',0);;\
my $oldTemp=OldReadingsNum($NAME,'temperature',0);;\
if ($newTemp != $oldTemp){\
my $color=substr(Color::pahColor(0,15,25,$newTemp,[0,0,255,120,180,180,40,255,60,255,255,0,255,69,0],0),0,6);;\
my $string='cmd1:multigauge,temperature:°C:#'.$color.':0-35-none-none,humidity:%:#0000ff:10-90-none-none,none,Küche,1';;\
fhem("attr -silent $NAME widgetOverride $string");;\
}\
}
# CFGFN
# DEF Hideki_30_1:temperature:.* {
#my $newTemp=ReadingsNum($NAME,'temperature',0);
#my $oldTemp=OldReadingsNum($NAME,'temperature',0);
#if ($newTemp != $oldTemp){
# my $color=substr(Color::pahColor(0,15,25,$newTemp,[0,0,255,120,180,180,40,255,60,255,255,0,255,69,0],0),0,6);
# my $string='cmd1:multigauge,temperature:°C:#'.$color.':0-35-none-none,humidity:%:#0000ff:10-90-none-none,none,Küche,1';
# fhem("attr -silent $NAME widgetOverride $string");
#}
#}
# FUUID 6a6a4920-f33f-2b56-0677-eb84762e200b0263
# NAME nHideki_1
# NOTIFYDEV Hideki_30_1
# NR 120
# NTFY_ORDER 50-nHideki_1
# REGEXP Hideki_30_1:temperature:.*
# STATE 2026-07-29 21:07:55
# TRIGGERTIME 1785352075.34352
# TYPE notify
# eventCount 6
# READINGS:
# 2026-07-29 20:55:41 state active
# 2026-07-29 21:07:55 triggeredByDev Hideki_30_1
# 2026-07-29 21:07:55 triggeredByEvent temperature: 24.1
#
setstate nHideki_1 2026-07-29 21:07:55
setstate nHideki_1 2026-07-29 20:55:41 state active
setstate nHideki_1 2026-07-29 21:07:55 triggeredByDev Hideki_30_1
setstate nHideki_1 2026-07-29 21:07:55 triggeredByEvent temperature: 24.1
Was die Farben angeht, habe ich ja etwas total falsch verstanden.