Uninitialized value, fhem.pl line 1425

212 views
Skip to first unread message

cge

unread,
Oct 23, 2011, 3:35:12 PM10/23/11
to FHEM users
Hallo zusammen,

ich bekomme seit einiger Zeit folgende Fehlermeldung nach dem
Speichern der fhem.cfg:
Use of uninitialized value in concatenation (.) or string at fhem.pl
line 1425, <$fh> line 5.
und zwar direkt vor den Meldungen
2011.10.23 21:11:17 3: Opening CUL device /dev/ttyACM0
2011.10.23 21:11:17 3: Setting CUL baudrate to 9600
2011.10.23 21:11:17 3: CUL device opened
2011.10.23 21:11:17 2: FHEMWEB port 8083 opened
...

Hat jemand eine Idee für mich? So weit ich erkennen kann gibt es keine
Fehlfunktion im Zusammenhang mit der Meldung, sie macht mich aber
etwas nervös...

Kann leider nicht mehr genau zuordnen seit wann genau, evtl. stehen
die unten genannten Punkte im Zusammenhang.

a.) Früher hatte ich öfters die Meldungsfolge:
2011.10.21 10:23:50 1: statefile: Undefined value closed
Undefined value closed
Undefined value closed
Undefined value closed
Liegt evtl. am Einsatz von
attr RollladenVorne eventMap on:open off:closed
Die kommt jetzt scheinbar nicht mehr.
b.) in der Zwischenzeit ist sicher ein updatefhem gelaufen.
c.) Ich habe seither ein 99_email.pm angelegt, das erst nach mehreren
Anläufen ohne "reload: Error:Modul 99_email deactivated" akzeptiert
wurde. Ich hatte in irgendeinem Thread den Hinweis gefunden, dass
meine Fehlermeldung evtl. mit einem Modulreload ohne Parameter
zusammenhängt?

Mein 99_email.pm sieht so aus:
package main;
use strict;
use warnings;

sub fb_mail;

sub fb_mail {
my $subject = $_[0];
system("/sbin/mailer -s \"$subject\" -f \"fr...@Absender.de\" -t
\"t...@Zieladresse.de\" -m \"smtp.1und1.de\" ");
}

1;
d.) Ich habe den Eindruck, dass manchmal aber nicht immer beim
Speichern der fhem.cfg die Stati meiner FS20-Schalter verloren gehen

Viele Grüße und guten Start in die Woche,
Carsten

Rudolf Koenig

unread,
Oct 24, 2011, 1:28:21 AM10/24/11
to fhem-...@googlegroups.com
> Hat jemand eine Idee f�r mich?

Kannst Du bitte pruefen, ob die CVS Version die gleichen Probleme hat?

cge

unread,
Oct 24, 2011, 2:48:02 AM10/24/11
to FHEM users
Ja, müsste aktuell sein. Ich führe updatefhem regelmäßig durch, beim
letzten Lauf gestern wurden nur die Änderungen zu average.pm geladen.
Komischerweise kam beim Update aber noch ein
Use of uninitialized value $commandchain[0] in uc at ./FHEM/
99_updatefhem.pm line 43.

Rudolf Koenig

unread,
Oct 24, 2011, 4:15:43 AM10/24/11
to fhem-...@googlegroups.com
> Ja, m�sste aktuell sein.

Dann ist die Fehlermeldung sehr komisch, und tritt nur auf, wenn $param nicht
definiert ist, das verhindert aber Zeile 727 in fhem.pl. Ich kriege es nicht
reproduziert.

> Use of uninitialized value $commandchain[0] in uc at ./FHEM/
> 99_updatefhem.pm line 43.

Dafuer waere RueBe zustaendig, hat aber den gleichen Muster wie das andere
Problem, und tritt bei mir nicht auf.

-> Kann nur weiterhelfen, wenn Du das Problem reproduzieren kannst, und ich
exakt deine Umgebung aufbauen kann (und will :).

Ruebezahl

unread,
Oct 24, 2011, 4:21:31 AM10/24/11
to FHEM users
Hallo,

kann ich auch nicht nachvollziehen, fällt mir im Augenblick nur zu
ein, das es eine alte Perlversion ist??????
Versionsabfrage perl -v da müsste die Version zu sehen sein

