FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 14 April 2008, 00:11:35

Titel: [FHZ] Frage zu einer Fehlermeldung
Beitrag von: Guest am 14 April 2008, 00:11:35
Originally posted by: <email address deleted>

Hallo, Rudi

Ich habe heute die neueste Version von FHEM von Berlios runtergeladen
und bekomme jetzt folgende Fehler in einem Unterprogramm, das bisher
klaglos funktioniert hat:
History   Use of uninitialized value in substitution (s///) at /usr/
local/lib/FHEM/99_PRIV.pm line 45.
History   Use of uninitialized value in substitution (s///) at /usr/
local/lib/FHEM/99_PRIV.pm line 46.
History   Use of uninitialized value in pattern match (m//) at /usr/
local/lib/FHEM/99_PRIV.pm line 47.

windowopen()
{
  my ($a1, $a2) = @_;
  my $openwindowcntr = 0;
  foreach my $d (keys %defs) {
    next if($defs{$d}{TYPE} ne "FHT");
    my ($bat,$roomwindow,$fault) = split(",", $defs{$d}{READINGS}
{"state"}{VAL},3);
    $bat =~ s/^.*: //;
    $roomwindow =~ s/^.*: //;
    $fault =~ s/^.*: //;
    $openwindowcntr += ($roomwindow =~ m/open/) ? 1 : 0;
  }
  return $openwindowcntr;
}
Die fraglichen Zeilen beginnen mit $bat, $roomwindow und $fault und
ich verstehe die Fehlermeldung nicht.
Ich konnte das Problem durch ändern der Zeile my ($bat,$roomwindow,
$fault) in  (my $bat,my $roomwindow,my $fault) nicht beheben, aber
warum das Problem? Ich glaube, da gibt es noch mehr Probleme in diesem
Unterprogramm.

Zusätzlich bekomme ich mehrmals die Meldung:
History   Use of uninitialized value in concatenation (.) or string at /
usr/local/bin/fhem.pl line 741.
bzw.
Use of uninitialized value in sprintf at /usr/local/bin/fhem.pl line
1219.

Was hat sich geändert.

Sorry für eine vielleicht dumme Frage, aber ich beschäftige mich nur
im Urlaub mit Perl

Vielen Dank

Markus
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-
Titel: [FHZ] Re: Frage zu einer Fehlermeldung
Beitrag von: Dr. Boris Neubert am 14 April 2008, 17:25:38
                                                   

Hallo Markus,

die Fehlermeldung besagt, dass man auf unitialisierte Daten zugreifen
will: die drei Variablen sind Ergebnis der split Anweisung, und der
hat wahrscheinlich nichts zum splitten gehabt, deswegen sind die
Variablen auch nicht initialisiert.

Grund: Im letzten Version wurde das fht "state" in "warnings"
umbenannt, und enthaelt entweder "none" oder (wenn es zutrifft)
folgende Strings:
Battery low, Temperature too low, Window open, Fault on window sensor

D.h. der code in 99_PRIV.pm muss angepasst werden.

----------------
Zeile 741 bzw. 1219 sind Folgefehler: Durch den Lese-Zugriff $defs{$d}
{READINGS}{state}{VAL}
wird $defs{$d}{READINGS}{state} angelegt, leider ohne VAL/TIME, was in
den besagten Zeilen referenziert wird. Das ist (m)ein typisches Perl-
Fehler, eigentlich muesste man vor dem Zugriff auf tiefe Hashes
abfragen, ob alle Ebenen vorhanden sind.

Gruss,
  Rudi

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-
Titel: [FHZ] Re: Frage zu einer Fehlermeldung
Beitrag von: Guest am 15 April 2008, 01:45:26
Originally posted by: <email address deleted>

Danke Rudi

Ich habe den Code korrigiert. Jetzt geht alles wieder und ich kann mit
den Dummyvariablen spielen ;-)
Vielen Dank übrigens.

Markus

On 14 Apr., 17:25, Rudolf Koenig wrote:
> Hallo Markus,
>
> die Fehlermeldung besagt, dass man auf unitialisierte Daten zugreifen
> will: die drei Variablen sind Ergebnis der split Anweisung, und der
> hat wahrscheinlich nichts zum splitten gehabt, deswegen sind die
> Variablen auch nicht initialisiert.
>
> Grund: Im letzten Version wurde das fht "state" in "warnings"
> umbenannt, und enthaelt entweder "none" oder (wenn es zutrifft)
> folgende Strings:
> Battery low, Temperature too low, Window open, Fault on window sensor
>
> D.h. der code in 99_PRIV.pm muss angepasst werden.
>
> ----------------
> Zeile 741 bzw. 1219 sind Folgefehler: Durch den Lese-Zugriff $defs{$d}
> {READINGS}{state}{VAL}
> wird $defs{$d}{READINGS}{state} angelegt, leider ohne VAL/TIME, was in
> den besagten Zeilen referenziert wird. Das ist (m)ein typisches Perl-
> Fehler, eigentlich muesste man vor dem Zugriff auf tiefe Hashes
> abfragen, ob alle Ebenen vorhanden sind.
>
> Gruss,
>   Rudi
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-