[gelöst] Icon einfärben

Begonnen von Burny4600, 20 Januar 2016, 08:42:15

Vorheriges Thema - Nächstes Thema

Burny4600

Wie kann ich Icons einfärben wenn die Statusmeldung in dieser Form ankommen?
smoke_detect: off

Wenn ich einen Status mit on, off oder ähnliches bekomme ist das kein Thema.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Die commandref zu devStateIcon lesen wäre eine gute Idee.

attr DEVICE devStateIcon on:ICON1@green:off off:ICON2@red:on

(nur ein Beispiel)

Burny4600

Das Problem ist nur das genau das nicht beschrieben ist.

Wie schon erwähnt nennt sich der Status smoke_detect: off.

Die Beschreibungen beziehen sich unter anderem auf Status Definitionen die ein Leerzeichen enthalten.
Dieser Status enthält einen Doppelpunkt und ein Leerzeichen.
Und da funktionieren bei mir die Anpassungen nicht.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Genauer geht es kaum. Es steht dort, dass du Regex und Perl Code verwenden kannst. Damit bekommt man dann schon was vernünftiges hin. Auch mit Leerzeichen und Doppelpunkten.

Burny4600

Wo genau findest du das.

Hier steht nichts genauers: http://www.fhemwiki.de/wiki/DevStateIcon
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Ich habe nicht auf das Wiki verwiesen, sondern auf die commandref. Das sollte immer die erste Anlaufstelle sein, denn das ist die FHEM-Doku.

Zitat aus der commandref:

Zitat[...]First form:

       
  • Space separated list of regexp:icon-name:cmd triples, icon-name and cmd may be empty.
    If the state of the device matches regexp, then icon-name will be displayed as the status icon in the room, and (if specified) clicking on the icon executes cmd.  If fhem cannot find icon-name, then the status text will be displayed. Example:
[...]

Second form:

       
  • Perl regexp enclosed in {}. If the code returns undef, then the default icon is used, if it retuns a string enclosed in <>, then it is interpreted as an html string. Else the string is interpreted as a devStateIcon of the first fom, see above. Example:
    {'<div style="width:32px;height:32px;background-color:green"></div>'}[...]

Burny4600

Und unter welcher Rubrik in den Commandref hast du das gefunden.

devStateIcon habe ich darin nicht gefunden.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Bist du sicher, dass du mich nicht veräppeln möchtest? Also gut:

commandref aufrufen, STRG-F drücken und nach devStateIcon suchen. Ist nicht schwer.

Alternativweg: Es ist ein allgemeines Attribut für FHEMWEB und ist deshalb auch dort unter den Attributen aufgeführt.

Ich würde empfehlen, dich mit den Grundlagen von FHEM zu befassen. Die commandref ist nicht nur dafür da, dass sie den Speicher füllt. Sie darf auch gelesen werden.

Burny4600

Danke.
Veräppeln wollte ich dich wirklich nicht.
Aber manchmal sieht man vor lauter Bäume den Wald nicht.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Burny4600

Das klappt einfach nicht.

Habe devStateIcon in der Form definiert on:secur_smoke_detector@green:{smoke_detect: off} {smoke_detect: off}:secur_smoke_detector@red:on

Irgendwo hab ich noch etwas nicht verstanden.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Burny4600

#10
Habe leider immer noch keine funktionierende Lösung für das Einfärben der Icons der Rauchmelder gefunden.
Mit diesen Klammern Ergänzungen stürzt mir FHEM ab.

Habe die Definition des Attributes für devStateIcon in der Form dargestellt wo FHEM noch funktioniert.
attr RM1002_1e7c devStateIcon on:secur_smoke_detector@green:off off:secur_smoke_detector@red:on

Der Status lautet state => smoke_detect: off und vermutlich für Rauchmeldung state => smoke_detect: on

Wenn ich mit Klammern den Status in devStateIcon deklariere ändert sich der Status nicht oder FHEM schmiert ab.
attr RM1002_1e7c devStateIcon on:secur_smoke_detector@green:{smoke_detect: off} {smoke_detect: off}:secur_smoke_detector@red:on

Wer kann mir hier wirklich weiter helfen?
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

#11
1. Bitte verwende Code Tags hier im Forum. So kann man das kaum lesen.

2. Beschäftige dich mit Perl. Darum kommst du sowieso nicht, wenn du FHEM verwendest. Geschweifte Klammern machen noch keinen Perl Code.

3. Vor Perl Code, würde ich es mal mit RegEx probieren (Tutorial Reguläre Ausdrücke - Daniel Fetts Homepage).

Sowas könnte funktionieren (ungetestet):

/smoke_detect:.off/@green /smoke_detect:.on/@red

oder

.*off@green .*on@red

Da du ja nicht schalten möchtest, brauchst du den dritten Teil nicht (siehe commandref zu devStateIcon).

Andernfalls würde ich es mit Perl und ReadingsVal mit Bedingung probieren.

Burny4600

Damit beschäftige ich mich ohnehin.
Aber alles geht nun mal nicht so schnell, darum meine Anfrage hier im Forum um das ganze abzukürzen.
So wie es aussieht wirds aber mit dem abkürzen nichts und werde noch ein Jahr zuwarten müssen um eine vernünftige Lösung zu definieren.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Und meine Lösungsvorschläge hast du getestet?

Burny4600

#14
Ja habe ich.
Aber die funktionieren leider nicht.

Es bleibt dieser Wert anstatt des Icons stehen (smoke_detect: off) und das mit beiden Lösungen .*off@green .*on@red oder /smoke_detect:.off/@green /smoke_detect:.on/@red
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess