Ich möchte gerne den Devicenamen bei verlorener Verbindung rot und bei Verbindung grün darstellen,
wie mache ich das ?
Für Hilfe wäre dankbar...
Schreibst du auch noch:
WO (FhemWeb-Übersicht, Dashboard, readingsGroup, TabletUI, ...)
Welche Devices
Gruß, Joachim
Fhem-Web Übersicht
defmod ESPEasy_ESP01_Grad ESPEasy 192.168.178.42 80 espbridge ESP01_Grad
attr ESPEasy_ESP01_Grad Interval 60
attr ESPEasy_ESP01_Grad group ESPEasy Device
attr ESPEasy_ESP01_Grad icon temp_temperature
attr ESPEasy_ESP01_Grad presenceCheck 1
attr ESPEasy_ESP01_Grad readingSwitchText 1
attr ESPEasy_ESP01_Grad room ESPEasy,HOME
attr ESPEasy_ESP01_Grad setState 3
attr ESPEasy_ESP01_Grad stateFormat Temperatur: temp °C
setstate ESPEasy_ESP01_Grad Temperatur: 27.8 °C
setstate ESPEasy_ESP01_Grad 2022-01-26 17:38:45 IODev espbridge
setstate ESPEasy_ESP01_Grad 2022-01-27 10:02:46 presence present
setstate ESPEasy_ESP01_Grad 2022-01-27 10:02:46 state tem: 27.8
setstate ESPEasy_ESP01_Grad 2022-01-27 10:02:44 temp 27.8
Zitat von: taskkill am 27 Januar 2022, 10:04:56
Fhem-Web Übersicht
Ich fürchte das geht nur mittels css/javascript
Siehe z.B.: https://forum.fhem.de/index.php/topic,125651.msg1202660.html#msg1202660
EDIT: bei readingsGroup gibt es Möglichkeiten mittels Attributen (z.B. valueStyle) (und Subs in myUtils, siehe: https://wiki.fhem.de/wiki/99_myUtils_anlegen )
Gruß, Joachim
Ich möchte ja nicht dauerhaft. Falls Device keinen Strom mehr hat zB. Gerätename rot anzeigen. Da ja noch in der Anzeige der letzte Temperaturwert drin steht und ich somit nicht sehe ob das Device noch da ist.
Warum löst du das nicht über ein entsprechend erkennbares "devStateIcon" oder über "stateFormat"?
Das ist wesentlich einfacher!
Gruß
Dan
Das mit dem stateFormat wollte ich auch vorschlagen.
Das geht auch farblich und man kann auch den Zeitstempel des letzten Kontakts ausgeben.
Hier zwei Beispiele von mir.
Einmal mit Farbe:
attr co2Arbeitszimmer stateFormat { sprintf("<span style='color:%s'>%s</span>",\
ReadingsVal('co2Arbeitszimmer','co2',0) < 800 ? "green":(ReadingsVal('co2Arbeitszimmer','co2',0) < 1200 ?"#FFC300":"red"),\
ReadingsVal('co2Arbeitszimmer','co2',0)." ppm um ".ReadingsTimestamp('co2Arbeitszimmer','co2',undef))}
Und hier mit zeitlicher Ausgabe:
attr AussenLichtsensorAZ stateFormat {ReadingsVal($name,'lux',undef)." lux um ".ReadingsTimestamp($name,'lux',undef).'<br>'.ReadingsVal($name,'batteryPercent',undef)."% Bat am ".ReadingsTimestamp($name,'batteryPercent',undef)}
Zitat von: taskkill am 27 Januar 2022, 10:32:29
Ich möchte ja nicht dauerhaft. Falls Device keinen Strom mehr hat zB. Gerätename rot anzeigen. Da ja noch in der Anzeige der letzte Temperaturwert drin steht und ich somit nicht sehe ob das Device noch da ist.
Der Link bzw. der Code dort war ja nur, um aufzuzeigen wie man das generell auf FhemWeb beeinflussen kann.
Du müsstest nat. noch javascript einbauen und bzgl. Erreichbarkeit anpassen ;)
Aber klar, wenn es nicht der NAME sein muss, dann ist nat. stateFormat das "Tool der Wahl" 8)
Gruß, Joachim
Also grüm macht es schon mal. Bloß keine Umschaltung auf rot wenn Verbindung weg.
Hab ich bestimmt noch nicht richtig eingestellt
{ sprintf("<span style='color:%s'>%s</span>", ReadingsVal('ESPEasy_ESP01_Grad','temp',60) < 63 ? "green":(ReadingsVal('ESPEasy_ESP01_Grad','temp',60) < 65 ?"#FFC300":"red"), ReadingsVal('ESPEasy_ESP01_Grad','temp',60)." °C um ".ReadingsTimestamp('ESPEasy_ESP01_Grad','temp',60))}
Zitat von: taskkill am 27 Januar 2022, 11:24:45
Also grüm macht es schon mal. Bloß keine Umschaltung auf rot wenn Verbindung weg.
Hab ich bestimmt noch nicht richtig eingestellt
{ sprintf("<span style='color:%s'>%s</span>", ReadingsVal('ESPEasy_ESP01_Grad','temp',60) < 63 ? "green":(ReadingsVal('ESPEasy_ESP01_Grad','temp',60) < 65 ?"#FFC300":"red"), ReadingsVal('ESPEasy_ESP01_Grad','temp',60)." °C um ".ReadingsTimestamp('ESPEasy_ESP01_Grad','temp',60))}
Naja, wenn du auf das Reading "temp" deine Farbgestaltung auslegst, dann kann bei Verbindungsabbruch auch nix passieren, "temp" hat sich ja nicht geändert... ;)
Du musst schon auf das anpassen, was eben Verbindung da" bzw. "Verbindung weg" anzeigt... :)
EDIT: würde mal darauf tippen
setstate ESPEasy_ESP01_Grad 2022-01-27 10:02:46 presence present
Also eben statt "temp" das Reading presence abfragen und dann eben auf present/absent prüfen und Farbe einstellen...
Gruß, Joachim
Bekomm ich nicht hin :'(
Wäre jemand so nett die Zeile anzugleichen?
{ sprintf("<span style='color:%s'>%s</span>", ReadingsVal('ESPEasy_ESP01_Grad','present',0) < 63 ? "green":(ReadingsVal('ESPEasy_ESP01_Grad','absent',0) < 65 ? "#FFC300":"red"),ReadingsVal('ESPEasy_ESP01_Grad','temp',0)." °C ")}
Vielleicht so:
{ sprintf("<span style='color:%s'>%s</span>", ReadingsVal('ESPEasy_ESP01_Grad','presence',0) eq "present" ? "green" : "red"),ReadingsVal('ESPEasy_ESP01_Grad','presence','n.a.'))}
Gruß, Joachim
Danke, es ist vollbracht :)
Also ich mache das mit readingswatcher einem reading activity (dead oder alive) und dem entsprechenden devStateIcon.
Gruß
Carlos
Und wie sieht so ein Eintrag aus?
So:
Internals:
CODE CUL_TCM97001_84
DEF CUL_TCM97001_84
FUUID 61ad3fb4-f33f-b077-9830-798a7ae4106fd063
IODev signalESP
NAME NC_WS_84
NR 761
STATE dead
1:ok
ok
2:???
??? °C
3:???
??? %
TYPE CUL_TCM97001
lastH 0
lastT 0
READINGS:
2022-01-27 09:25:35 IODev signalESP
2022-01-27 15:19:05 activity dead
2021-12-05 23:57:53 battery ok
2021-12-05 23:57:53 batteryState ok
2021-12-05 23:40:29 channel 1
2022-01-08 01:18:29 humidity ???
2021-12-05 23:40:29 mode normal
2022-01-08 01:18:29 state T: 2.3 H: 23
2022-01-08 01:18:29 temperature ???
Attributes:
IODev signalESP
alias Temp_Aussen
appOptions {
"template": "thermometer1",
"name": "Aussentemperatur(84)",
"panel": {
"min":5,
"max":20,
"status": [ "temperature::%s°C:%n:success" ]
}
}
devStateIcon 1.ok:measure_battery_100@green 1.low:measure_battery_25@red 2.[+-]?([0-9]*[.])?[0-9]+:temp_temperature 3.[+-]?([0-9]*[.])?[0-9]+:humidity 4.[+-]?([0-9]*[.])?[0-9]+:weather_barometric_pressure alive:10px-kreis-gruen@green dead:10px-kreis-rot@red
event-min-interval .*:300
event-on-change-reading .*
icon temperature_humidity
model NC_WS
mqttDefaults base={"fhemout/$device"}
mqttPublish temperature|humidity:topic={"$base/$name"}
negation-batt 1
readingsWatcher 300,???,temperature,humidity
room CUL_TCM97001
stateFormat activity
1:battery
battery
2:temperature
temperature °C
3:humidity
humidity %
userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
keine Temperatur Werte, Batterie leer, ich geh mal austauschen.
edit: Und schon siehts wieder gut aus.