Hi Kollegen,
ich habe seit dem Update heute folgenden Log Einträge:
Feb 1 19:03:30 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Feb 1 19:03:41 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Feb 1 19:03:50 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Feb 1 19:04:00 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Hat das eventuell mit der Änderung zu tun?
Gruß
Michael
Zitat von: michael.winkler am 01 Februar 2018, 19:07:05
Hi Kollegen,
ich habe seit dem Update heute folgenden Log Einträge:
Feb 1 19:03:30 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Feb 1 19:03:41 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Feb 1 19:03:50 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Feb 1 19:04:00 HMMWSMART04 collectord[1286]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN4> line 1.
Hat das eventuell mit der Änderung zu tun?
Gruß
Michael
Nein, das steht im Zusammenhang mit der implementierten Raumerkennung basierend auf dem Empfangspegel (RSSI) der einzelnen Räume. Bitte ändere mal Zeile 926 wiefolgt ab:
my $rssi_data = ($rssi_available ? join(";", map("rssi_".$_."='".$rssi_results{$_}."'", map {s/\s+/_/rg } keys %rssi_results)) : undef);
Starte anschließend collectord neu. Damit müsste die Warnung weg sein.
Viele Grüße
Markus
jetzt erhalte ich folgende Fehlermeldung
Feb 11 12:05:52 HMMWSMART04 collectord[489]: #015removed PID-File /var/run/collectord.pid
Feb 11 12:05:52 HMMWSMART04 collectord[489]: #015server shutdown
Feb 11 12:05:52 HMMWSMART04 systemd[1]: Stopping collecting presence state from multiple presenced instances for FHEM...
Feb 11 12:05:52 HMMWSMART04 systemd[1]: Stopped collecting presence state from multiple presenced instances for FHEM.
Feb 11 12:05:57 HMMWSMART04 systemd[1]: Started collecting presence state from multiple presenced instances for FHEM.
Feb 11 12:05:58 HMMWSMART04 collectord[1241]: Global symbol "$rssi_available" requires explicit package name (did you forget to declare "my $rssi_available"?) at /usr/bin/collectord line 926.
Feb 11 12:05:58 HMMWSMART04 collectord[1241]: Execution of /usr/bin/collectord aborted due to compilation errors.
Feb 11 12:05:58 HMMWSMART04 systemd[1]: collectord.service: Main process exited, code=exited, status=255/n/a
Feb 11 12:05:58 HMMWSMART04 systemd[1]: collectord.service: Unit entered failed state.
Feb 11 12:05:58 HMMWSMART04 systemd[1]: collectord.service: Failed with result 'exit-code'.
Meine alte Zeile sah wie folgt aus:
my $rssi_data = join(";", map("rssi_".$_."='".$rssi_results{$_}."'", map {s/\s+/_/rg } keys %rssi_results));
Mein Fehler. Ich meinte so rum:
my $rssi_data = (%rssi_results ? join(";", map("rssi_".$_."='".$rssi_results{$_}."'", map {s/\s+/_/rg } keys %rssi_results)) : undef);
Gruß
Markus
Zitat von: Markus Bloch am 11 Februar 2018, 12:29:39
Mein Fehler. Ich meinte so rum:
my $rssi_data = (%rssi_results ? join(";", map("rssi_".$_."='".$rssi_results{$_}."'", map {s/\s+/_/rg } keys %rssi_results)) : undef);
Gruß
Markus
ok, danke. Jetzt startet es wieder, ohne Fehlermeldung.
Baust Du das ins nächste Release mit ein?
PS: Zu früh gefreut. Leider kommen die Meldungen noch immer:
Feb 11 13:59:30 HMMWSMART04 collectord[2266]: #015new connection from 10.10.0.230:45837
Feb 11 13:59:30 HMMWSMART04 collectord[2266]: #015new connection from 10.10.0.230:45838
Feb 11 13:59:30 HMMWSMART04 collectord[2266]: #015created thread 2 for processing device 7C:2F:80:AD:B8:27 in room Haus Flur for peer 10.10.0.230 (UUID: 4decb19645a8836f0fd33c924053d750)
Feb 11 13:59:30 HMMWSMART04 collectord[2266]: #015created thread 3 for processing device 7C:2F:80:AD:B8:6B in room Haus Flur for peer 10.10.0.230 (UUID: f2cda0d22f369698eb2fd018c2f44fc4)
Feb 11 13:59:31 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN3> line 1.
Feb 11 13:59:31 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN3> line 1.
Feb 11 13:59:31 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN3> line 1.
Feb 11 13:59:31 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN3> line 1.
Feb 11 13:59:32 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Feb 11 13:59:33 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Feb 11 13:59:42 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Feb 11 13:59:42 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Feb 11 13:59:52 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Feb 11 13:59:52 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Feb 11 14:00:02 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Feb 11 14:00:02 HMMWSMART04 collectord[2266]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 926, <GEN1> line 2.
Sofern wir die richtige Lösung haben, baue ich das natürlich ein.
Da ich die RSSI-Erkennung bei mir jedoch mangels Infrastruktur nicht testen kann, bin ich auf Rückmeldungen angewiesen.
Kannst du bitte vor die Zeile 926 folgende Zeilen einfügen?
use Data::Dumper;
Log 0, "rssi_results: ".Dumper(\%rssi_results);
Danke, und dann mal bitte die Logmeldungen dazu posten.
Gruß
Markus
Zitat von: Markus Bloch am 11 Februar 2018, 14:11:14
Sofern wir die richtige Lösung haben, baue ich das natürlich ein.
Da ich die RSSI-Erkennung bei mir jedoch mangels Infrastruktur nicht testen kann, bin ich auf Rückmeldungen angewiesen.
Kannst du bitte vor die Zeile 926 folgende Zeilen einfügen?
use Data::Dumper;
Log 0, "rssi_results: ".Dumper(\%rssi_results);
Danke, und dann mal bitte die Logmeldungen dazu posten.
Gruß
Markus
anbei das neue LOG
Feb 11 19:25:03 HMMWSMART04 collectord[10211]: #015new connection from 10.10.0.230:36620
Feb 11 19:25:03 HMMWSMART04 collectord[10211]: #015created thread 2 for processing device 7C:2F:80:AD:B8:6B in room Haus Flur for peer 10.10.0.230 (UUID: e2ba2a78216b2bd2f09c2bcb4a66eb1f)
Feb 11 19:25:03 HMMWSMART04 collectord[10211]: #015created thread 3 for processing device 7C:2F:80:AD:B8:3A in room Haus Flur for peer 10.10.0.230 (UUID: c3efd7bd765a168e2f6226ff1d1f22fc)
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015rssi_results: $VAR1 = {
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: 'Haus Flur' => '-59'
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: };
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 930, <GEN3> line 1.
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015rssi_results: $VAR1 = {
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: 'Haus Flur' => '-65'
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: };
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 930, <GEN3> line 1.
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015rssi_results: $VAR1 = {
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: 'Haus Flur' => '-60'
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: };
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 930, <GEN3> line 1.
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015rssi_results: $VAR1 = {
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: 'Haus Flur' => '-65'
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: };
Feb 11 19:25:04 HMMWSMART04 collectord[10211]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 930, <GEN3> line 1.
Feb 11 19:25:05 HMMWSMART04 collectord[10211]: #015rssi_results: $VAR1 = {
Feb 11 19:25:05 HMMWSMART04 collectord[10211]: 'Haus Flur' => '-63'
Feb 11 19:25:05 HMMWSMART04 collectord[10211]: };
Feb 11 19:25:05 HMMWSMART04 collectord[10211]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 930, <GEN3> line 2.
Feb 11 19:25:06 HMMWSMART04 collectord[10211]: #015rssi_results: $VAR1 = {
Feb 11 19:25:06 HMMWSMART04 collectord[10211]: 'Haus Flur' => '-63'
Feb 11 19:25:06 HMMWSMART04 collectord[10211]: };
Feb 11 19:25:06 HMMWSMART04 collectord[10211]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 930, <GEN3> line 2.
funktioniert dies?
my $rssi_data = (%rssi_results ? join(";", map { my $n=$_; $n=s/\s+/_/rg; "rssi_".$n."='".$rssi_results{$_}."'" } keys %rssi_results) : undef);
Mfg.
Ok, neuer Versuch:
my $rssi_data = (%rssi_results ? join(";", map { "rssi_".$_."='".$rssi_results{$_}."'" } map {s/\s+/_/rg } keys %rssi_results)) : undef);
Gruß
Markus
Zitat von: Markus Bloch am 11 Februar 2018, 21:21:23
Ok, neuer Versuch:
my $rssi_data = (%rssi_results ? join(";", map { "rssi_".$_."='".$rssi_results{$_}."'" } map {s/\s+/_/rg } keys %rssi_results)) : undef);
Gruß
Markus
Jetzt steht wieder folgendes im LOG
Feb 11 21:48:40 HMMWSMART04 systemd[1]: Stopping collecting presence state from multiple presenced instances for FHEM...
Feb 11 21:48:40 HMMWSMART04 systemd[1]: Stopped collecting presence state from multiple presenced instances for FHEM.
Feb 11 21:48:45 HMMWSMART04 systemd[1]: Started collecting presence state from multiple presenced instances for FHEM.
Feb 11 21:48:46 HMMWSMART04 collectord[14234]: syntax error at /usr/bin/collectord line 927, near ")) "
Feb 11 21:48:46 HMMWSMART04 collectord[14234]: Global symbol "$rssi_data" requires explicit package name (did you forget to declare "my $rssi_data"?) at /usr/bin/collectord line 932.
Feb 11 21:48:46 HMMWSMART04 collectord[14234]: Global symbol "$rssi_data" requires explicit package name (did you forget to declare "my $rssi_data"?) at /usr/bin/collectord line 932.
Feb 11 21:48:46 HMMWSMART04 collectord[14234]: Execution of /usr/bin/collectord aborted due to compilation errors.
Feb 11 21:48:46 HMMWSMART04 systemd[1]: collectord.service: Main process exited, code=exited, status=255/n/a
Feb 11 21:48:46 HMMWSMART04 systemd[1]: collectord.service: Unit entered failed state.
Feb 11 21:48:46 HMMWSMART04 systemd[1]: collectord.service: Failed with result 'exit-code'.
Ich war mal so frei und habe dein Problem aus dem bestehenden Thema heraus getrennt.
Da war noch ein Klammerfehler enthalten:
my $rssi_data = (%rssi_results ? join(";", map { "rssi_".$_."='".$rssi_results{$_}."'" } map {s/\s+/_/rg } keys %rssi_results) : undef);
Zitat von: Markus Bloch am 11 Februar 2018, 22:16:48
Ich war mal so frei und habe dein Problem aus dem bestehenden Thema heraus getrennt.
Da war noch ein Klammerfehler enthalten:
my $rssi_data = (%rssi_results ? join(";", map { "rssi_".$_."='".$rssi_results{$_}."'" } map {s/\s+/_/rg } keys %rssi_results) : undef);
Habe nur durch Zufall den neuen thread gefunden ;-)
Änderung hat leider nichts gebracht
Feb 12 13:20:53 HMMWSMART04 collectord[13793]: #015created socket on 0.0.0.0 with port 5222
Feb 12 13:21:47 HMMWSMART04 collectord[13793]: #015new connection from 10.10.0.230:53450
Feb 12 13:21:48 HMMWSMART04 collectord[13793]: #015created thread 1 for processing device 7C:2F:80:AD:B8:3A in room Haus Flur for peer 10.10.0.230 (UUID: 5a6eeba90a90268be942c938b71b5264)
Feb 12 13:21:48 HMMWSMART04 collectord[13793]: #015new connection from 10.10.0.230:53451
Feb 12 13:21:48 HMMWSMART04 collectord[13793]: #015new connection from 10.10.0.230:53452
Feb 12 13:21:48 HMMWSMART04 collectord[13793]: #015created thread 2 for processing device 7C:2F:80:AD:B8:27 in room Haus Flur for peer 10.10.0.230 (UUID: aa8408681cef9491cab63c30ae16d434)
Feb 12 13:21:48 HMMWSMART04 collectord[13793]: #015created thread 3 for processing device 7C:2F:80:AD:B8:6B in room Haus Flur for peer 10.10.0.230 (UUID: 9dcdbcedb02ab5e47569806daf5291c0)
Feb 12 13:21:49 HMMWSMART04 collectord[13793]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 927, <GEN3> line 1.
Feb 12 13:21:49 HMMWSMART04 collectord[13793]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 927, <GEN3> line 1.
Feb 12 13:21:51 HMMWSMART04 collectord[13793]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 927, <GEN3> line 2.
Feb 12 13:22:00 HMMWSMART04 collectord[13793]: #015PERL WARN: Use of uninitialized value in concatenation (.) or string at /usr/bin/collectord line 927, <GEN3> line 2.
Hallo Michael,
ich habe jetzt nochmal intensiv bei mir nachgetestet und habe den Fehler gefunden (Blöder Denkfehler):
if(@rooms > 0)
{
return "present".
";rooms='".join(",",sort @rooms)."'".
(defined($hroom) ? ";room='".$hroom."'" : "").
(%rssi_results ? ";".join(";", map { "rssi_".($_ =~ s/\s+/_/gr)."='".$rssi_results{$_}."'" } keys %rssi_results) : "").
(defined($hroom) ? ";".$hash->{$hroom}{data} : (defined($hash->{$rooms[0]}{data}) ? ";".$hash->{$rooms[0]}{data} : ""));
}
else
{
return "absence;room=;rooms=;rssi=;";
}
Damit funktioniert das nun bei mir problemlos.
Zitat von: Markus Bloch am 13 Februar 2018, 11:05:59
Hallo Michael,
ich habe jetzt nochmal intensiv bei mir nachgetestet und habe den Fehler gefunden (Blöder Denkfehler):
if(@rooms > 0)
{
return "present".
";rooms='".join(",",sort @rooms)."'".
(defined($hroom) ? ";room='".$hroom."'" : "").
(%rssi_results ? ";".join(";", map { "rssi_".($_ =~ s/\s+/_/gr)."='".$rssi_results{$_}."'" } keys %rssi_results) : "").
(defined($hroom) ? ";".$hash->{$hroom}{data} : (defined($hash->{$rooms[0]}{data}) ? ";".$hash->{$rooms[0]}{data} : ""));
}
else
{
return "absence;room=;rooms=;rssi=;";
}
Damit funktioniert das nun bei mir problemlos.
ja, jetzt funktioniert es.
Ich hab soeben ein neues Debian-Paket gebaut.
Gruß
Markus