Gruß,

RueBe

cge

unread,
Oct 24, 2011, 11:32:32 AM10/24/11
to FHEM users
Hallo,

Perl hat die Version 5.12.2, stammt aus einem aktuellen Download von
fhem.de.

Habe nun zu den beiden Punkten folgende Lösungen gefunden:

1.) zu uninitialized value in fhem.pl lag's an meiner 99_email.pm.
Nach weiterem Forschen habe ich festgestellt:
reload 99_email.pm liefert:
Undefined subroutine &main::email_Initialize called at fhem.pl line
1452.

Nach Vergleich mit anderen 99_* habe ich in mein 99_email.pm folgendes
eingefügt:
sub
Utils_Initialize($$)
{
my ($hash) = @_;
}

==> jetzt läuft reload 99_email.pm ohne Fehler durch und Save fhem.cfg
liefert auch keinen Fehler mehr.
==> Gibt es eigentlich eine Möglichkeit, von der angegebenen
Zeilennummer auf die tatsächliche Stelle zu schließen?

2.) zu Use of uninitialized value $commandchain[0] in uc at ./FHEM/
99_updatefhem.pm line 43. beim updatefhem ist m.E. ein Fehler in
updatefhem:
In Zeile 43 wird auf $commandchain[0] zugegriffen. Wenn ich aber
updatefhem ohne Parameter starte läuft er bei mir auf den genannten
Fehler. Kann es sein, dass die Variable nicht initialisiert wird wenn
ich alle optionalen Attribute bei updatefhem weglasse?

Grüße,
Carsten
> >    exakt deine Umgebung aufbauen kann (und will :).- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

Ruebezahl

unread,
Oct 25, 2011, 3:21:38 AM10/25/11
to FHEM users
Hallo,

also ich kann das Problem beim besten Willen nicht nachstellen und
bekomme niemals eine Fehlermeldung.

commandchain wird in Zeile 40 initialisiert mit
my @commandchain = split(/ +/,$param);

und wenn selbst $param nicht angegeben ist, dann sollte laut
Perlhandbuch die Variable $_ hier greifen.

Wo siehst du denn die Fehlermeldung? Im Log oder auf der Konsole?

Viele Grüße,
RueBe

UliM

unread,
Oct 25, 2011, 9:27:20 AM10/25/11
to FHEM users
Hi,
habe auch ab und an ein uninitialized value im log. Immer kurz nach
fhem restart.

> On 24 Okt., 17:32, cge <Carsten.Gent...@t-online.de> wrote:
> Nach Vergleich mit anderen 99_* habe ich in mein 99_email.pm folgendes
> eingefügt:
> sub
> Utils_Initialize($$)
> {
>   my ($hash) = @_;
> }
>
> ==> jetzt läuft reload 99_email.pm ohne Fehler durch und Save fhem.cfg
> liefert auch keinen Fehler mehr.

Muesste es analog zu anderen 99*.pm bei Dir dann nicht
sub
email_Initialze($$)
heissen?

Ich werd das mal mit meinem untoggle versuchen und schauen, ob die
"uninitialized value" dann verschwinden.

Gruss,
Uli

cge

unread,
Oct 25, 2011, 2:20:26 PM10/25/11
to FHEM users
Hallo,

> Muesste es analog zu anderen 99*.pm bei Dir dann nicht
>   sub
>   email_Initialze($$)
> heissen?
Da hast Du recht, sorry, hatte ich aus der falschen Datei kopiert.

Bzgl. updatefhem führt die Eingabe von "updatefhem" in der Web-
Oberfläche dann im Log zu:
Use of uninitialized value $commandchain[0] in uc at ./FHEM/
99_updatefhem.pm line 43.
2011.10.25 20:17:08 1: Got http://fhem.de/fhemupdate/filetimes.txt,
length: 5217

Gebe ich dagegen irgendeinen Parameter ein "updatefhem xxx", so
erscheint nur
2011.10.25 20:18:27 1: Got http://fhem.de/fhemupdate/filetimes.txt,
length: 5217

Da die Funktion scheinbar ok ist wäre das nur ein unbedeutender
Schönheitsfehler für mich...

Viele Grüße,
Carsten
Reply all
Reply to author
Forward
0 new messages