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

Begonnen von Sailor, 18 April 2014, 17:25:25

Vorheriges Thema - Nächstes Thema

Sailor

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
******************************
Man wird immer besser...

betateilchen

Du versuchst in Deiner Konfiguration irgendwo, ein reading mit ReadingsVal() auszulesen und verwendest dort eine falsche Syntax.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sailor

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
******************************
Man wird immer besser...

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sailor

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
******************************
Man wird immer besser...

betateilchen

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) = @_;
}

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sailor

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
******************************
Man wird immer besser...

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!