Guten Abend
Ich möchte gerne das Icon wenn Water:1 ist das Icon (huminidity) in Rot darstellen und wenn rechable:0 ist auch in rot anzeigen. Wenn batterystate:no ist das Icon in gelb darstellen.
ZitatDEF sensor 20 IODev=deconz
FUUID 6143b545-f33f-cdd4-3e98-d3b0ed9fbd7ea2b8
FVERSION 31_HUEDevice.pm:0.262040/2022-07-09
ID S20
INTERVAL
IODev deconz
NAME Spuele
NR 323
STATE Wasser:Nein
TYPE HUEDevice
eventCount 3
has_events 1
manufacturername LUMI
modelid lumi.sensor_wleak.aq1
name Wassersensor Spüle
on 1
reachable 1
swversion 0.0.0_0006
type ZHAWater
uniqueid 00:15:8d:00:06:c5:d9:7a-01-0500
READINGS:
2023-11-22 20:01:13 IODev deconz
2023-11-22 21:55:02 battery 62
2023-11-22 21:55:02 batteryPercent 62
2023-07-01 03:20:16 batteryState ok
2023-11-22 21:55:02 lastseen 2023-11-22T20:55Z
2023-11-22 21:55:02 reachable 1
2023-07-01 03:20:16 tampered 0
2023-11-22 21:55:02 temperature 27
2023-11-22 21:55:02 water 0
helper:
devtype S
state
update_timeout 1
configList:
json:
ep 1
etag b6288240d7bd6b58d8e90647aa32f682
lastannounced
lastseen 2023-11-22T20:55Z
manufacturername LUMI
modelid lumi.sensor_wleak.aq1
name Wassersensor Spüle
swversion 0.0.0_0006
type ZHAWater
uniqueid 00:15:8d:00:06:c5:d9:7a-01-0500
config:
battery 62
temperature 2700
state:
lastupdated 2023-11-22T20:55:02.934
setList:
Attributes:
event-on-change-reading .*
eventMap 0:Nein 1:Ja
group Wassersensoren
icon humidity
model lumi.sensor_wleak.aq1
room 2_EG->Kueche
stateFormat Wasser:water
Als Suchanstoß:
https://wiki.fhem.de/wiki/DevStateIcon (https://wiki.fhem.de/wiki/DevStateIcon)
Hab z.b. ausprobiert DevStateIcon
Water:0:humidity@red
rechable:0:humidity@yellow
batterystate:no:humidity@yellow
Funkioniert aber nicht. Was mach ich da falsch
Zitat von: Sebastian84 am 23 November 2023, 16:15:34Funkioniert aber nicht. Was mach ich da falsch
Hast du mal die commandref gelesen oder auch den verlinkten Wiki?
Und versucht nachzuvollziehen?
Weil da steht z.B.:
Zitat von: commandrefSpace 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 STATE text will be displayed.
Bei dir steht in STATE:
Zitat von: STATESTATE Wasser:Nein
Wie soll dann eines deiner Versuche etwas bewirken?
EDIT:
das hier sollte estwas bewirken:
Wasser.Nein:humidity@red
Noch zur Sicherheit: du kannst das icon "VOR" dem Devive nicht (einfach so) anpassen.
Wenn du das willst, wirst du verm. mit CSS oder Javascript arbeiten müssen.
Zumindest fällt mir keine andere Möglichkeit ein.
Mit devStateIcon kannst du "nur" statt dem Text in STATE eben ein oder mehrere Icons anzeigen lassen (bei mehrzeiligem STATE)...
Was du willst (also wenn du zufrieden bist mit dem Icon "hinter" dem Device), dann brauchst du entweder einen mehrzeiligen STATE und dann eben mehrere Icons (für jede Zeile des STATE eben eines) oder du schreibst eine Perl-Funktion (z.B. in myUtils) und gibst eben je nach "Zustand"/"Wunsch" eben das entsprechende Icon (und Farbe) zurück.
STATE anpassen (und auch mehrzeilig) geht mittels stateFormat:
Zitat von: commandrefNote: The above is valid for each line of STATE. If STATE (through stateFormat) is multilined, multiple icons (one per line) will be created.
UND: bitte (endlich) die lists in CODE-Tags NICHT in "quotes"/Zitate, danke.Gruß, Joachim
Ausserdem musst Du Groß-/Klein und Rechtschreibung beachten 8)
Viele Grüße
Jürgen
Kann man den Wenn Zustand Wasser:Ja
Und Spule in rot anzeigen zu lassen?
Spule?
Weitere Zustände durch Leerzeichen getrennt anfügen...
Steht alles in den Links bzw. commandref...
Gruß, Joachim
Sorry meine Spuele. Ok danke werde ich versuchen.
Zitat von: Sebastian84 am 23 November 2023, 16:15:34Hab z.b. ausprobiert DevStateIcon
Water:0:humidity@red
rechable:0:humidity@yellow
batterystate:no:humidity@yellow
Funkioniert aber nicht. Was mach ich da falsch
Drei Werte, dreimal falsch.
Falsch: Water
Richtig: water
Falsch: rechable
Richtig: reachable
Falsch: batterystate
Richtig: batteryState
und das Attribut ist auch falsch.Falsch: DevStateIcon
Richtig: devStateIcon
Müste nicht auch devStateStyle gehen?
Jetzt wird der Text
Wasser:Nein aber auch in rot angezeigt.
Ich wollte eigendlich das nur bei Wasser:Ja die Schrift in rot angezeigt wird und sonst nur in Weiß wenn Wasser:Nein ist.
style=color:red;;Wasser:Ja;;style=color:front-weight;;Wasser:Nein
Willst du nun farbige Icons oder farbigen Text?
Gruß, Joachim
farbiger Text reicht für mich aus.
Commandref (oder Wiki o.ä.) lesen ist nicht so deins?
Wo hast du nur immer die phantasievollen Definitionen her?
devStateSytle ist nicht dynamisch, sondern stellt den Style einmal ein und fertig, dann ist das Device so.
Wenn du dynamisch etwas am Style ändern willst (willst du wohl?), dann z.B. mit stateFormat und Perl...
EDIT: vielleicht hier mal schauen https://wiki.fhem.de/wiki/DeviceOverview_anpassen
Geht sicher auch anders/besser, hier (trotzdem mal) ein Vorschlag für stateFormat der evtl. das macht was du mit deinem letzten Versuch erreichen wolltest (zumindest so wie ich es verstehe: Infos sind ja sehr spärlich)...
{
# color code https://html-color-codes.info/
# https://www.computerhope.com/htmcolor.htm
my $Style = "Wasser: ";
if(ReadingsNum($name,"water",0) == 1)
{
# red
$Style .= "<span style='color:#FF0000'>Ja</span>";
}
else
{
$Style .= "<span>Nein</span>";
}
}
Gruß, Joachim
Habe deine perl. Code in 99_myUtils.pm eingetragen.
Leider wird das Wasser:Ja nicht in roter Schrift dagestellt,wenn state: Wasser:Ja ist.
Wer hat was von myUtils geschrieben?
Bzw. kannst du schon dort einfügen aber dann als Sub und du musst es nat. auch aufrufen (lassen)...
Gedacht war es (wie geschrieben) für stateFormat...
Und Aussagen wie "geht nicht" ohne weitere Infos (aktuelles list, Logeinträge, ...) helfen nicht zu helfen...
Bei einem Testdummy bei mir wird Ja rot.
Allerdings nur das Ja.
Wenn du den ganzen Text willst, dann entsprechend umbauen...
EDIT: ich habe sogar dein eventMap übernommen. Wobei ich nicht verstehen kann warum das zum "Übersetzen" genutzt wird. Es macht ja (wie der Name sagt) mehr als nur Anzeige. Wenn man das einsetzt, muss man u.U. auch "Automatisierungen" (notify, FileLog, ...) anpassen...
Gruß, Joachim
Wenn ich den perl code in stateFormat eingebe kommt der Fehler
Missing right curly or square bracket at (eval 9799315) line 1, at end of line
syntax error at (eval 9799315) line 1, at EOF
Zitat von: Sebastian84 am 27 November 2023, 07:25:21Wenn ich den perl code in stateFormat eingebe kommt der Fehler
Missing right curly or square bracket at (eval 9799315) line 1, at end of line
syntax error at (eval 9799315) line 1, at EOF
Wie (phantasievoll) hast du es denn eingegeben?
Wenn ich es "ganz normal" eingebe:
DropDown das Attribut stateFormat anwählen
In das Eingabefeld klicken
Aus Forum den Code kopieren und dort einfügen
Auf Ok klicken
Dann vorne auf "attr" zum Übernehmen
Save Config
-> kein Fehler und fertig
Gruß, Joachim
DEF sensor 20 IODev=deconz
FUUID 6143b545-f33f-cdd4-3e98-d3b0ed9fbd7ea2b8
FVERSION 31_HUEDevice.pm:0.262040/2022-07-09
ID S20
INTERVAL
IODev deconz
NAME Spuele
NR 323
STATE Wasser:Nein
TYPE HUEDevice
eventCount 8
has_events 1
manufacturername LUMI
modelid lumi.sensor_wleak.aq1
name Wassersensor Spüle
on 1
reachable 1
swversion 0.0.0_0006
type ZHAWater
uniqueid 00:15:8d:00:06:c5:d9:7a-01-0500
READINGS:
2023-11-27 07:26:23 IODev deconz
2023-11-27 09:09:31 battery 52
2023-11-27 09:09:31 batteryPercent 52
2023-07-01 03:20:16 batteryState ok
2023-11-27 09:09:31 lastseen 2023-11-27T08:09Z
2023-11-27 09:09:31 reachable 1
2023-07-01 03:20:16 tampered 0
2023-11-27 09:09:31 temperature 26
2023-11-27 09:09:31 water 0
helper:
devtype S
state
update_timeout 1
configList:
json:
ep 1
etag f85b362a86e4eedf5fa4689f68625f3a
lastannounced
lastseen 2023-11-27T08:09Z
manufacturername LUMI
modelid lumi.sensor_wleak.aq1
name Wassersensor Spüle
swversion 0.0.0_0006
type ZHAWater
uniqueid 00:15:8d:00:06:c5:d9:7a-01-0500
config:
battery 52
temperature 2600
state:
lastupdated 2023-11-27T08:09:31.512
setList:
Attributes:
event-on-change-reading .*
eventMap 0:Nein 1:Ja
group Wassersensoren
icon humidity
model lumi.sensor_wleak.aq1
room 2_EG->Kueche
stateFormat { # color code https://html-color-codes.info/ # https://www.computerhope.com/htmcolor.htm my $Style = "Wasser: "; if(ReadingsNum($name,"water",0) == 1) { # red $Style .= "<span style='color:#FF0000'>Ja</span>"; } else { $Style .= "<span>Nein</span>"; } }
Bei mir kommt der Fehler den ich geschrieben habe.
Wenn ich dann beim Fehler Ok drücke und dann auf Save Config. Dann steht das in stateFormat drin. Aber wenn ich den Sensor auslöse. Bekomme ich ne push Naricht, aber das ja wird nicht rot.
Wie, womit kopierst du denn und fügst ein?
Weil so ist der Fehler klar aber so ist es auch nicht der Code aus dem Forum, weil der eben mehrzeilig ist...
Wenn ich das mache, dann ist es mehrzeilig, was es auch ist.
Gut, dann füge ich das für RawDef noch an (wobei wenn hier dann etwas mit copy/paste nicht passt, passt es auch dann wohl nicht):
attr Spuele stateFormat {\
# color code https://html-color-codes.info/\
# https://www.computerhope.com/htmcolor.htm\
my $Style = "Wasser: ";;\
if(ReadingsNum($name,"water",0) == 1)\
{\
# red\
$Style .= "<span style='color:#FF0000'>Ja</span>";;\
}\
else\
{\
$Style .= "<span>Nein</span>";;\
}\
}\
Wenn es dann auch nicht geht, weiß ich nicht was du machst...
(und wie du überhaupt etwas bei deinem System konfiguriert bekommen hast)
Gruß, Joachim
Danke. Das hat geklappt
Zitat von: Sebastian84 am 27 November 2023, 10:29:11Danke. Das hat geklappt
Das Einfügen oder ist damit auch das Problem gelöst?
(wenn auch der Titel ja nicht mehr passt)
-> wenn dem so ist, dann doch bitte ein [gelöst] etc. "vorne dran", danke.
Gruß, Joachim