beim HM-LC-Sw1PBU-FM zeigen, dass der Timer läuft (Icon und Blinken)

Begonnen von Kristof, 13 August 2015, 11:57:19

Vorheriges Thema - Nächstes Thema

Kristof

Hallo Forum,

ich suche nun schon eine ganze Weile und bin sicher, dass mein "Problem" ein total triviales ist. Mangels fundierter Perl-Kenntnisse scheitere ich jedoch.
Hier meine Herausforderung und was ich mir dazu zusammengestöpselt habe:
Ich habe im Bad einen HM-LC-Sw1PBU-FM verbaut, den ich per regSet so eingestellt habe, dass bei langem Tastendruck das Licht für 10 Minuten anbleibt. Sobald ich das ausgelöst habe, sehe ich in den Events ein "2015-08-13 11:22:47 CUL_HM OGBadLED timedOn: running".
Jetzt hätte ich gerne zwei Dinge:

1) ich möchte am Icon (devStateIcon) erkennen, ob das Licht an, aus oder per Timer an ist. Im state ist aber nur "on" und "off", die Timer-Info steht im timedOn.
Was muss ich in das stateFormat eintragen, damit ich im devStateIcon "on", "off" und "timedOn" auswerten kann?
(also irgendwas in der Art wie "Wenn state == off dann off sonst wenn timedOn == running dann timedOn sonst on")

2) richtig cool fänd ich, wenn mich das Licht durch kurzes Blinken warnt, wenn die 10 Minuten gleich vorbei sind.
Ich stelle mir das irgendwie so vor: die Automatik läuft nur 9 Minuten und es wird irgendwie (bloß wie??) erkannt, dass der Timer gerade abgelaufen ist. Dann geht das Licht ja sowieso aus. Also schalte ich es in genau diesem Fall kurz wieder an, nochmal aus und nochmal für 1 Minute (aus FHEM heraus getimed) an. Ginge das irgendwie? Da brauche ich dann wohl ein notify und ein on-for-timer, aber mehr ist mir nicht klar. Wer hat einen Code-Schnippsel oder einen guten Link für mich?

Danke und Gruß,

Kristof

frank

{if(ReadingsVal($name,"timedOn","off")eq"running"){return "timedOn";}else{return ReadingsVal($name,"state","off");}}
zb für stateformat

mit
attr devStateIcon on:on:off off:off:on timedOn:on-for-timer:off
habe ich jetzt drei icons. für das "on-for-timer" icon erstellst du dir ein blinkendes gif-icon.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Kristof

Hallo Frank,

danke für die Codezeile - so hätte ich das nie im Leben hinbekommen. Tut einwandfrei. In der fhem.cfg sieht das jetzt so aus:
attr OGBadLED stateFormat {if(ReadingsVal($name,"timedOn","off")eq"running"){return "timedOn";;}else{return ReadingsVal($name,"deviceMsg","off");;}}
attr OGBadLED devStateIcon on:FS20.on:off off:FS20.off:on timedOn:on-for-timer:off


Was ich nicht verstehe ist, warum ich per Klick auf das Icon das Licht jetzt zwar von "aus" auf "an" bringe und auch aus dem "timedOn" heraus ausschalten kann, aber wenn es "normal" angeschaltet ist, dann bewirkt ein Klick auf das Glühbirnenicon rein gar nichts ?!? Und das, obwohl ich doch beide Male den Befehl "off" absetze??

Irgendwelche hilfreiche Hinweise irgendwer?

Danke und Gruß,
Kristof

frank

Zitataber wenn es "normal" angeschaltet ist, dann bewirkt ein Klick auf das Glühbirnenicon rein gar nichts ?!?
habe ich auch festgestellt, deshalb hatte ich den code ein wenig verändert. schau nochmal. mit state geht es besser.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Kristof

Jetzt tut es perfekt! Ganz lieben Dank, Frank!!

Wenn jetzt noch jemand eine Idee für das "Blinken" des Lichtes in meiner Dusche hat, damit ich rechtzeitig gewarnt werde, ehe ich im Dunklen stehe...

Grüße,
Kristof

frank

ZitatWenn jetzt noch jemand eine Idee für das "Blinken" des Lichtes in meiner Dusche hat
mit einem dimmer wäre das ganz einfach. den kann man dann mit hilfe der register zb zwischen 90-100% für eine gewisse zeit blinken lassen bevor er aus geht.

ohne, müsste fhem nach einer gewissen zeit die steuerung übernehmen und die lampe blinken lassen (an- und ausschalten). komplett aus-/anschalten könnte auch viele erschrecken.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html