An/Aus Funktion auf HM 4DIS-Schalter vertauschen ?

Begonnen von rainer042, 08 Mai 2014, 19:54:24

Vorheriges Thema - Nächstes Thema

rainer042

Hallo,

ich hab in meinem Haus die Schalter immer so gesetzt, das "Wippe nach unten"  "Licht An" bedeutet und "Wippe oben" entsprechend "Licht Aus". Normalerweise ist es andersherum vorgesehen. Mir erschien es aber so intuitiver  ;).  Im Normalfall konnte ich meine Wunschbelegung einfach dadurch erreichen, das ich den Schalter/Dimmer in der Wand-UP-Dose einfach entsprechend gedreht habe.

Nun hab ich aber einen HM Display-Schalter 4DIS, der ja Text darstellt und den kann man folglich nicht einfach herum drehen. Also habe ich versucht meine Anforderung durch Setzen von Registerwerten zu lösen.

Die Buttons 1 und 2 des 4DIS z.B. sind bei mir direkt mit einem HM-LC-Dim1TPBU-FM (FHEM-Name: Dimmer_WZ2) gepeert, so das man auch ohne FHEM schalten/dimmen könnte.

Um den von mir gewünschten Effekt zu realisieren hab ich nun folgende Register im Registersatz für die Peers im Dimmer  umgesetzt (Schalter_WZ_Btn_01 ist der untere Button am 4DIS, Schalter_WZ_Btn_02  der Obere).  Der maximale Dimmwert der Lampe ist auf 32% begrenzt, sonst fängt die LED an zu flackern:

set Dimmer_WZ2_ch01 regSet shOnLevel 0 Schalter_WZ_Btn_02
set Dimmer_WZ2_ch01 regSet shOffLevel 32 Schalter_WZ_Btn_02
set Dimmer_WZ2_ch01 regSet shOnLevel 0 Schalter_WZ_Btn_01
set Dimmer_WZ2_ch01 regSet shOffLevel 32 Schalter_WZ_Btn_01
#
set Dimmer_WZ2_ch01 regSet lgActionTypeDim upDim Schalter_WZ_Btn_01
set Dimmer_WZ2_ch01 regSet lgActionTypeDim downDim Schalter_WZ_Btn_02

Damit klappt eigentlich schon alles, leider nur fast alles. Es gibt einen merkwürdigen Spezialfall, mit ganz speziellen Vorraussetzungen der nicht so wie erwartet funktioniert.

Die Vorraussetzungen:
- Lampe ist an
- Ich dimme die Lampe über den 4DIS bis sie "off" ist. Die Lampe leuchtet nicht mehr.
- Ich dimme die Lampe über den 4DIS jetzt wieder an, egal wie hoch. Die Lampe wird heller.

Was jetzt passiert ist, das sobald ich den Finger vom 4DIS nehme die Lampe von selbst rasch wieder dunkler wird und dann aus geht. So als ob man "off" gedrückt hätte. Das kann ich anschließend beliebig oft wiederholen (hochdimmen am 4DIS, loslassen, Lampe geht aus). Erst wenn ich  am 4DIS einmal kurz auf den oberen Button drücke (Aus) , kann ich die Lampe anschließend problemlos  wieder am 4DIS heller Dimmen und sie bleibt dann auch an in der eingestellten Helligkeit.

Einschalten mit einem kurzen Druck auf den unteren Button klappt nebenbei auch immer problemlos. Nur heller dimmern klappt nicht dauerhaft in diesem einen speziellen Fall.

Wenn ich mir die Events ansehe, die auftreten, wenn ich versuche die Lampe im Fehlerfall hoch zu dimmen und das vergleiche mit dem Normalfall (wo ich also zuvor kurz auf "Aus" gedrückt habe) wo es klappt, sehe ich im Fehlerfall ein "timedOn: running" Event, im Normalfall jedoch nur timedOn: off .

Das Eventlog im Fehlerfall ist angehängt als error.txt, das Eventlog im funktionierenden Fall als normal.txt

Ich weiß nicht ob das timedOn wirklich den beschriebenen Effekt auslöst, aber es erscheint mir zumindest verdächtig. Nur weiß ich nicht warum es auftritt und was es bedeutet?

Irgend jemand eine Idee was hier passiert oder vielleicht eine Idee meinen Belegungswunsch anderweitig zu realisieren?

Eine Idee war das über zwei notify's in FHEM zu machen, die auf das Schalter_WZ_Btn_01/Schalter_WZ_Btn_02 -Event lauschen und dann den eigentlichen Dimmer höher bzw niedriger dimmen. Dann wäre dimmen zwar nur möglich wenn auch FHEM läuft aber läuft ja eigentlich immer.

Für einfache Schalter mache ich das bereits so (über ein virtuelles Devivice) mit anderen Buttons des 4DIS da isses ein einfaches "set <Schalter> off" bzw "...on". 

Für einen Dimmer ist mir in diesem Fall noch nicht klar wie ich dem Dimmer in dem notify sage "heller" bzw "dunkler"?

Viele Grüße
Rainer

martinp876

Hallo Rainer,

wenn du die Funktion der peers tauschen willst kannst du es am einfachsten, wenn du die registerConfig speicherst, die peers drehst und dann wieder einprogrammierst

set Licht regBulk .RegL_03:peer1 02:00 03:00 04:32 05:64 06:00 07:FF... 00:00
set Licht regBulk .RegL_03:peer2  02:01 03:00 04:32 05:00 06:00 07:FF... 00:00

drehen und ausführen
Zitatset Licht regBulk .RegL_03:peer2 02:00 03:00 04:32 05:64 06:00 07:FF... 00:00
set Licht regBulk .RegL_03:peer1  02:01 03:00 04:32 05:00 06:00 07:FF... 00:00

Das Problem liegt offensichtlich in der programmierung des Long tastendrucks.

Mache doch einmal in HMInfo ein
Zitatget hm register -f Dimmer_WZ2_ch01

timedOn zeigt, dass der Zustand nicht endgültig ist - der dimmer wird - irgendwann einmal schalten - selbständig. Der Grund kann sein, dass du einen on-for-timer gesendet hast. Aber auch, dass der Tastendruck einen treppenhaus-effekt programmiert hat.
Das ist also korrekt, denn es schaltet ja auch aus.
Die Lösung liegt in den Registern "lg" des entsprechenden Peers

rainer042

Mallo Martin,

ich hab jetzt wie von Dir vorgeschlagen, die Registerliste 3 der Peers vertauscht und dann hats auch geklappt.

Wirklich praktisch war da das Backup der Werte von dem gemachten archConfig in hmInfo, weil ich auf diese Weise mit einem einfachen copy/paste die alten Werte aus dem RegisterBackup kopieren konnte und nur noch die Peers vertauschen und dann neu setzen mußte.

Prima.

Grüße und vielen Dank
Rainer