Hallo,
für einen Gast-Wlan-Button will ich die Restzeit anzeigen lassen im STATE.
Problem ist nur das die Zeit so nicht aktuallisiert wird, ich müsste quasi immer auf "on" oder "off" klicken um zu wissen ob das Gästewlan an oder aus ist und wie lange noch läuft.
Habt ihr eine Idee wie ich das lösten kann?
Internals:
CFGFN
NAME Gast_WLAN
NR 24145
STATE 90 Minuten
TYPE dummy
OLDREADINGS:
READINGS:
2018-04-12 17:15:28 STATE 90 Minuten
Attributes:
icon it_wifi
room FritzBox
setList on off
stateFormat STATE
userReadings STATE {ReadingsVal("FritzBox3","box_guestWlanRemain","")." Minuten"}
webCmd on:off
Hi,
soweit ich weiß, werden die userreadings getriggert wenn das Device selbst aktiv wird.
Du müsstest das Reading von extern setzen lassen, also z.B. vom FRITZBOX Modul selbst.
Anderer Vorschlag:
Warum nimmst Du anstatt eines Dummy nicht einen Readingsproxy? Hatte ich mal gefunden, dahinein kannst Du dein Userreadings packen.
defmod rp_FB_GWLAN1 readingsProxy FB7490:box_guestWlan
attr rp_FB_GWLAN1 devStateIcon on:it_wifi@green:off off:it_wifi@red:on
attr rp_FB_GWLAN1 event-on-change-reading .*
attr rp_FB_GWLAN1 room Haus
attr rp_FB_GWLAN1 setFn {($CMD eq "on")?"guestWlan on":"guestWlan off"}
attr rp_FB_GWLAN1 setList on off
Gruß Otto
So weit war ich schon mal, aber da hab ich überhaupt keine Laufzeit eingefügt bekommen.
Aber mal zum Testen in das StateFormat eingefügt und es scheint zu gehen. War mir nicht bewusst das man dort auch Perl eingeben kann.
Da geht sogar set magic :D - aber auch gerade erst gelesen.
ZitatstateFormat
Ändert den Gerätestatus, dies ist z.Bsp. in der Ausgabe des list Kommandos zu sehen, oder in der Raumübersicht von FHEMWEB. Falls nicht gesetzt, dann wird das state Reading übernommen. Sonst werden alle Wörter im Wert des Attributes durch das entsprechende Reading des Gerätes ersetzt (soweit vorhanden). Falls der Wert in {} eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die Auswertung passiert bei jeder Änderung eines Readings.
Die hier beschriebene "set magic" wird auch angewendet.
Ja ich hatte mich so auf stateFormat versteift. Da wäre ich auch nicht alleine drauf gekommen denke ich.
Abschließend, farblich wie beim Icon ist der Text dort nicht dynamisch anzupassen oder? Nur per HTML-Tags so weit ich das verstanden habe.
state vs. STATE !
nicht das da mal irgendwas durcheinander geht :o
Zitatnternals:
CFGFN
NAME Gast_WLAN
NR 24145
STATE 90 Minuten
TYPE dummy
OLDREADINGS:
READINGS:
2018-04-12 17:15:28 STATE 90 Minuten
Attributes:
icon it_wifi
room FritzBox
setList on off
stateFormat STATE
userReadings STATE {ReadingsVal("FritzBox3","box_guestWlanRemain","")." Minuten"}
webCmd on:off
Habs dann jetzt tatsächlich mit dem readingproxy hinbekommen.
Nicht so schön wie ich das wollte mit Farben etc, aber immerhin :-)
defmod Gast_WLan readingsProxy FritzBox3:box_guestWlan
attr Gast_WLan devStateIcon on:it_wifi@green:off off:it_wifi@red:on
attr Gast_WLan event-on-change-reading .*
attr Gast_WLan icon it_wifi
attr Gast_WLan room FritzBox
attr Gast_WLan setFn {($CMD eq "on")?"guestWlan on":"guestWlan off"}
attr Gast_WLan setList on off
attr Gast_WLan stateFormat {ReadingsVal("FritzBox3","box_guestWlanRemain","")." Minuten"}