[gelöst] Perl Warnings meiner 99_MyUtils.pm

Begonnen von chriz, 16 Oktober 2014, 17:54:07

Vorheriges Thema - Nächstes Thema

chriz

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
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

Dietmar63

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
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

marvin78

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).

chriz

#3
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
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

marvin78

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.

chriz

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
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

marvin78

Die 1 gehört nur einmal an das Ende des Files.

Puschel74

Hallo,

so wie es auch im Wiki beschrieben ist  ;)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

chriz

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.


FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

marvin78

#9
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.

chriz

alles klar, dann weiß ich bescheid.

Danke für eure Geduld, Jungs!

Grüße
Chris
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

Dietmar63

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.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

marvin78

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.

chriz

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


FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

marvin78

Groß- und Kleinschreibung in Dateinamen ist aber keine Kleinigkeit ;)