FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Müller am 27 September 2019, 18:44:26

Titel: Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 27 September 2019, 18:44:26
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.
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Beta-User am 27 September 2019, 21:16:53
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 ;) .
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 28 September 2019, 09:16:34
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?

Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Beta-User am 28 September 2019, 09:57:34
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
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 28 September 2019, 20:28:42
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?
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Beta-User am 29 September 2019, 08:38:30
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';
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 30 September 2019, 00:34:06
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......)
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Beta-User am 30 September 2019, 07:20:58
...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" ;) .
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 30 September 2019, 09:50:42
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.
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Beta-User am 30 September 2019, 10:02:34
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.
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 30 September 2019, 10:16:04
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)
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Beta-User am 30 September 2019, 10:28:40
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>")}
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 30 September 2019, 13:25:28
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)
Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Beta-User am 30 September 2019, 13:57:00
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

Titel: Antw:Anpassen von Icon - {zigbee2mqtt_devStateIcon255($name,'hex')}
Beitrag von: Müller am 30 September 2019, 16:55:17
https://forum.fhem.de/index.php/topic,104136.0.html (https://forum.fhem.de/index.php/topic,104136.0.html)