FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jojo11 am 07 April 2017, 19:31:42

Titel: [gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 07 April 2017, 19:31:42
Hallo,

nach heutigem Update wird mein log file mit folgender Meldung geflutet:

Use of uninitialized value $cmd in pattern match (m//) at fhem.pl line 998.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.


Bin ich der Einzige oder gibt sich das wieder?  ::)

schöne Grüße
Jo
Titel: Antw:Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 07 April 2017, 19:40:40
998: AnalyzeCommandChain wurde mit einem undefinierten Befehl aufgerufen.
4362: irgendein event-min-interval ist madig.

Evtl. sieht man bei "attr global verbose 5" mehr.
Titel: Antw:Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 07 April 2017, 19:51:08
Puuh, daraus kann ich auch nichts erkennen (verbose 5). Die Zeile hängt überall mal dazwischen.

2017.04.07 19:24:56.113 0: Server started with 1248 defined entities (fhem.pl:13911/2017-04-06 perl:5.022001 os:linux user:fhem pid:11460)
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
2017.04.07 19:24:58.576 3: FHEM2FHEM device opened (RPiMODBUS)
[...]
2017.04.07 19:47:15.512 4: HMW_IO12_7_03: HM485_ChannelDoUpdate
2017.04.07 19:47:15.513 5: HMW_IO12_7_03: HM485_ChannelDoUpdate: valueKey = press_long value = 40 Alter Wert = 40
2017.04.07 19:47:15.513 4: HMW_IO12_7_03: press_long -> 40
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
2017.04.07 19:47:15.805 5: HM485: HM485:Device:dataConversion: retVal = 40
2017.04.07 19:47:15.806 5: HM485: Device:valueToControl: valName = press_long = 40
2017.04.07 19:47:15.809 5: Starting notify loop for HMW_IO12_7, 1 event(s), first is ACK
[...]
017.04.07 19:47:55.201 5: End notify loop for AV_Receiver
2017.04.07 19:47:55.251 5: HMLAN_Send:  HMUSB1 I:K
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4362.
2017.04.07 19:47:55.301 5: HMLAN/RAW: /HHM-USB-IF,03C7,KEQ1111252,2639FC,123ABC,F962EE1E,0009,02
2017.04.07 19:47:55.301 5: HMLAN_Parse: HMUSB1 V:03C7 sNo:KEQ1111252 d:2639FC O:123ABC t:F962EE1E IDcnt:0009 L:2 %
2017.04.07 19:47:55.301 5: Starting notify loop for HMUSB1, 1 event(s), first is loadLvl: low


schöne Grüße
Jo
Titel: Antw:Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 07 April 2017, 19:55:33
Bitte die Ausgabe von "list HMW_IO12_7_03" und "list .* event-min-interval" hier anhaengen.
Titel: Antw:Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 07 April 2017, 20:00:21
Bitteschön:


Internals:
   CFGFN      ./FHEM/fhem.cfg
   CHANGED
   DEF        0000F6F6_03
   FW_VERSION 3.06
   IODev
   MODEL      HMW_IO_12_Sw7_DR
   NAME       HMW_IO12_7_03
   NR         534
   STATE      press_long_47
   TYPE       HM485
   chanNo     03
   device     HMW_IO12_7
....


und


AV_Receiver              10
AV_Receiver_Zone2        10
BM_Garage                brightness:180
BM_Garten                brightness:180
BM_Hof                   brightness:180
BM_Z                     brightness:180
LaCrosse_sensor1         *:300
LaCrosse_sensor2         *:300
LaCrosse_sensor5         *:300
LaCrosse_sensor6         *:300
LaCrosse_sensor7         *:300
SDM630M_1c               300


schöne Grüße
Jo
Titel: Antw:Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 07 April 2017, 20:09:09
Alle event-min-interval Werte fuer LaCrosse.* sind kaputt, da * kein Regexp ist.
* alleine ist im Shell ueblich (siehe https://en.wikipedia.org/wiki/Glob_(programming (https://en.wikipedia.org/wiki/Glob_(programming)) ), das entsprechende regexp ist .*
FHEM verwendet ausschliesslich regexp, regexp ist deutlich maechtiger als glob, bitte irgendwo eine Einfuehrung dazu lesen (z.Bsp. perldoc perlretut)

P.S.: das Problem hat nichts mit irgendeinem update zu tun
Titel: Antw:Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 07 April 2017, 20:18:35
*gulp*  :o
Hab ich vor Jahren mal so (falsch) definiert und lief seitdem.

Ist korrigiert und die Meldung ist weg. Vielen Dank!

schöne Grüße
Jo
Titel: Antw:Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 09 April 2017, 22:11:34
Zitat von: rudolfkoenig am 07 April 2017, 19:40:40
998: AnalyzeCommandChain wurde mit einem undefinierten Befehl aufgerufen.
[...]

Kann ich bei Zeile 998 irgendeinen log einbauen, welches mir mehr Infos geben könnte? Stacktrace gibt nichts und verbose 5 ja irgendwie auch nicht. Die andere Meldung ist weg, aber die 998er kommt doch noch alle 2 Minuten  :-\

Schöne Grüße
Jo
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 10 April 2017, 07:12:05
ZitatKann ich bei Zeile 998 irgendeinen log einbauen,
Ich empfehle, vor der Zeile 998 folgendes einzubauen
if(!defined($cmd)) {
  Log 1, "ERROR: undefined cmd";
  stacktrace();
  return;
}

(ungetestet).
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 10 April 2017, 07:26:11
Vielen Dank!
Werde ich testen und dann berichten.

Schöne Grüße
Jo
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 10 April 2017, 19:47:50
Hallo,

mit dem code konnte ich folgenden log-Eintrag produzieren:

2017.04.10 19:27:57.524 1: ERROR: undefined cmd
2017.04.10 19:27:57.524 1: stacktrace:
2017.04.10 19:27:57.524 1:     main::AnalyzeCommandChain           called by fhem.pl (3425)
2017.04.10 19:27:57.524 1:     main::fhem                          called by (eval 2771) (2)
2017.04.10 19:27:57.524 1:     (eval)                              called by fhem.pl (1076)
2017.04.10 19:27:57.524 1:     main::AnalyzePerlCommand            called by fhem.pl (1096)
2017.04.10 19:27:57.524 1:     main::AnalyzeCommand                called by fhem.pl (1024)
2017.04.10 19:27:57.524 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (179)
2017.04.10 19:27:57.524 1:     main::at_Exec                       called by fhem.pl (2978)
2017.04.10 19:27:57.524 1:     main::HandleTimeout                 called by fhem.pl (617)


Dieser kam exakt alle 2 Minuten (was vorher nicht ersichtlich war). Bei der Durchsicht aller ATs, die alle 2 Minuten aufgerufen wurden bin ich fündig geworden. Es war ein (ziemlich alter) "addlog"-trigger. Nach dem Löschen war Ruhe.

Danke nochmal  :)

schöne Grüße
Jo
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 10 April 2017, 20:29:20
Kannst du bitte noch die entfernte at Definition zeigen? Fuer at fuehle ich mich verantwortlich, und so'n Muell sollte er nicht produzieren.
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 10 April 2017, 21:09:11
Hallo,

gerne, das hier war die alte Definition (direkt aus der cfg kopiert):

define at_addlogPwr at +*00:02:00 {fhem (addLogPwr("FS01_Pwr_aktuell","state"))}

Keine Ahnung, wie ich damals darauf gekommen bin  :-[ ;D

Wobei addLogPwr eine sub in der 99_myUtils.pm ist.

Das hier ist die neue, funktionierende Definition:

define at_addlogPwr at +*00:02:00 {addLogPwr("FS01_Pwr_aktuell","state")}


Wie gesagt, die Definition habe ich seit bestimmt 3 Jahren nicht geändert und bisher lief die eigentlich trotz des falschen codes.

schöne Grüße
Jo
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 11 April 2017, 11:25:41
define at_addlogPwr at +*00:02:00 {fhem (addLogPwr("FS01_Pwr_aktuell","state"))}

Ok, das erklaert es: addLogPwr liefert undef zurueck, und das verursacht die Meldung aus AnalyzeCommandChain.
at ist unschuldig, und die Ursache haette man einfacher (sprich ohne Code-Aenderung) auch mit "attr global stacktrace" finden koennen.
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 11 April 2017, 17:27:40
Aber genau das hatte ich ja schon gemacht. Mit dem Ergebnis, dass weder vor noch hinter der Meldung zusätzliche Informationen kamen.
Allerdings hatte ich

attr global stacktrace 1

gesetzt. Falls das einen Unterschied macht.

schöne Grüße
Jo
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 11 April 2017, 17:51:20
ZitatFalls das einen Unterschied macht.
Nein, falls man bei attr keinen Wert angibt, dann wird es auf 1 gesetzt.
Ich wollte einen Patch fuer fhem() einbauen, habe aber gesehen, dass es ueberfluessig ist.
Etwas komisch: du hast in deinem Log nichts von einem "PERL WARNING" geschrieben, das sollte aber kommen.
Schaut bei mir mit "attr global stacktrace" so aus:

2017.04.11 17:46:04 1: PERL WARNING: Use of uninitialized value $cmd in pattern match (m//) at fhem.pl line 998.
2017.04.11 17:46:04 3: eval: {fhem(undef)}
2017.04.11 17:46:04 1: stacktrace:
2017.04.11 17:46:04 1:     main::__ANON__                      called by fhem.pl (998)
2017.04.11 17:46:04 1:     main::AnalyzeCommandChain           called by fhem.pl (3419)
2017.04.11 17:46:04 1:     main::fhem                          called by (eval 14) (1)
2017.04.11 17:46:04 1:     (eval)                              called by fhem.pl (1070)
2017.04.11 17:46:04 1:     main::AnalyzePerlCommand            called by fhem.pl (1089)
2017.04.11 17:46:04 1:     main::AnalyzeCommand                called by fhem.pl (1018)
2017.04.11 17:46:04 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (179)
2017.04.11 17:46:04 1:     main::at_Exec                       called by fhem.pl (2972)
2017.04.11 17:46:04 1:     main::HandleTimeout                 called by fhem.pl (617)

wenn ich folgendes definiere:
fhem> define at at +00:00:01 {fhem(undef)}
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: Jojo11 am 11 April 2017, 19:08:08
Die PERL WARNING-Zeile hatte ich vorher (ohne weitere Angaben). Als ich Deinen "Patch" in die fhem.pl eingebaut hatte, kam die Zeile nicht mehr:

2017.04.10 19:23:57.463 1: ERROR: undefined cmd
2017.04.10 19:23:57.463 1: stacktrace:
2017.04.10 19:23:57.464 1:     main::AnalyzeCommandChain           called by fhem.pl (3425)
2017.04.10 19:23:57.464 1:     main::fhem                          called by (eval 1383) (2)
2017.04.10 19:23:57.464 1:     (eval)                              called by fhem.pl (1076)
2017.04.10 19:23:57.464 1:     main::AnalyzePerlCommand            called by fhem.pl (1096)
2017.04.10 19:23:57.464 1:     main::AnalyzeCommand                called by fhem.pl (1024)
2017.04.10 19:23:57.465 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (179)
2017.04.10 19:23:57.465 1:     main::at_Exec                       called by fhem.pl (2978)
2017.04.10 19:23:57.465 1:     main::HandleTimeout                 called by fhem.pl (617)
2017.04.10 19:25:57.465 1: ERROR: undefined cmd
2017.04.10 19:25:57.465 1: stacktrace:
2017.04.10 19:25:57.465 1:     main::AnalyzeCommandChain           called by fhem.pl (3425)
2017.04.10 19:25:57.465 1:     main::fhem                          called by (eval 1593) (2)
2017.04.10 19:25:57.466 1:     (eval)                              called by fhem.pl (1076)
2017.04.10 19:25:57.466 1:     main::AnalyzePerlCommand            called by fhem.pl (1096)
2017.04.10 19:25:57.466 1:     main::AnalyzeCommand                called by fhem.pl (1024)
2017.04.10 19:25:57.466 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (179)
2017.04.10 19:25:57.466 1:     main::at_Exec                       called by fhem.pl (2978)
2017.04.10 19:25:57.467 1:     main::HandleTimeout                 called by fhem.pl (617)
2017.04.10 19:26:19.434 3: CUL_HM set GWC_Decke off
2017.04.10 19:27:57.524 1: ERROR: undefined cmd
2017.04.10 19:27:57.524 1: stacktrace:
2017.04.10 19:27:57.524 1:     main::AnalyzeCommandChain           called by fhem.pl (3425)
2017.04.10 19:27:57.524 1:     main::fhem                          called by (eval 2771) (2)
2017.04.10 19:27:57.524 1:     (eval)                              called by fhem.pl (1076)
2017.04.10 19:27:57.524 1:     main::AnalyzePerlCommand            called by fhem.pl (1096)
2017.04.10 19:27:57.524 1:     main::AnalyzeCommand                called by fhem.pl (1024)
2017.04.10 19:27:57.524 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (179)
2017.04.10 19:27:57.524 1:     main::at_Exec                       called by fhem.pl (2978)
2017.04.10 19:27:57.524 1:     main::HandleTimeout                 called by fhem.pl (617)
2017.04.10 19:29:57.455 1: ERROR: undefined cmd
2017.04.10 19:29:57.455 1: stacktrace:
2017.04.10 19:29:57.455 1:     main::AnalyzeCommandChain           called by fhem.pl (3425)
2017.04.10 19:29:57.455 1:     main::fhem                          called by (eval 9047) (2)
2017.04.10 19:29:57.455 1:     (eval)                              called by fhem.pl (1076)
2017.04.10 19:29:57.455 1:     main::AnalyzePerlCommand            called by fhem.pl (1096)
2017.04.10 19:29:57.455 1:     main::AnalyzeCommand                called by fhem.pl (1024)
2017.04.10 19:29:57.455 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (179)
2017.04.10 19:29:57.456 1:     main::at_Exec                       called by fhem.pl (2978)
2017.04.10 19:29:57.456 1:     main::HandleTimeout                 called by fhem.pl (617)


Ich meine mich erinnern zu können, dass mit attr global stacktrace 1 gar keine zusätzlichen Infos kamen (wohl aber die PERL WARNING Meldung). Aber da bin ich mir nicht mehr sicher (und log gelöscht weil riesig aufgrund von verbose 5).

schöne Grüße
Jo
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: KalleBlomquist am 24 April 2017, 10:28:54
Hallo zusammen,

ich bekomme auch folgende Meldung:

^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4332.

Kann mir jemand behilflich sein, wie ich den Fehler finden kann ?

DANKE im voraus !!!

Vg
Kalle
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: rudolfkoenig am 24 April 2017, 10:51:07
https://forum.fhem.de/index.php/topic,71020.msg625469.html#msg625469
Titel: Antw:[gelöst] Nach Update "...fhem.pl line 4362"
Beitrag von: KalleBlomquist am 24 April 2017, 11:39:51
Das war´s (event-on-change-reading)...
DANKE !!!