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
{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.
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
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.
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
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.