FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: AK-868 am 09 Juli 2013, 12:22:49

Titel: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: AK-868 am 09 Juli 2013, 12:22:49
Hallo zusammen

ich hab mir die Events anzeigen lassen und bekomme 2 Events pro Aktion.
Warum ist das so?
Bitte für einen Anfänger erklären ;)

2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_01 open
2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_01 contact: open (to HMLAN1)
2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_02 open
2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_02 contact: open (to HMLAN1)

Vielen Dank

AK-868
Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: betateilchen am 09 Juli 2013, 12:41:59
das sind doch zwei unterschiedliche events?  Einmal mit "open" und einmal mit "contact: open"

Warum das so ist, kann ich Dir nicht sagen, aber das ist eigentlich völlig "normal" und ich habe das noch nie anders gesehen - z.B. bei den Tür-/Fensterkontakten = genau so Ich vermute, das erste ist der Logeintrag für den Event an sich und er zweite Eintrag protokolliert die Datenübertragung an sich,deshalb auch das "to HMLAN1" am Ende.

Du kannst aber natürlich jederzeit individuell festlegen, was im Protokoll auftaucht, das ist einfach in der FileLog-Definition hinterlegt. Bei mir sieht die Definition der Wohnungstürüberwachung beispielsweise so aus

./log/Melder_Eingang.log Melder_Eingang:(offen|zu)

damit erhalte ich im Logfile nur noch jeweils einen Eintrag für offen und zu

2013-07-09_11:12:38 Melder_Eingang offen
2013-07-09_11:12:43 Melder_Eingang zu
2013-07-09_12:22:58 Melder_Eingang offen
2013-07-09_12:23:08 Melder_Eingang zu


und das LogFile bleibt schön übersichtlich.
Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: AK-868 am 09 Juli 2013, 14:19:30
Hi, danke für die Antwort

Okay, und wie bekomme ich es jetzt hin das contact open kein event generiert?

Woher kommt das?

Gruß Andre
Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: justme1968 am 09 Juli 2013, 14:48:06
das eine event (mit dem ':') ist für ein reading, das andere für state.

gruss
  andre
Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: betateilchen am 09 Juli 2013, 15:31:21
Zitat von: AK-868 schrieb am Di, 09 Juli 2013 14:19Okay, und wie bekomme ich es jetzt hin das contact open kein event generiert?

Du hast da etwas grundlegendes noch nicht verstanden: Du zitierst hier aus dem LOG! Das bedeutet aber nicht, dass am entsprechenden Gerät zweimal etwas passiert ist. Beide Meldungen in Deinem Log protokollieren das gleiche EINE Ereignis an Deinem Schaltkontakt.
Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: AK-868 am 09 Juli 2013, 17:00:15
Mh,

ich verstehe langsam.

Das war kein Log eintrag sondern die generierten Events: (inform timer)

state   2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_01 open
reading 2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_01 contact: open (to HMLAN1)
state   2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_02 open
reading 2013-07-09 11:31:14 CUL_HM CUL_HM_HM_SCI_3_FM_1E4E59_Sw_02 contact: open (to HMLAN1)

Wenn ich jetzt ein notify auf eines der Geräte erstelle

sähe das dann so aus

define JL_Esszimmer2 notify sens_EzFenster:open|closed set JL_Esszimmer_pruef on

Muß ich dann open closed noch in klammern setzen? Muß da überhaupt Pipe hin?

Da vorher  define JL_Esszimmer2 notify sens_EzFenster:.* set JL_Esszimmer_pruef on  dort stand hat er bei jedem event ausgelöst. Jetzt wird es schlüssig.

Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: betateilchen am 09 Juli 2013, 17:41:26
Zitat von: AK-868 schrieb am Di, 09 Juli 2013 17:00Wenn ich jetzt ein notify auf eines der Geräte erstelle sähe das dann so aus

define JL_Esszimmer2 notify sens_EzFenster:open|closed set JL_Esszimmer_pruef on

Muß ich dann open closed noch in klammern setzen? Muß da überhaupt Pipe hin?

Das ist keine Pipe sondern ein logisches ODER in einem RegEx-Ausdruck. Und genau deshalb muss da eine Klammer drum.

define JL_Esszimmer2 notify sens_EzFenster:(open|closed) set JL_Esszimmer_pruef on

und übrigens: "inform timer" ist auch nix weiter als ein Log. (Log = Protokoll, egal ob das auf einer Konsole oder in eine Datei oder auf einem Drucker ausgegeben wird)
Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: AK-868 am 09 Juli 2013, 17:57:06
Hallo betateilchen,

vielen Dank für deine Hilfe und Erklärung.

Mit Pipe meinte ich nur das Zeichen | oder wie nennt man das?

Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: martinp876 am 14 Juli 2013, 07:42:18
das Zeichen ist ein pipe zur Umleitung des outputs beispielsweise in einer shell.
In diesem Fall ist es ein 'oder', da es eine regexp ist.
Ob der senkrechte Strich einen generellen Namen hat weiss ich nicht, 'pipe' und 'oder' sind kontext sensitiv benutzt.
Titel: Aw: Doppelte Events bei einem Schaltvorgang HM_SCI_3_FM
Beitrag von: AK-868 am 14 Juli 2013, 08:09:25
Ich hab gerade mal Google bemüht. Wenn die rede von dem Zeichen ist |. Sucht man nach PIPE.

http://de.wikipedia.org/wiki/Senkrechter_Strich (//de.wikipedia.org/wiki/Senkrechter_Strich)
ZitatDer senkrechte Strich (engl. vertical bar, im Programmiererjargon oft Pipe)...

Das scheint nicht klar definiert zu sein. Den gibt es einfach. Erst im speziellen Anwendungsfall wird das Zeichen anscheinend klar definiert, wie oben schon erwähnt.

PIPE-Zeichen | vertical bar | senkrechter Strich