FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: chriz am 16 Oktober 2014, 17:54:07

Titel: [gelöst] Perl Warnings meiner 99_MyUtils.pm
Beitrag von: chriz am 16 Oktober 2014, 17:54:07
Hallo zusammen,

konnte schon einige Perl-Warnings meines FHEM-Logs "einkreisen und ausmerzen", jedoch macht mir noch folgende Warning Probleme:

Logs
PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_MyUtils.pm line 7.

PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_MyUtils.pm line 7, <$fh> line 6.



99_MyUtils.pm

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}



Anscheinend wird in meiner 99_MyUtils.pm wegen Zeile 6 und 7 gemeckert, also zwecks "myUtils_Initialize($$)" und dem "{".


Könntet ihr mir etwas auf die Sprünge helfen wie man das fixed?

Vielen Dank
Chris
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: Dietmar63 am 16 Oktober 2014, 18:00:17
Hast du mit reload nachgeladen ?
Wenn ja dann kannst du diese Warnung nicht ausmerzen. Sie besagt dass eine Funktion durch eine neue Version ersetzt wurde
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: marvin78 am 16 Oktober 2014, 18:03:50
Es muss kein reload gewesen  sein (oder eben nur indirekt). Wenn du sie aus dem Webfrontend geändert und gespeichert hast, erscheint diese Meldung auch (eben, weil dann auch ein reload durchgeführt wird).
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: chriz am 16 Oktober 2014, 18:18:35
Die Warnings erscheinen bisher nur bei einem Neustart des FHEM-Servers.

Evtl. helfen genauere Logs und größere Bereiche meiner 99_MyUtils.pm:

2014.10.16 15:00:23 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_MyUtils.pm line 7.
2014.10.16 15:00:23 1: PERL WARNING: Subroutine SetTempList_HEIZ_ALLESET redefined at ./FHEM/99_MyUtils.pm line 32.
2014.10.16 15:00:23 1: PERL WARNING: Subroutine SetTempList_HEIZ_BUEGEL_Clima redefined at ./FHEM/99_MyUtils.pm line 70.

2014.10.16 15:00:24 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_MyUtils.pm line 7, <$fh> line 6.
2014.10.16 15:00:24 1: PERL WARNING: Subroutine SetTempList_HEIZ_ALLESET redefined at ./FHEM/99_MyUtils.pm line 32, <$fh> line 6.
2014.10.16 15:00:24 1: PERL WARNING: Subroutine SetTempList_HEIZ_BUEGEL_Clima redefined at ./FHEM/99_MyUtils.pm line 70, <$fh> line 6.





package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
1;

######################################################




######################################################
# Temperatur-Liste
# setzen per Aufruf von "{SetTempList_UG_Treppe_Heizung}"
# Vorsicht, da kein HM-CC-TC, sondern HM-CC-RT-DN, ist hier ein anderer Channel
# zu nehmen. Zudem wird mit prep|exec gearbeitet, um nicht alle Zeilen als
# einzelnen Befehl zu senden, sondern per "prep" erst alles
# zusammenzufassen und dann per "exec" an das Thermostat zu senden.
# Also als ein einziger Befehl statt sieben. Vermeidet "NACKs"
######################################################


# setzen per Aufruf von "{SetTempList_HEIZ_ALLESET}"

