Seit Umstieg auf configDB Probleme mit einem notify

Begonnen von Mitch, 19 November 2014, 10:43:28

Vorheriges Thema - Nächstes Thema

Mitch

Habe gestern (grundsätzlich) erfolgreich auf configDB und DbLog umgestellt.

Jetzt habe ich ein merkwürdiges Verhalten mit einem notify:

Ich habe einen 4-fach FS20 Wandtaster, der triggert einen notify, dieser wiederum schalten einen Dummy, der einen weiteren notify trigger, welcher meine Rollos schaltet.
Es handelt sich um Gurtwickler, an die Kabel gelötet sind, wo wiederum FS20 Empfänger mit Relais hängen.
Um die Relais anzusteuern, wird ein on-for-timer 1 gesendet.

Lange Rede, kurzer Sinn...wenn ich den Wandschalter drücke, wird jetzt immer zwei mal gesendet und somit fahren die Rollos an und bleiben dann wieder stehen.
Dies passiert manchmal sofort, manchmal auch erst nach ein paar Sekunden. Sieht man hier am Log:

2014.11.19 10:20:21 3: CUL_HM set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 on
2014.11.19 10:20:21 3: FS20 set FS22_e1b104 on-for-timer 1
2014.11.19 10:20:21 3: FS20 set FS22_e1b102 on-for-timer 1
2014.11.19 10:20:20 3: FS20 set FS22_e1b100 on-for-timer 1
2014.11.19 10:20:20 3: CUL_HM set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 on
2014.11.19 10:20:20 3: FS20 set FS22_e1b104 on-for-timer 1
2014.11.19 10:20:20 3: FS20 set FS22_e1b102 on-for-timer 1
2014.11.19 10:20:20 3: FS20 set FS22_e1b100 on-for-timer 1


Hier der Code dazu:

define FS21_5b093 FS20 5b09 03
attr FS21_5b093 IODev CUNO
attr FS21_5b093 alias Rollo zu
attr FS21_5b093 group Rollos
attr FS21_5b093 model fs20st
define act_on_FS21_5b093 notify FS21_5b093 {fhem("set Rollo.WZ.Alle Zu")}


define Rollo.WZ.Alle dummy
attr Rollo.WZ.Alle alias Rollo Wohnzimmer
attr Rollo.WZ.Alle devStateIcon Auf:fts_shutter_10 Zu:fts_shutter_100
attr Rollo.WZ.Alle group Rollos
attr Rollo.WZ.Alle icon fts_shutter_updown
attr Rollo.WZ.Alle room Wohnzimmer,Rollos,Favourites
attr Rollo.WZ.Alle webCmd Auf:Zu


define Rollo.WZ.Alle.Notify.Zu notify Rollo.WZ.Alle:Zu {fhem ("set Rollo.Ost Zu ;; set Rollo.Sued.links Zu ;; set Rollo.Sued.rechts Zu ;; set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 Zu")}


define Rollo.Ost dummy
attr Rollo.Ost alias Rollo Ost
attr Rollo.Ost devStateIcon Auf:fts_shutter_10 Zu:fts_shutter_100
attr Rollo.Ost group Rollos
attr Rollo.Ost room Wohnzimmer,Rollos
attr Rollo.Ost setList Auf Zu
attr Rollo.Ost webCmd Auf:Zu

define Rollo.Ost.Notify.Auf notify Rollo.Ost:Auf set FS22_e1b100 on-for-timer 1
define Rollo.Ost.Notify.Zu notify Rollo.Ost:Zu set FS22_e1b101 on-for-timer 1
FHEM im Proxmox Container

rudolfkoenig

Es wuerde mich wundern, wenn das Problem wirklich an configDB liegt.
Zum besseren Verstaendnis wuerde ich fuer alle Notifies "verbose 5" setzen, und den Schaltvorgang protokollieren.

Mitch

#2
Ich kann mir eigentlich auch nicht vorstellen, dass es an configDB liegt, ist aber die einzige Änderungen.

Werde mal verbose 5 schalten und loggen:

2014.11.19 11:05:47 3: CUL_HM set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 on
2014.11.19 11:05:47 3: FS20 set FS22_e1b104 on-for-timer 1
2014.11.19 11:05:47 3: FS20 set FS22_e1b102 on-for-timer 1
2014.11.19 11:05:47 3: FS20 set FS22_e1b100 on-for-timer 1
2014.11.19 11:05:47 4: Rollo.Ost.Notify.Auf exec set FS22_e1b100 on-for-timer 1
2014.11.19 11:05:47 5: Triggering Rollo.Ost.Notify.Auf
2014.11.19 11:05:47 4: Rollo.WZ.Alle.Notify.Auf exec {fhem ("set Rollo.Ost Auf ;; set Rollo.Sued.links Auf ;; set Rollo.Sued.rechts Auf ;; set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 Auf")}
2014.11.19 11:05:47 5: Triggering Rollo.WZ.Alle.Notify.Auf
2014.11.19 11:05:47 4: dummy set Rollo.WZ.Alle Auf
2014.11.19 11:05:47 4: act_on_FS21_5b092 exec {fhem("set Rollo.WZ.Alle Auf")}
2014.11.19 11:05:47 5: Triggering act_on_FS21_5b092
2014.11.19 11:05:47 4: FS20 FS21_5b092 toggle
2014.11.19 11:05:47 3: CUL_HM set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 on
2014.11.19 11:05:46 3: FS20 set FS22_e1b104 on-for-timer 1
2014.11.19 11:05:46 3: FS20 set FS22_e1b102 on-for-timer 1
2014.11.19 11:05:46 3: FS20 set FS22_e1b100 on-for-timer 1
2014.11.19 11:05:46 4: Rollo.Ost.Notify.Auf exec set FS22_e1b100 on-for-timer 1
2014.11.19 11:05:46 5: Triggering Rollo.Ost.Notify.Auf
2014.11.19 11:05:46 4: Rollo.WZ.Alle.Notify.Auf exec {fhem ("set Rollo.Ost Auf ;; set Rollo.Sued.links Auf ;; set Rollo.Sued.rechts Auf ;; set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 Auf")}
2014.11.19 11:05:46 5: Triggering Rollo.WZ.Alle.Notify.Auf
2014.11.19 11:05:46 4: dummy set Rollo.WZ.Alle Auf
2014.11.19 11:05:46 4: act_on_FS21_5b092 exec {fhem("set Rollo.WZ.Alle Auf")}
2014.11.19 11:05:46 5: Triggering act_on_FS21_5b092
2014.11.19 11:05:46 4: FS20 FS21_5b092 toggle


