Hallo, ist es eigentlich schwierig sich das Icon etwas anzupassen?
Die Icons {zigbee2mqtt_devStateIcon255($name)} und {zigbee2mqtt_devStateIcon255($name,'hex')} sind schon toll.
Eine Winzigkeit würde ich gerne verändern. Meine anderen Icons sind im ausgeschalteten Zustand alle grau. Nun würde ich gerne dies auch hier so machen, ABER würde gerne die restlichen Farben bzw. Helligkeit von {zigbee2mqtt_devStateIcon255($name,'hex')} beibehalten.
Du kannst den Code aus MQTT2_DEVICE kopieren und am besten unter einem anderen Namen in eine myUtils-file reinkopieren und nach Belieben verändern.
Siehe 99_myUtils-Artikel im Wiki. Aber bitte erst einlesen und selber probieren, bevor die nächsten Fragen dazu kommen ;) .
Hallo Beta-User,
danke dass du auch hier wieder Hilfe gebend zur Seite stehst. Könntest du bitte etwas konkreter angeben, wo der Code zu finden ist?
Am Ende des Moduls 10_MQTT2_DEVICE.pm, siehe z.B. auch ab hier: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/10_MQTT2_DEVICE.pm#L715
Danke für die Hilfe. Leider muß ich hier feststellen, dass ich nicht in der Lage bin hier was selbst zu ändern.
Könnte man aus zwei readings (state & brightness) ein icon machen?
Sorry, aber einen Perl-Grundkurs will ich daraus jetzt nicht machen.
Lies bitte zunächst mal die Perl-Specials in der commandref und schau dann den Code nochmal durch. Dann sollte dir klar sein, dass der Code automatisch den brightness-Wert mit verarbeitet, wenn er denn gesetzt ist (und kein Farbwert verwendet wird).
Zur Beruhigung: Perl lernt sich nicht in 3 Tagen FHEM-Anwendung, das dauert.
Aber wenn "off" einfach "grau" (bzw. "grey") sein soll, dann ist das wirklich ein Klacks. Schlicht den Code aus dem Modul nehmen, anderen Namen vergeben (, die Aufrufe in devStateIcon entsprechend ändern) und die heutige Zeile 725 dann so anpassen:
return '.*:off@grey:toggle';
danke für die Hilfe.
wenn ich in Zeile 723
my $state = lc(ReadingsVal($name,"state","on@yellow"));
wird dann das icon generell gelb, außer wenn es aus ist ?
(in der jetzigen Form ist das icon grün, wenn brigthness kleiner 255 - gelb fände ich logischer......)
...teste es doch aus... ::)
(Nein, das ist nicht die Lösung, man benötigt m.E. fast am Ende noch eine Zeile mit einer Abfrage/bedingten Änderung ;) , und nein, ich will das hier nicht posten)
Das Icon hat ohne Farbangabe (in Worten oder als HEX-Wert) die Hintergrundfarbe, und das ist so beabsichtigt (ich verwende einen dark-Style, da ist es orange, das paßt...). Wer das anders mag, muß halt "selbst ran" ;) .
ZitatDas Icon hat ohne Farbangabe (in Worten oder als HEX-Wert) die Hintergrundfarbe, und das ist so beabsichtigt (ich verwende einen dark-Style, da ist es orange, das paßt...).
Ich habe mal den dark style gestetet. Hier ist der gleiche Detailfehler. Nur wenn Brightness auf volle Pulle ist, dann ist das Icon orange.
Wenn die Lampe gedimmt ist, kommt bspw. das Icon "dim50%", welches dann weiß ist. Nach meiner Ansicht, wäre auch hier orange zu bevorzugen.....
ZitatWer das anders mag, muß halt "selbst ran" ;) .
Ich gebe dir hier voll Recht. Im meinem Fall werde ich dies mal zurückstellen, bis ich mehr gelernt habe.
Hmm, mMn. ist der "Detailfehler" anders herum: Da du bei einer farbigen Lampe auch die Farbe angezeigt erhalten willst (wg. 2. Argument), sollte die Leuchte auch bei voll aufgedreht weiß sein ;) . Das ist ja die gewählte Farbe, oder?
Dazu dann Zeile 741 ändern und das "if($rgb ne "FFFFFF")" am Ende dort löschen.
kuriöserweise bei meiner Farbirne
devStateIcon {zigbee2mqtt_devStateIcon255($name,'hex')}
ist das Icon immer in der richtigen Farbe. Auch bei Dimmstufe 50% ist es bspw. blau oder rot. (nur bei Off gibt es die defaultfarbe vom style)
bei meiner gedimmten Lampe
devstateIcon {zigbee2mqtt_devStateIcon255($name)}
ist nur bei 100% das icon gelb/orange (Farbe des aktiven Icons) sonst grün/weiß (Farbe des inaktiven Icons) ?
(Im Darkstyle ist dein Icon weiß, wenn die Lampe aus ist, weiß bei 50% gedimmt und orange bei 100% Leistung)
dh. bei der RGB wäre off@grey perfekt nur bei der Weißlampe müsste dim50% zu dim50%@yellow geändert werden (oder orange im dark style)
Hmm,
im Moment kann ich im Code nicht erkennen, dass er irgendeinen Farbwert vergibt, wenn das 2. Argument nicht verwendet wird. Kann sein, dass das auch an den Icons liegt, die du da im Hintergrund hast.
Du kannst den Rückgabewert leicht selbst testen, wenn du das in das Kommandofeld eingibst (bitte anpassen):
{zigbee2mqtt_devStateIcon255("<dein Device-Name>")}
Das sind die Rückgabewerte (in verschiedenen Zuständen) von der dimmbaren Birne
.*:dim50%:toggle
.*:off:toggle
.*:on:toggle
und bei der Farbirne
.*:dim56%:toggle
(blau)
.*:dim43%:toggle
(rot)
qed: Ich sehe keinen Farbrückgabewert.
Dass da was farbig angezeigt wird, muß daher m.E. mit irgendwas anderem zu tun haben. Beim Durchsehen der SVG habe ich irgendwo gesehen, dass da zwar die dim50% usw. vorhanden sind (das sind die FS20-Glühbirnen mit einer grünen Level-Anzeige), aber auch bei mir werden dann letztendlich die Icons aus dem openautomation-Zweig angezeigt. Da scheint es also nochmal eine Übersetzung zu geben...?!? Vermutlich rührt dann auch die Farbe von dieser Weiterverarbeitung her.
Dann kann ich im Moment nicht weiterhelfen, evtl. bitte mal einen neuen Thread im FHEMWEB-Bereich aufmachen (mit Verweis auf hier). (Neu, damit Rudi das sieht, bitte nicht einfach verschieben).
Evtl. kann Rudi da was drehen (im einfachsten Fall ändern wir den devStateIcon-Code in MQTT2_DEVICE, dass gleich die openautomation-Icons angezeigt werden, dann können wir auch die "if-Abfrage" im Color-Zweig noch diskutieren, die mMn. eigentlich keinen Sinn macht).
Gruß, Beta-User
https://forum.fhem.de/index.php/topic,104136.0.html (https://forum.fhem.de/index.php/topic,104136.0.html)