sub
SetTempList_HEIZ_ALLESET()
{
   { fhem ("{SetTempList_HEIZ_BUEGEL_Clima}")};
   { fhem ("{SetTempList_HEIZ_BAD_Clima}")};
   { fhem ("{SetTempList_HEIZ_DACH1_Clima}")};
   { fhem ("{SetTempList_HEIZ_DACH2_Clima}")};
   { fhem ("{SetTempList_HEIZ_DACH3_Clima}")};
   { fhem ("{SetTempList_HEIZ_DACH4_Clima}")};
   { fhem ("{SetTempList_HEIZ_ELTBAD_Clima}")};
   { fhem ("{SetTempList_HEIZ_ELTKUECHE_Clima}")};
   { fhem ("{SetTempList_HEIZ_ELTSCHLAF_Clima}")};
   { fhem ("{SetTempList_HEIZ_ELTWOHN_Clima}")};
   { fhem ("{SetTempList_HEIZ_GROZI1_Clima}")};
   { fhem ("{SetTempList_HEIZ_KLEID_Clima}")};
   { fhem ("{SetTempList_HEIZ_KUECHE_Clima}")};
   { fhem ("{SetTempList_HEIZ_TOILET_Clima}")};
   { fhem ("{SetTempList_HEIZ_WOHN1_Clima}")};
   { fhem ("{SetTempList_HEIZ_WOHN2_Clima}")};
   { fhem ("{SetTempList_HEIZ_HALLE1_Clima}")};
   { fhem ("{SetTempList_HEIZ_HALLE2_Clima}")};
   { fhem ("{SetTempList_HEIZ_HALLE3_Clima}")};
   { fhem ("{SetTempList_HEIZ_SCHLAF_Clima}")};
   { fhem ("{SetTempList_HEIZ_WASCH_Clima}")};
   { fhem ("{SetTempList_HEIZ_GROZI2_Clima}")};
   { fhem ("{SetTempList_HEIZ_LAGER1_Clima}")};
   { fhem ("{SetTempList_HEIZ_LAGER2_Clima}")};
   { fhem ("{SetTempList_HEIZ_LAGER3_Clima}")};
}
# End SetTempList_HEIZ_ALLESET
1;


######################################################


# setzen per Aufruf von "{SetTempList_HEIZ_BUEGEL_Clima}"

sub
SetTempList_HEIZ_BUEGEL_Clima()
{
   { fhem ("set HEIZ_BUEGEL_Clima tempListMon prep 06:00 17.5 09:00 17.5 17:00 17.5 21:30 17.5 24:00 17.5")};
   { fhem ("set HEIZ_BUEGEL_Clima tempListTue prep 06:00 17.5 09:00 17.5 17:00 17.5 21:30 17.5 24:00 17.5")};
   { fhem ("set HEIZ_BUEGEL_Clima tempListWed prep 06:00 17.5 09:00 17.5 17:00 17.5 21:30 17.5 24:00 17.5")};
   { fhem ("set HEIZ_BUEGEL_Clima tempListThu prep 06:00 17.5 09:00 17.5 17:00 17.5 21:30 17.5 24:00 17.5")};
   { fhem ("set HEIZ_BUEGEL_Clima tempListFri prep 06:00 17.5 09:00 17.5 17:00 17.5 21:30 17.5 24:00 17.5")};
   { fhem ("set HEIZ_BUEGEL_Clima tempListSat prep 06:00 17.5 09:00 17.5 17:00 17.5 21:30 17.5 24:00 17.5")};
   { fhem ("set HEIZ_BUEGEL_Clima tempListSun exec 06:00 17.5 09:00 17.5 17:00 17.5 21:30 17.5 24:00 17.5")};
}
# End SetTempList_HEIZ_BUEGEL_Clima
1;


######################################################



Danke
Chris
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: marvin78 am 16 Oktober 2014, 18:22:53
Sieht deine myUtils wirklich so aus?

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


Die 1 gehört da nicht hin, sondern ans Ende des Files.

Die Datei sollte auch 99_myUtils.pm heißen, wie die sub zu Beginn.
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: chriz am 16 Oktober 2014, 18:28:03
Ja, meine 99_MyUtils.pm sieht so aus, habe das 1:1 rauskopiert.

"1;" darf also nur 1x in der 99_MyUtils.pm vorkommen, und dann ganz am Schluss? Denn bei mir kommt das "1;" wesentlich  öfters vor.

Danke,
Chris
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: marvin78 am 16 Oktober 2014, 18:30:59
Die 1 gehört nur einmal an das Ende des Files.
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: Puschel74 am 16 Oktober 2014, 18:39:33
Hallo,

so wie es auch im Wiki beschrieben ist  ;)