So wie es aussieht, wird der FS20 FS21_5b092 noch mal getogglet, obwohl er nur einmal gedrückt wurde.
FHEM im Proxmox Container

betateilchen

Mit configDB hat das nix zu tun, sondern damit, dass Deine regexp im notify nicht spezifisch genug ist.

Ein Homematic Taster sendet bei Betätigung immer mehrere Trigger, die events erzeugen. Und Du reagierst in Deinem notify auf ALLE Events, die vom Taster kommen. Beobachte mal im Event Monitor, was passiert, wenn Du den Taster drückst, dann siehst Du, was ich meine. Du solltest Deine regexp eindeutig gestalten, z.B. auf das "Short" das vom Taster generiert wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Mitch

#4
Zum einen handelt es sich nicht um einen HM, sondern FS20 Sender, zum anderen ist die regexp mit Absicht unspezifisch, weil ich alles abfangen muss (kurzer und langer Druck, sprich on und dim).

Komisch ist, dass die oberen zwei Tasten ohne Probleme gehen und nur einmal der notify darauf getriggert wird (damit werden Aussenbeleuchtungen geschalten).
Nur die zwei unteren schalten zweimal??

Ausserdem lief das ganze ja seit mehr als 2 Jahren ohne Probleme mit dieser Konfig??
FHEM im Proxmox Container

Mitch

Hab jetzt noch mal getestet, das Problem tritt auch auf, wenn ich in der GUI schalte:

2014.11.19 11:32:27 3: CUL_HM set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 on
2014.11.19 11:32:27 3: FS20 set FS22_e1b104 on-for-timer 1
2014.11.19 11:32:27 3: FS20 set FS22_e1b102 on-for-timer 1
2014.11.19 11:32:27 3: FS20 set FS22_e1b100 on-for-timer 1
2014.11.19 11:32:26 3: CUL_HM set CUL_HM_HM_LC_Bl1PBU_FM_52D2A9 on
2014.11.19 11:32:26 3: FS20 set FS22_e1b104 on-for-timer 1
2014.11.19 11:32:26 3: FS20 set FS22_e1b102 on-for-timer 1
2014.11.19 11:32:26 3: FS20 set FS22_e1b100 on-for-timer 1
2014.11.19 11:32:26 3: FS20 set FS21_5b092 on
FHEM im Proxmox Container

Mitch

Ganz blöde Idee dazu, ich habe ja einen CUNO und eine FHZ.
Eigentlich ist mit attr IODev der CUNO zugeteilt, aber bei LASTInputDev steht FHZ.

Kann es sein, dass es dadurch das Problem gibt und CUNO und FHZ senden?
FHEM im Proxmox Container

Mitch

SO, komme dem Problem näher.

Wenn ich IODev auf FHZ stelle, geht es ohne Probleme.
Wenn ich IODev auf CUNO stellen, dann wird zweimal geschalten, d.h. der CUNO und die FHZ erhalten beide das Signal und fhem verarbeitet es dann.

Wieso funktioniert IODev nicht mehr?
FHEM im Proxmox Container

betateilchen

sorry, ich hatte nur den HM-Aktor gesehen und den irrtümlich als den Taster interpretiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Mitch

Kein Ding  ;)

Der eine HM ist ein Rolladenaktor, der auch angesteuert wird.

Ich habe das "Problem" ja jetzt gefunden, es liegt am IODev.
Aber wieso auf einmal, keine Ahnung
FHEM im Proxmox Container

rudolfkoenig

IODev hat nur was mit Senden zu tun, und nicht mit Empfang.
FHZ + CUL* sollten auf doppelte Events geprueft werden, siehe dupTimeout.

Mitch

Ja, aber wenn ich IODev auf FHZ stelle geht es.

Wenn ich auf CUNO einstelle, wird zweimal ausgeführt.
FHEM im Proxmox Container

rudolfkoenig

Klasse. Um weiter zu kommen solltest du ein Vorgang mit "attr global verbose 5" + "attr global mseclog" beobachten, und die timestamps der empfangenen Events beachten. Und danach dupTimeout passend setzen.

Mitch

Danke, mit dupTimeout 0.9 schaut es im Moment gut aus
FHEM im Proxmox Container