Hallo,
Ist es möglich die eingestellte Zeit neben dem Icon anzeigen zu lassen?
Konkret habe ich einen WeekDayTimer für den Rollladen, für den ich mir gerne die Uhrzeit fürs Hoch bzw. Runterfahren anzeigen lassen möchte.
DEF Rollo1 12345|05:45|off
Profil 1: Montag 05:45:00 off
Profil 2: Dienstag 05:45:00 off
Profil 3: Mittwoch 05:45:00 off
Profil 4: Donnerstag 05:45:00 off
Profil 5: Freitag 05:45:00 off
in diesem Bespiel würde ich gerne die Anzeige "05:45" neben dem DevStateIcon (oder auch anstatt des DevStateIcon) anzeigen lassen. Hat jemand eine Idee, wie dies realisierbar ist. Vielen Dank.
Erster Ansatz: stateFormatattr rr_Kind1_Presence_Timer stateFormat Nächster Update: nextUpdate Status: state
Wenn es hübscher werden soll: Perl-Variante des Attributs verwenden, um den Text zu kürzen und ggf. mit der neuen multi-Line=>Multi-Icon-Variante experimentieren (kurze Beispiele sind in Device Overview anpassen und devStateIcon im Wiki zu finden).
Hallo Danke für die Hilfe.
ich habe nun bei attribut stateFormat "nextUpdate: state" eingetragen und bekomme die gewünschte Anzeige.
2019-02-24 23:30:00: Zu
Lediglich das Datum ist mir noch zuviel. (Ist die Zeitschaltung von meinem Rolladen, deswegen "Zu")
Mit einem devStateIcon wird es nicht sondern das Icon angezeigt.
Zitat von: Müller am 24 Februar 2019, 22:58:40
Lediglich das Datum ist mir noch zuviel.
Zitat von: Beta-User am 24 Februar 2019, 11:01:03Wenn es hübscher werden soll: Perl-Variante des Attributs verwenden, um den Text zu kürzen
Wie gesagt: Dann mußt du auf die Perl-Ebene, um den Text zu kürzen. Ginge auch mit einem userreading, das dann im stateFormat verwendet wird.
Was die neue Multi-Icon Variante von devStateIcon angeht, müßte ich auch erst testen, wie das geht. Aber es sollte möglich sein...
Ich habe sowas bisher mit der Perl-Variante gelöst, Codebeispiel (RAW-Definition):
attr MYSENSOR_97 devStateIcon {my $alivecolor = 'lan_rs485@red';;$alivecolor='lan_rs485@green' if (ReadingsVal($name, "state", "dead") eq "alive");;"<div>" . FW_makeImage("$alivecolor","lan_rs485") . FW_makeImage("temp_temperature","temp_temperature") . ReadingsVal($name,"temperature2",0) ."°C ". FW_makeImage("humidity","humidity"). ReadingsVal($name,"humidity3",0) . "%rH</div>"}
Das Bild dazu findest du als Beispiel 2 für die Perl-Variante im Wiki: https://wiki.fhem.de/wiki/DeviceOverview_anpassen
Hallo,
mittlerweile habe ich mich etwas fortgebildet und "readingsgroup" entdeckt.
Damit ist es möglich die Info anzuzeigen, ggf Icons einzubinden und diese auch schaltbar zu machen. Das ist auch eleganter als jeden Timer einzeln zu bearbeiten. Über die "readingsgroup" kann auch der einzelne Timer aufgerufen werden und die Uhrzeit verändert werden.
Beispielsweise für Zeitschaltung von Rollläden:
define Timer readingsgroup <Rollo>,<Aktion>,<Zeit>,<Aktiv> Rollo1_MoFrAuf:nextValue,nextUpdate,disabled, Rollo1_MoFrZu:nextValue,nextUpdate,disabled, Rollo2_MoFrAuf:nextValue,nextUpdate,disabled, Rollo2_MoFrZu:nextValue,nextUpdate,disabled
WeekDayTimer heißt bei mir Rollo1_MoFrAuf. Damit wird nextValue (was wird gemacht Auf oder Zu/ on oder off), nextUpdate (Tag und Uhrzeit) und disabled (Ist der Timer aktiviert oder deaktiviert) angezeigt.
Mit diesem Code werden manche Infos als Icons dargestellt:
attr Timer valueIcon {'disabled.1' => 'rc_RED', 'disabled.0' => 'rc_GREEN', 'nextValue.Auf' => 'control_arrow_up', 'nextValue.Zu' => 'control_arrow_down'}
(Bei mir ist es Auf und Zu, weil ich im EventMap des Rollladenschalters (Dooya) )
eventMap off:Auf on:Zu stop:Stop
eingetragen habe
und hiermit wird der Timer aktivierbar/deaktivierbar per Icon:
attr Timer commands { 'disabled.0' => 'set $DEVICE disable', 'disabled.1' => 'set $DEVICE enable' }
Ich hoffe diese Beschreibung hilft dem Einen oder Anderen.