Grüße
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: chriz am 16 Oktober 2014, 18:41:29
danke Marvin, hab alle 1 gelöscht - bis aufs Letzte in meiner 99_MyUtils.pm. Nun kommen etwas weniger Fehlermeldung nach einem Shutdown Restart.

Es wird noch wegen "{" gemeckert:

2014.10.16 18:34:28 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_MyUtils.pm line 7.
2014.10.16 18:34:28 1: PERL WARNING: Subroutine SetTempList_HEIZ_ALLESET redefined at ./FHEM/99_MyUtils.pm line 32.
2014.10.16 18:34:28 1: PERL WARNING: Subroutine SetTempList_HEIZ_BUEGEL_Clima redefined at ./FHEM/99_MyUtils.pm line 69.
2014.10.16 18:34:28 1: PERL WARNING: Subroutine SetTempList_HEIZ_GROZI1_Clima redefined at ./FHEM/99_MyUtils.pm line 88.
2014.10.16 18:34:28 1: PERL WARNING: Subroutine SetTempList_HEIZ_TOILET_Clima redefined at ./FHEM/99_MyUtils.pm line 107.


Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: marvin78 am 16 Oktober 2014, 18:43:17
Wie oben schon gesagt, ist das normal. Das zeigt nur an, dass die Subs geladen wurden. Das haben wir alle und ist KEIN Fehler oder meckern.

Aber die Datei sollte trotzdem 99_myUtils.pm heißen, wie oben schon geschrieben.
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: chriz am 16 Oktober 2014, 18:44:57
alles klar, dann weiß ich bescheid.

Danke für eure Geduld, Jungs!

Grüße
Chris
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: Dietmar63 am 16 Oktober 2014, 18:50:26
Also bei mir kommen diese  Meldungen nicht.
Vielleicht hast du die Funktionen irgendwie doppelt - eine zweite 99_Utils oder so.

Sie dir mal das Verzeichnis von fhem direkt an.
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: marvin78 am 16 Oktober 2014, 18:54:13
Deshalb komme ich immer wieder auf den Namen zurück. Bei einem Neustart sollten die Meldungen nicht kommen (das habe ich falsch bzw über(ge)lesen). Nur bei Speichern und/oder reload der Datei.
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: chriz am 16 Oktober 2014, 19:14:38
habe "myUtils_Initialize($$)" in "MyUtils_Initialize($$)" geändert und nun kommen die Meldungen nicht mehr...   :P

Man sollte einfach auf jede noch so kleine Kleinigkeit achten ;)

cheers
Chris


Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: marvin78 am 16 Oktober 2014, 19:38:28
Groß- und Kleinschreibung in Dateinamen ist aber keine Kleinigkeit ;)
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: Puschel74 am 16 Oktober 2014, 19:45:35
Jetzt reit mal nicht so drauf rum  ::)  ;D  8)

Wenn die Frage gelöst ist dann bitte auch den Betreff so markieren.
Danke.

Grüße

Memoanmich: Dringend den Admin fragen ob sich nicht so Buttons einbinden lassen würden um einen Beitrag markieren zu können (Gelöst, wasweißichwasnoch)
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: grappa24 am 16 Oktober 2014, 19:56:56
Zitat von: Puschel74 am 16 Oktober 2014, 19:45:35
Memoanmich: Dringend den Admin fragen ob sich nicht so Buttons einbinden lassen würden um einen Beitrag markieren zu können (Gelöst, wasweißichwasnoch)
Oh ja, ich hätt gern einen "Danke-Button" (Klick hier, wenn Du diesen Beitrag hilfreich findest)  ;)
Titel: Antw:Perl Warnings meiner 99_MyUtils.pm
Beitrag von: Puschel74 am 16 Oktober 2014, 20:01:17
Na dann sollten wir mal in die Wunschlrubrik verschwinden damit  8)
http://forum.fhem.de/index.php?board=15.0 (http://forum.fhem.de/index.php?board=15.0) wäre doch grad richtig dafür.