State von Reading trotz ReadingVal aktuell halten

Begonnen von accessburn, 12 April 2018, 17:19:19

Vorheriges Thema - Nächstes Thema

accessburn

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
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

accessburn

#2
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.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Otto123

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.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

accessburn

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.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

nils_

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
viele Wege in FHEM es gibt!

accessburn

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"}
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole