Hallo,
Nachdem ich eine kleine Anlage mit Fibaro-Aktoren zum Laufen bekommen habe wollte ich mal ein wenig zaubern, was aber nicht so ganz klappt.
Ich habe den Fibaro Dimmer als Schaltaktor mit konventionellem bistabilen Schalter verbaut. Maximales Dimmlevel 99, minimales Dimmlevel 98, Aktor wechselt Zustand bei Änderung am Schalter. Funktioniert zu weit.
Nun habe ich in der Bedienungsanleitung gelesen:"The user may expand the functionality of the button
connected to inputs S1 and S2 by distinguishing the actions of keys
connected to those inputs. For example: double click would activate
the scene "goodnight" and triple click would activate the scene
"morning"."
Also wollte ich eine Szene generieren. Und zwar soll das Licht bei doppelklick nach einer bestimmten Zeit ausgehen. Bei normalem klick soll es direkt ausgehen.
Also habe ich den Parameter 41 für die Szene aktiviert und festgestellt, dass sich der Wert vom Reading sceneEvent1 dann ändert.
Ich habe dann folgendes notify erstellt:
define St_verz_AUS notify k2_Dimmer {if (ReadingsVal("k2_Dimmer", "sceneEvent1",0) eq "dim up end")
{fhem("define St_AUS at +00:00:45 set k2_Dimmer off")}}
Nach dem Einschalten ist der Wert von sceneEvent1 nämlich "dim down end". Nach dem Doppelklick wechselt er auf dim up end.
Das notify wird aktiv und schaltet nach der definierten Zeit ab. ;D
Schaltet man danach nochmal ein, ändert sich der Wert auf dim down end, das notify wird aber trotzdem aktiviert und die Lampe schaltet dann nach der Zeit alleine wieder ab. :'(.
Ich vermute mal, dass direkt nach dem Einschalten das sceneEvent1 noch auf dim up end steht, das notify auslöst und erst dann den Wert ändert.
Kann man den Wert des sceneEvent1 über fhem irgendwie abändern, wenn der Aktor abgeschaltet hat oder bin ich hier auf einem komplett falschen Dampfer?
Das log sieht so aus:
2015-10-16_17:31:49 k2_Dimmer dim 99
2015-10-16_17:31:49 k2_Dimmer reportedState: dim 99
2015-10-16_17:31:49 k2_Dimmer scene_10: ff
2015-10-16_17:31:49 k2_Dimmer sceneEvent1: dim down end
2015-10-16_17:31:53 k2_Dimmer scene_0f: ff
2015-10-16_17:31:53 k2_Dimmer sceneEvent1: dim up end
2015-10-16_17:31:56 k2_Dimmer CMD: ZW_APPLICATION_UPDATE
2015-10-16_17:32:00 k2_Dimmer AUS
2015-10-16_17:32:03 k2_Dimmer dim 99
2015-10-16_17:32:03 k2_Dimmer reportedState: dim 99
2015-10-16_17:32:03 k2_Dimmer scene_10: ff
2015-10-16_17:32:03 k2_Dimmer sceneEvent1: dim down end
2015-10-16_17:32:10 k2_Dimmer AUS
2015-10-16_17:32:15 k2_Dimmer dim 99
2015-10-16_17:32:15 k2_Dimmer reportedState: dim 99
2015-10-16_17:32:15 k2_Dimmer scene_10: ff
2015-10-16_17:32:15 k2_Dimmer sceneEvent1: dim down end
2015-10-16_17:32:23 k2_Dimmer AUS
2015-10-16_17:32:23 k2_Dimmer reportedState: AUS
2015-10-16_17:32:23 k2_Dimmer scene_10: ff
2015-10-16_17:32:23 k2_Dimmer sceneEvent1: dim down end
Der Aktor war aus. Schaltfolge: Ein, doppelklick (notify aktiv, Aktor geht aus). Ein (notify ungewollt aktiv, Aktor geht aus), Ein (notify nicht aktiv), Aus.
Ich steige nicht wirklich durch, aber es ist ungewoehnlich notify abhaengig von einem Reading zu schalten, ueblich ist die Pruefung auf Event. Ich wuerde sowas in der Art machen:
define n1 notify k2_Dimmer:scene_10.* set k2_Dimmer off
define n1 notify k2_Dimmer:scene_0f.* sleep 45;; set k2_Dimmer off
Hey super,
define n1 notify k2_Dimmer:scene_10.* set k2_Dimmer off
führt dazu, dass die Lampe nach dem Einschalten direkt wieder ausgeht, aber
define n1 notify k2_Dimmer:scene_0f.* sleep 45;; set k2_Dimmer off
funktioniert problemlos, wenn man das erste define weglässt und den Taster einfach auf das ein-, und ausschalten reagieren lässt. Der Doppelklick führt jetzt immer zum verzögerten Ausschalten ;D
Mir war nicht klar, dass ich die scene_0?-Werte verwenden kann. In den Readings ist der Wert immer bei ff. Ich war der Meinung, dass nur eine Wertänderung erfasst werden kann. Und die gab es laut Reading bei sceneEvent1.
Was mich noch interessiert ist der Ausdruck scene_0f.*! Warum wird hier auf scene_0f eine Wildcard angewendet?
Laut dem Einführungs-pdf steht hinter dem Doppelpunkt der Wert. Ist scene0f.* damit ein beliebiger Wert?
Danke für die Hilfe.
Das notify regexp geht auf NAME oder NAME:EVENT, wobei beides komplett(!) spezifiziert werden muss.
NAME ist in deinem Fall "k2_Dimmer", EVENT ist "scene_0f: ff"
Ok.
: ff steht also für den Wert und mit . * wird auf jeden Wert reagiert.