PIFACE: Perl Fehlermeldungen im LOG bei FHEM2FHEM und eventTypes

Begonnen von klaus.schauer, 08 Oktober 2013, 11:35:43

Vorheriges Thema - Nächstes Thema

klaus.schauer

Nach der Einrichtung von FHEM2FHEM

define rpi FHEM2FHEM 192.168.76.56:7072 LOG:.*

sind die Events des Remotesystems auch im Zielsystem zu sehen z. B.

...
2013-10-08 11:22:43 PIFACE IO_0 int17:1

2013-10-08 11:22:43 PIFACE IO_0 int18:1
...

Leider werden jetzt aber im LOG zu jedem Event folgende Fehlermeldungen erzeugt:

Use of uninitialized value $name in pattern match (m//) at ./FHEM/93_FHEM2FHEM.pm line 145.
Use of uninitialized value $name in hash element at ./FHEM/93_FHEM2FHEM.pm line 147.
Use of uninitialized value $m in hash element at fhem.pl line 1326.
Use of uninitialized value $name in hash element at ./FHEM/93_FHEM2FHEM.pm line 149.
Use of uninitialized value $name in hash element at ./FHEM/93_FHEM2FHEM.pm line 150.
Use of uninitialized value $name in hash element at ./FHEM/93_FHEM2FHEM.pm line 151.
Use of uninitialized value $name in hash element at ./FHEM/93_FHEM2FHEM.pm line 152.
Use of uninitialized value $name in hash element at ./FHEM/93_FHEM2FHEM.pm line 153.
Use of uninitialized value $dev in hash element at fhem.pl line 2484.
Use of uninitialized value $name in delete at ./FHEM/93_FHEM2FHEM.pm line 155.


Auffallend ist bei den LOG-Einträgen des PIFACE und nur da, dass zwischen den Einträgen Leerzeilen ausgegeben werden.

Das gleiche Problem taucht auch bei eventTypes auf. Auch hier gibt es Fehlermeldungen, u. U. auf die Leerzeilen zurückzuführen sind:

2013.10.08 12:20:26 2: eventTypes: ./log/eventTypes.txt: bogus line


rudolfkoenig

Vermutlich erzeugt PIFACE ungueltige Events, z.Bsp. mit einem Newline. Koenntest Du mal welche davon zeigen?
Ich habe in FHEM2FHEM eine Pruefung eingebaut, solche Daten werden ignoriert.

klaus.schauer

Zitat von: rudolfkoenig schrieb am Di, 08 Oktober 2013 12:34Vermutlich erzeugt PIFACE ungueltige Events, z.Bsp. mit einem Newline. Koenntest Du mal welche davon zeigen?
Ich habe in FHEM2FHEM eine Pruefung eingebaut, solche Daten werden ignoriert.
Aus einer Telnet-Session:

inform timer
2013-10-08 12:55:08 PIFACE IO_0 in1: 1

2013-10-08 12:55:08 PIFACE IO_0 in2: 1

2013-10-08 12:55:08 PIFACE IO_0 in3: 1

2013-10-08 12:55:08 PIFACE IO_0 in4: 1

2013-10-08 12:55:08 PIFACE IO_0 in5: 1

2013-10-08 12:55:08 PIFACE IO_0 in6: 1

2013-10-08 12:55:08 PIFACE IO_0 in7: 1

2013-10-08 12:55:08 PIFACE IO_0 in8: 1

2013-10-08 12:55:09 dummy USV_Alarm on
2013-10-08 12:55:09 dummy USV_Battery on
2013-10-08 12:55:09 PIFACE IO_0 in11: 1

2013-10-08 12:55:09 PIFACE IO_0 in12: 1

2013-10-08 12:55:09 PIFACE IO_0 in13: 1

2013-10-08 12:55:09 PIFACE IO_0 in14: 1

2013-10-08 12:55:09 PIFACE IO_0 in15: 1

2013-10-08 12:55:09 PIFACE IO_0 in16: 1

2013-10-08 12:55:09 PIFACE IO_0 in17: 1

2013-10-08 12:55:09 PIFACE IO_0 in18: 1

2013-10-08 12:55:18 PIFACE IO_0 in1: 1

2013-10-08 12:55:18 PIFACE IO_0 in2: 1

2013-10-08 12:55:18 PIFACE IO_0 in3: 1

2013-10-08 12:55:18 PIFACE IO_0 in4: 1

2013-10-08 12:55:18 PIFACE IO_0 in5: 1

2013-10-08 12:55:18 PIFACE IO_0 in6: 1

2013-10-08 12:55:18 PIFACE IO_0 in7: 1

2013-10-08 12:55:18 PIFACE IO_0 in8: 1

2013-10-08 12:55:19 dummy USV_Alarm on
2013-10-08 12:55:19 dummy USV_Battery on
2013-10-08 12:55:19 PIFACE IO_0 in11: 1

2013-10-08 12:55:19 PIFACE IO_0 in12: 1

2013-10-08 12:55:19 PIFACE IO_0 in13: 1

2013-10-08 12:55:19 PIFACE IO_0 in14: 1

2013-10-08 12:55:19 PIFACE IO_0 in15: 1

2013-10-08 12:55:19 PIFACE IO_0 in16: 1

2013-10-08 12:55:19 PIFACE IO_0 in17: 1

2013-10-08 12:55:19 PIFACE IO_0 in18: 1

2013-10-08 12:55:28 PIFACE IO_0 in1: 1

2013-10-08 12:55:28 PIFACE IO_0 in2: 1

2013-10-08 12:55:28 PIFACE IO_0 in3: 1

2013-10-08 12:55:28 PIFACE IO_0 in4: 1

2013-10-08 12:55:28 PIFACE IO_0 in5: 1

2013-10-08 12:55:28 PIFACE IO_0 in6: 1

2013-10-08 12:55:28 PIFACE IO_0 in7: 1

2013-10-08 12:55:28 PIFACE IO_0 in8: 1

2013-10-08 12:55:29 dummy USV_Alarm on
2013-10-08 12:55:29 dummy USV_Battery on
2013-10-08 12:55:29 PIFACE IO_0 in11: 1

2013-10-08 12:55:29 PIFACE IO_0 in12: 1

2013-10-08 12:55:29 PIFACE IO_0 in13: 1

2013-10-08 12:55:29 PIFACE IO_0 in14: 1

2013-10-08 12:55:29 PIFACE IO_0 in15: 1

2013-10-08 12:55:29 PIFACE IO_0 in16: 1

2013-10-08 12:55:29 PIFACE IO_0 in17: 1

2013-10-08 12:55:29 PIFACE IO_0 in18: 1

rudolfkoenig

Wie vermutet.

@betateilchen: bitte im PIFACE Modul fixen.

betateilchen

laut Maintainer.txt die falsche Rubrik *g*

Ich kümmere mich drum, aber der Fehler kommt ursächlich nicht aus dem PIFACE Modul, sondern wird schon als Rückgabewert aus wiringPi so geliefert.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

@Klaus: Kannst Du mal bitte diese Version testen? Ich habe aktuell kein PiFace verfügbar.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klaus.schauer

Der Fehler bei den get-Abfragen scheint behoben:

2013-10-08 18:08:30 PIFACE IO_0 in1: 1
2013-10-08 18:08:30 PIFACE IO_0 in2: 1
2013-10-08 18:08:30 PIFACE IO_0 in3: 1
2013-10-08 18:08:30 PIFACE IO_0 in4: 1
2013-10-08 18:08:30 PIFACE IO_0 in5: 1
2013-10-08 18:08:30 PIFACE IO_0 in6: 1
2013-10-08 18:08:30 PIFACE IO_0 in7: 1
2013-10-08 18:08:30 PIFACE IO_0 in8: 1
2013-10-08 18:08:31 dummy USV_Alarm on
2013-10-08 18:08:31 dummy USV_Battery on
2013-10-08 18:08:31 PIFACE IO_0 in11: 1
2013-10-08 18:08:31 PIFACE IO_0 in12: 1
2013-10-08 18:08:31 PIFACE IO_0 in13: 1
2013-10-08 18:08:31 PIFACE IO_0 in14: 1
2013-10-08 18:08:31 PIFACE IO_0 in15: 1
2013-10-08 18:08:31 PIFACE IO_0 in16: 1
2013-10-08 18:08:31 PIFACE IO_0 in17: 1
2013-10-08 18:08:31 PIFACE IO_0 in18: 1

Der Fehler bei den set-Befehlen aber nicht:

2013-10-08 18:15:42 PIFACE IO_0 out1: 0
2013-10-08 18:15:42 PIFACE IO_0 out2: 0
2013-10-08 18:15:42 PIFACE IO_0 out3: 0
2013-10-08 18:15:42 PIFACE IO_0 out4: 0
2013-10-08 18:15:42 PIFACE IO_0 out5: 0
2013-10-08 18:15:42 PIFACE IO_0 out6: 0
2013-10-08 18:15:42 PIFACE IO_0 out7: 0
2013-10-08 18:15:42 PIFACE IO_0 out8: 0
2013-10-08 18:15:42 PIFACE IO_0 out1: 0

2013-10-08 18:15:42 PIFACE IO_0 out2: 0

2013-10-08 18:15:42 PIFACE IO_0 out3: 0

2013-10-08 18:15:42 PIFACE IO_0 out4: 0

2013-10-08 18:15:42 PIFACE IO_0 out5: 0

2013-10-08 18:15:42 PIFACE IO_0 out6: 0

2013-10-08 18:15:42 PIFACE IO_0 out7: 0

2013-10-08 18:15:42 PIFACE IO_0 out8: 0

2013-10-08 18:15:47 PIFACE IO_0 out1: 1
2013-10-08 18:15:47 PIFACE IO_0 out2: 1
2013-10-08 18:15:47 PIFACE IO_0 out3: 1
2013-10-08 18:15:47 PIFACE IO_0 out4: 1
2013-10-08 18:15:47 PIFACE IO_0 out5: 1
2013-10-08 18:15:47 PIFACE IO_0 out6: 1
2013-10-08 18:15:47 PIFACE IO_0 out7: 1
2013-10-08 18:15:47 PIFACE IO_0 out8: 1
2013-10-08 18:15:48 PIFACE IO_0 out1: 1

2013-10-08 18:15:48 PIFACE IO_0 out2: 1

2013-10-08 18:15:48 PIFACE IO_0 out3: 1

2013-10-08 18:15:48 PIFACE IO_0 out4: 1

2013-10-08 18:15:48 PIFACE IO_0 out5: 1

2013-10-08 18:15:48 PIFACE IO_0 out6: 1

2013-10-08 18:15:48 PIFACE IO_0 out7: 1

2013-10-08 18:15:48 PIFACE IO_0 out8: 1

2013-10-08 18:15:53 PIFACE IO_0 out1: 1
2013-10-08 18:15:53 PIFACE IO_0 out1: 1

2013-10-08 18:15:53 PIFACE IO_0 out2: 1

2013-10-08 18:15:53 PIFACE IO_0 out3: 1

2013-10-08 18:15:53 PIFACE IO_0 out4: 1

2013-10-08 18:15:53 PIFACE IO_0 out5: 1

2013-10-08 18:15:53 PIFACE IO_0 out6: 1

2013-10-08 18:15:53 PIFACE IO_0 out7: 1

2013-10-08 18:15:53 PIFACE IO_0 out8: 1

2013-10-08 18:15:57 PIFACE IO_0 out1: 0
2013-10-08 18:15:57 PIFACE IO_0 out1: 0

2013-10-08 18:15:57 PIFACE IO_0 out2: 1

2013-10-08 18:15:57 PIFACE IO_0 out3: 1

2013-10-08 18:15:57 PIFACE IO_0 out4: 1

2013-10-08 18:15:57 PIFACE IO_0 out5: 1

2013-10-08 18:15:57 PIFACE IO_0 out6: 1

2013-10-08 18:15:57 PIFACE IO_0 out7: 1

2013-10-08 18:15:57 PIFACE IO_0 out8: 1

Die Ausgabe scheinen zudem bezogen auf den ausgeführten Befehl immer doppelt zu sein. Eingaben zu obigen Events:

set IO_0 0 0
set IO_0 0 255
set IO_0 1 1
set IO_0 1 0

M. E. wäre es besser, man könnte auch die Stati der out-Ports per get-Kommando abfragen. Bei einem set-Befehl sollte nur der jeweilige Befehl als Event und im LOG erscheinen.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!