FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sailor am 18 April 2014, 17:25:25

Titel: Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: Sailor am 18 April 2014, 17:25:25
Hallo zusammen

habe nach dem fhem Update heute jedesmal beim Neustart in der console folgende Fehlermeldung stehen:


./startfhem
# Use of uninitialized value $n in hash element at fhem.pl line 3213.
Use of uninitialized value $n in hash element at fhem.pl line 3213.

:o
Kann man das ignorieren oder sollte man dort korrigierend einschreiten?

Wenn Letzteres, wie?

Gruss
    Sailor
Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: betateilchen am 18 April 2014, 17:27:19
Du versuchst in Deiner Konfiguration irgendwo, ein reading mit ReadingsVal() auszulesen und verwendest dort eine falsche Syntax.

Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: Sailor am 18 April 2014, 17:34:23
Hallo betateilchen,

Danke fuer die schnelle Antwort.

Dann fragt sich dann nur wo...


Das riecht heute Abend nach einer intensiven Suche.
Kann man die Suche irgendwie eingrenzen lassen?

Das haengt aber nicht damit zusammen, dass parallel seit heute meine 99_myUtils nicht mehr funktioniert, oder?

Gruss
    Matthias
Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: betateilchen am 18 April 2014, 17:36:00
ich weiss doch nicht, was Du heute auf Deinem System getrieben hast *g*

Vermutlich hast Du in Deine 99_myUtils einen Fehler eingebaut, der nun dafür sorgt, dass dort irgendwo das Lesen eines Reading scheitert. Eigentlich bekommt man ja eine Fehlermeldung beim Abspeichern der 99_myUtils.pm - zumindest wenn man die Datei über das Webfrontend ändert und das nicht auf Betriebssystemeben versucht.
Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: betateilchen am 18 April 2014, 17:36:19
poste doch mal Deine 99_myUtils.pm
Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: Sailor am 18 April 2014, 17:46:34
Also im Logfile steht das:

2014.04.18 17:28:15 1: reload: Error:Modul 99_myUtils deactivated:

in der 99_myUtils.pm steht das

########################################################################################################################
#                                                                                                                      #
# Filename:    99_myUtils.pm                                                                                           #
# Last Update: 14.02.2014                                                                                              #
# Author:      Sailor                                                                                          #
#                                                                                                                      #
#                                                                                                                      #
# 2014-01-14: Comments added to programming code                                                                       #
# 2014-02-05: Changing Battery notification from email to PushOver                                                     #
# 2014-02-14: Battery handler deleted since implemented directly under each device                                     #
########################################################################################################################

###START########## PERL Initialisation ########################################################################START###
package main;
use strict;
use warnings;
use POSIX;
use FritzBoxUtils;
####END########### PERL Initialisation ##########################################################################END####

###START########## Define Sub for sending emails ###############################################################START###
sub fb_mail {
    my $rcpt = $_[0];
    my $subject = $_[1];
    my $text = $_[2];
    my $sender = "Sender";
    my $provider = "smtp.1und1.de";
    my $user = "User";
    my $passwrd = "Geloescht!";
    system("/bin/echo \"$text\" > /var/tmp/fhem_nachricht.txt");
    system("/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \"$subject\" -f \"$sender\" -t \"$rcpt\" -m \"$provider\" -a \"$user\" -w \"$passwrd\"");
    system("rm /var/tmp/fhem_nachricht.txt");
}
####END########### Define Sub for sending emails ################################################################END####

###START########## Define Sub for adding log entries ###########################################################BEGiN###
#Source: http://www.fhemwiki.de/wiki/Plot-Abriss_vermeiden                                                             #
# called by                                                                                                            #
# define addLog notify addLog {addLog("ez_Aussensensor","state");addLog("ez_FHT","actuator");\                         #
#               addLog("MunichWeather","humidity");addLog("MunichWeather","pressure");\                                #
#               addLog("MunichWeather","temperature");addLog("MunichWeather","wind_chill");}                           #
# define a_midnight1 at *23:59 trigger addLog                                                                          #
# define a_midnight2 at *00:01 trigger addLog                                                                          #
sub addLog($$) {
  my ($logdevice, $reading) = @_;
  my $logentry = ReadingsVal($logdevice,$reading,"addLog: invalid reading");
  if ($reading =~ m,state,i) {
    fhem "trigger $logdevice $logentry   << addLog";
  } else {
    fhem "trigger $logdevice $reading: $logentry   << addLog";
  }
}
####END########### Define Sub for  adding log entries ###########################################################END####

1;


Und beim abspeichern der 99_myUtils kommt das:

ERROR:
Undefined subroutine &main::myUtils_Initialize called at fhem.pl line 1949.

Sailor
Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: betateilchen am 18 April 2014, 17:53:00
Zitat von: Sailor am 18 April 2014, 17:46:34
Und beim abspeichern der 99_myUtils kommt das:

ERROR:
Undefined subroutine &main::myUtils_Initialize called at fhem.pl line 1949.

Die Meldung kann doch klarer gar nicht sein:

In Deiner 99_myUtils.pm gibt es keine Initialize-Routine.

Füge mal nach "use FritzBoxUtils;"

folgende Zeilen ein:


sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}

Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: Sailor am 18 April 2014, 18:18:06
OK,

a) die Fehlermeldung beim abspeichern der 99_myUtils.pm ist schon mal weg. DANKE!
b) der Eintrag hinsichtlich der 99_myUtils.pm taucht nicht mehr im Log file auf. DANKE!
c) Bleibt nur noch der Eintrag iin der Konsole


# ./startfhem
# Use of uninitialized value $n in hash element at fhem.pl line 3213.
Use of uninitialized value $n in hash element at fhem.pl line 3213.


Wenn Du sicher bist, dass es sich um einen fehlerhaften Eintrag um den Befehl "ReadingsVal()" in der fhem.cfg handelt, dann werde ich mich mal auf die Suche machen.

Wozu gibt es die Textsuche!  8)

2 Fragen dazu:
a) Um welche Art von Syntaxfehler es sich dabei handelt kann man nicht sagen oder? (Klammer vergessen oder aehnliches)
b) Kommt der Fehler in der fhem.cfg nur einmal vor oder kann sich hinter diesem einen Eintrag eine systematische Falschanwendung verbergen. (24 mal)

Danke nochmal!

Sailor
Titel: Antw:Use of uninitialized value $n in hash element at fhem.pl line 3213.
Beitrag von: betateilchen am 18 April 2014, 18:22:28
Zitat von: Sailor am 18 April 2014, 18:18:06
a) Um welche Art von Syntaxfehler es sich dabei handelt kann man nicht sagen oder?

Doch, kann man. Du hast höchstwahrscheinlich irgendwo vergessen, den Namen des Readings anzugeben, dessen Wert Du haben willst.