FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: taskkill am 27 Januar 2022, 09:56:36

Titel: [gelöst] farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: taskkill am 27 Januar 2022, 09:56:36
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...
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: MadMax-FHEM am 27 Januar 2022, 10:01:59
Schreibst du auch noch:

WO (FhemWeb-Übersicht, Dashboard, readingsGroup, TabletUI, ...)

Welche Devices

Gruß, Joachim
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: taskkill am 27 Januar 2022, 10:04:56
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
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: MadMax-FHEM am 27 Januar 2022, 10:20:19
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
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag 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.
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: DeeSPe am 27 Januar 2022, 10:44:25
Warum löst du das nicht über ein entsprechend erkennbares "devStateIcon" oder über "stateFormat"?
Das ist wesentlich einfacher!

Gruß
Dan
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: jhohmann am 27 Januar 2022, 10:48:51
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)}
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: MadMax-FHEM am 27 Januar 2022, 10:56:18
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
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag 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))}
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: MadMax-FHEM am 27 Januar 2022, 11:35:15
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
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: taskkill am 27 Januar 2022, 12:13:26
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 ")}
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: MadMax-FHEM am 27 Januar 2022, 12:48:29
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
Titel: Antw:farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: taskkill am 27 Januar 2022, 14:22:32
Danke, es ist vollbracht  :)
Titel: Antw:[gelöst] farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: carlos am 27 Januar 2022, 14:48:53
Also ich mache das mit readingswatcher einem reading activity (dead oder alive) und dem entsprechenden devStateIcon.
Gruß

Carlos
Titel: Antw:[gelöst] farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: taskkill am 27 Januar 2022, 15:07:34
Und wie sieht so ein Eintrag aus?
Titel: Antw:[gelöst] farbliche Devicenamen bei nichterreichbarkeit ?
Beitrag von: carlos am 27 Januar 2022, 15:23:54
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.