Doppelte Einträge im Eventmonitor aufgrund von FGW-USB und TCM120

Begonnen von Pusemukel, 24 Juli 2017, 21:12:50

Vorheriges Thema - Nächstes Thema

Pusemukel

Hallo,

Ich möchte gerade ein neues DOIF erstellen das Funktioniert allerdings nicht richtig, als ich im Event Monitor geprüft habe ist mir aufgefallen das ich für den Enocean Funkschalter doppelte Einträge erhalte
Das müsste auch so sein denn ich habe hier ein FGW14 an einem FAM14 im Bussystem sowie eine EnoceanPi Modul auf dem Raspberry  verbaut.

2017-07-24 20:48:32 DOIF DOIF_Bachlauf_AN_AUS cmd_event: Sensor_Taster_Enocean_Wohnzimmer
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer buttons: pressed
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer channelA: A0
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer A0
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer buttons: released
2017-07-24 20:48:32 DOIF DOIF_Bachlauf_AN_AUS cmd_event: Sensor_Taster_Enocean_Wohnzimmer
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer buttons: pressed
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer channelA: A0
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer A0
2017-07-24 20:48:32 EnOcean Sensor_Taster_Enocean_Wohnzimmer buttons: released

Ich vermute das das DOIF nicht funktioniert bzw. nicht richtig funktioniert weil eben 2 Events mit dem gleichen "Zeitstempel" Passieren, siehe auch die Bedingungen im DOIF. ( Einmal über das FGW Modul und über das Enocean Pi Modul .
## GartenPumpe Ein/AUS
([?EnOcean_switch_FSR14_Kanal1:state] eq "on" and
[Sensor_Taster_Enocean_Wohnzimmer:buttons] eq "pressed")

(set EnOcean_switch_FSR14_Kanal1 off)

DOELSEIF
([?EnOcean_switch_FSR14_Kanal1:state] eq "off" and
[Sensor_Taster_Enocean_Wohnzimmer:buttons] eq "pressed")

(set EnOcean_switch_FSR14_Kanal1 on)


Nun meine Frage ist die Annahme Richtig, und wenn ja  wie bekommen ich den Enocean Pi dazu diesen Taster zu Ignorieren ?!

rudolfkoenig

Fuer zweistufige Systeme (wie TCM+EnOcean) gibt es in fhem.pl/Dispatch() eine Duplikatserkennung, wenn ein Signal ueber zwei unterschiedliche IODevs reinkommt. Ich gehe davon auss, dass die Rohdaten ueber die beiden Kanaele unterschiedlich sind, und deswegen diese Duplikatserkennnung nicht funktioniert. Falls das IO-Modul ein FingerprintFn implementiert, dann wird sie fuer die DUplikatserkennung aufgerufen.

Ich kenne das FAM14 nicht, kann also sein, dass ich etwas uebersehe.

klaus.schauer

Im TCM-Modul gibt es die Kommandos set <IODev> filter* <param>. Mit Hilfe dieser Befehle kann man die Filterfunktion des TCM-Chips nutzen und empfangene Pakete nach unterschiedlichen Kriterien filtern. Weitere Einzelheiten sind in der commandref und den EnOcean-Referenzdokumenten zu finden. Die Befehle selbst sind allerdings nur etwas für EnOcean-Insider und nur nach der Lektüre der in der commandref verlinkten ESP3-Referenz verständlich. Ich habe die Funktionen in das TCM-Modul aufgenommen aber - wegen fehlender Anwendungsfelder - bisher nicht testen können.

Pusemukel

Hallo, noch mal

Danke erst mal für die Denkanstöße.
Also ist meine Annahme wahrscheinlich richtig,  das das DOIF nicht wie gewollt funktioniert weil es zwei Ereignisse gibt ?

Gib es auch die Möglichkeit das TCM zum testen pausieren zu lassen etwa über das Attribut disable ?!


Pusemukel

So um hier mal abzuschließen,

Ich habe an meinem TCM das Attribut Fingersprint eingeschaltet hat keine Verbesserung gebraucht.
Da das gleiche Device eine unterschiedliche ID (TCM , GW14 bzw. FAM14) bekommt,
dadurch ist eine Duplikaterkennung "einfach so" nicht möglich.

Ich konnte mein Problem scheinbar auf andere weise umgehen indem ich das DOIF anders Triggern lassen.

nach dem Schema:
([EnoceanDevice:"AI$"] and [GartenLicht:state] eq "off")
(set GartenLicht on

Für mich funktioniert das erst mal so.
Gruß