FHEM Forum

FHEM - Hausautomations-Systeme => KNX/EIB => Thema gestartet von: ZeitlerW am 22 Dezember 2015, 15:44:22

Titel: [Gelöst] - EIB - Device triggert 2 Events bei Bedienung über FHEMWEB
Beitrag von: ZeitlerW am 22 Dezember 2015, 15:44:22
Hallo zusammen,




Die Lösung des Problems ist hier beschrieben:

http://forum.fhem.de/index.php/topic,46048.msg380372.html#msg380372 (http://forum.fhem.de/index.php/topic,46048.msg380372.html#msg380372)




ich habe da ein seltsames Phänomen:

Wenn ich ein EIB - Device über die WEB - Oberfläche bediene, so werden 2 Events ausgelöst. Hier ein Codeschnipsel zum Nachvollziehen:

define test EIB 7/7/7
attr test IODev KNX
attr test model dpt1
define di_test DOIF ([test] eq "on")\
({Log(3, "on")})\
DOELSEIF ([test] eq "off")\
({Log(3, "off")})\
DOELSE\
({Log(3, "sonstwas")})
attr di_test do always


Wenn ich mir dann das Logfile ansehe kommt so etwas raus:
2015.12.22 15:35:59 3: on
2015.12.22 15:35:59 3: on
2015.12.22 15:36:00 3: off
2015.12.22 15:36:01 3: off


Wenn ich allerdings über die ETS den Gruppenmonitor ansehe, erscheint am BUS nur jeweils ein Telegramm.
Wenn ich dann über die ETS einen Befehl absetze, so wird das DOIF nur einmal getriggert.

Vielleicht kann sich jemand (Andi ?  ::) ) das Thema mal ansehen?

lG
Wolfgang


Titel: Antw:[Bug] - EIB - Device triggert 2 Events bei Bedienung über FHEMWEB
Beitrag von: Andi291 am 22 Dezember 2015, 19:07:27
Hallo Wolfgang,

mir ist so, als hätten wir das schonmal wo diskutiert. Wenn ich mich recht entsinne, ist das quasi das echo auf dem Bus.
Aktiver mal setG / getG. Dann müsste vor dem ersten Log-Eintrag ein set, vor dem zweiten ein get auftauchen.

Grüße, Andi
Titel: Antw:[Bug] - EIB - Device triggert 2 Events bei Bedienung über FHEMWEB
Beitrag von: ZeitlerW am 23 Dezember 2015, 19:26:34
Hallo Andi,

ja das ist so. Das stört natürlich ein wenig bei Logiken. Ggf könnte man ja Telegramme von der eigenen Physikalischen Adresse schon im TUL unterdrücken. Problematisch wird dies aber wenn z.b. an einem EIBD mehrere Instanzen hängen.
Ich bin mir nicht sicher, welche Änderungen smurfix im KNXD eingeführt hat. Der EIBD im IP - Inteface - Modus hat als Physikalische Adresse immer die 0.0.0

lG
Wolfgang
Titel: Antw:[Bug] - EIB - Device triggert 2 Events bei Bedienung über FHEMWEB
Beitrag von: Andi291 am 24 Dezember 2015, 14:35:58
Hallo Wolfgang,

nicht unbedingt...

wenn Du auf das get-Reading gehst, ist es eindeutig. Genau deshalb hat das ein user vorgeschlagen. Dieser wollte im übrigen explizit KEINE Ausfilterung der eigenen Nachrichten (ich auch nicht), weil es einfach so nicht stimmen würde...

Kommst Du damit klar?
Titel: Antw:[Bug] - EIB - Device triggert 2 Events bei Bedienung über FHEMWEB
Beitrag von: ZeitlerW am 25 Dezember 2015, 10:13:42
Hallo Andi,

leider hat sich die Situation mit GetG1 verschlimmbessert:
2015.12.25 10:12:17 3: off
2015.12.25 10:12:17 3: off
2015.12.25 10:12:17 3: EIB encode: no model defined for EIB_7707. Replaced with DPT1.
2015.12.25 10:12:18 3: on
2015.12.25 10:12:18 3: on
2015.12.25 10:12:18 3: on
2015.12.25 10:12:19 3: EIB encode: no model defined for EIB_7707. Replaced with DPT1.
2015.12.25 10:12:19 3: off


Zur Erklärung:

1. Logeintrag: Ich habe set on gemacht, es kommen erst mal 2 off Events.
5. Logeintrag: Ich habe set off gemacht, es kommen erst mal 2 on Events.

Fragen über Fragen :(

lG
Wolfgang
Titel: Antw:[Bug] - EIB - Device triggert 2 Events bei Bedienung über FHEMWEB
Beitrag von: Andi291 am 27 Dezember 2015, 13:35:13
Hallo Wolfgang,

zuerst - was ist das?
encode: no model defined for EIB_7707. Replaced with DPT1. (//http://encode:%20no%20model%20defined%20for%20EIB_7707.%20Replaced%20with%20DPT1.)

Um Deinem Problem näher zu kommen - bitte trotzdem mal getG und setG aktivieren, und in ein gemeinsames File loggen lassen.

Grüße, Andi
Titel: Antw:[Erledigt] - EIB - Device triggert 2 Events bei Bedienung über FHEMWEB
Beitrag von: ZeitlerW am 27 Dezember 2015, 19:05:03
Hallo Andi,

zu: EIB encode: no model defined for EIB_7707. Replaced with DPT1.
Da hatte ich ein 2. Device mit der gleichen KNX - Adresse definiert.  ... Sorry für die Konfusion.

Zum eigentlichen Problem:
Ja klar es werden SetG1 und GetG1 gesetzt. Mein Denkfehler war, daß DOIF ja sowohl bei einem Update von SetG1 als auch bei GetG1 getriggert wird und damit 2 mal durchlaufen wird.
Meine Abhilfe: Attribut event-on-update-reading GetG1 setzen.

Damit ergibt sich folgender Code:define test EIB 7/7/7
attr test EIBreadingX 1
attr test IODev KNX
attr test event-on-update-reading getG1
attr test model dpt1
define di_test DOIF ([test] eq "on")\
({Log(3, "on")})\
DOELSEIF ([test] eq "off")\
({Log(3, "off")})\
DOELSE\
({Log(3, "sonstwas")})\
attr di_test do always


... Man muß halt an das Verhalten der eigenen BUS- Echos denken.


Könnte jemand, der einen WIKI - Account hat dazu einen kurzen Eintrag machen:

Unterdrückung der Events eigener BUS - Echos

Werden KNX/EIB Devices aus FHEM gesetzt (z.B. durch Bedienung an FHEM - Web oder mit set - Befehl) werden diese immer 2 mal verarbeitet:
Es werden also auch 2 Events in FHEM ausgelöst.
Dies ist manchmal bei der Weiterverarbeitung z.B. mit DOIF oder notify ein Problem.
Dies kann wie folgt vermieden werden:

EIB - Device anlegen:
define lamp1 EIB 0/1/1

Attribut EIBreadingX aktivieren. Damit werden zusätliche Readings für gesendete und empfangene EIB - Telegramme erzeugt.
attr lamp1 EIBreadingX 1

Attribut event-on-update-reading für GetG1 aktivieren. Damit wird nur ein Event erzeugt, wenn vom Bus ein Telegramm kommt. Das set - Telegramm (durch FHEM - WEB oder set - Befehl) erzeugt damit keinen Event mehr.
attr lamp1 event-on-update-reading getG1




lG
Wolfgang