[gelöst] myUtils Fehlermeldung beim speichern

Begonnen von ErzGabriel, 29 September 2016, 18:26:00

Vorheriges Thema - Nächstes Thema

ErzGabriel

Hallo.
Wollte mir gerade eine myUtils anlegen und habe  beim speichern der Datei folgende Fehlermeldung erhalten.

Undefined subroutine &main::MyUtils_Initialize called at fhem.pl line 2157

Meine Utils sieht laut Wiki wie folgt aus

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


Habe noch keine Daten eingefügt, weil ich mit der Fehlermeldung nichts anfangen kann. Um die Datei zu erstellen habe ich in Fhem die myUtilsTemplate.pm geüffnet und mit save as unter 99_myUtils abgespeichert.

Weiß jemand Rat?

Danke.

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

ErzGabriel

Habe es schon mit beiden schreibweisen probiert, der Fehler ist bei beiden der gleiche.

igami

hast du sie als myUtils abgespeichert oder 99_myUtils.pm?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

ErzGabriel

Ich habe es einmal als:

99_myUtils.pm

und als

99_MyUtils.pm

probiert. Die Datei immer nur umbenannt, das keine zwei Dateien entstehn. Der Fehler ist jedesmal gleich.

herrmannj

Undefined subroutine &main::MyUtils_Initialize called at fhem.pl line 2157

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

ErzGabriel

Fehler bleibt, auch bei anpassen der Zeile mit M oder m.

igami

Ich kann den Fehler nicht nachvollziehen. Öffne einfach nochmal die myUtilsTemplate.pm und mache genau das was darin steht.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Otto123

#8
Hallo ErzGabriel,

Es gibt doch aber die Datei myUtilsTemplate.pm
Erreichbar in der FHEM Oberfläche bei Edit files.
die öffnet man und sagt oben Save as und tippt dahinter 99_myUtils.pm

Damit geht man sicher, dass kein Mist in der neuen Datei steht.

Und genauso steht es im Wiki

Die Datei die Du oben gepostet hast sieht nicht so aus wie die Templatedatei. Die hat z.B. keine Leerzeichen am Zeilenanfang
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

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

# Enter you functions below _this_ line.


1;


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ErzGabriel

Hallo Otto.
Das war es, habe die 99_myUtils.pm gelöscht, System neu gestartet und es so gemacht wie Du gesagt hast. Keine Fehlermeldung beim speichern.
Ich behaupte mal, da ist dann ein Fehler im Wiki, weil hatte mir den Text von da mit Copy & Paste rüber geholt.

Danke.

Otto123

Zitat Wiki
ZitatEine neue Programmdatei erzeugen
Fhem enthält seit Updatestand 01/2015 eine Vorlage 'myUtilsTemplate.pm', die zur Erzeugung der Programmdatei genutzt werden sollte. Vorgehensweise:

Fhem-Menüpunkt Edit files anklicken
Weblink 'myUtilsTemplate.pm' anklicken
Im Textfeld hinter 'Save as' den Dateinamen '99_myUtils.pm' für die Programmdatei eintragen
Hinweis: Wenn ein anderer Dateiname angegeben wird, muss der Name Initialize-Routine entsprechend angepasst werden (siehe nachfolgende Erläuterung zur Grundstruktur unter Nr. 3)
Save as anklicken
Also ich finde das passt. Das weiter unten, wo Du dann kopiert hast ist doch nur Erklärung.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Coppersmith

Hallo ihr Experten, ich musste nach einem SD Karten Defekt mein FHEM neu aufsetzen, leider keine Sicherung erstellt .

Jetzt will ich wie in der Ref beschrieben die 99_myUtils.pm anlegen, bekomme aber immer die Felermeldung:
"Undefined subroutine &main::myUtilsTemplate_Initialize called at fhem.pl line 2725."
Das System ist neu, FHEM hab ich neu inst und aktuallisiert. Ich hab schon verschiedene groß / klein Schreibungen versucht ...immer das gleiche.

Kann das noch mit irgendwelchen Berechigungen zu tun haben ? Gruß Arno   

TomLee

#12
Vermute den Punkt drei hier im Wiki hast du bisher übergangen ?
edit:
99_myUtils.pm vs. myUtilsTemplate
ist aber auch genau über deinem Beitrag schonmal erwähnt worden.

Coppersmith

Ouhh ja das war schon mal ein heisser Tipp....das hatte ich überlesen. Danke.
Jetzt kommt dann auch schon der nächste Fehler..
Wenn ich das Beispiel aus dem Wiki übernehme und die Datei 99_myUtils.pm nenne und nach sub 99_myUtils_Initialize($$)..eintrage dann kommt :
"Illegal declaration of anonymous subroutine at ./FHEM/99_myUtils.pm line 6."
ich bedank mich schonmal im Voraus...Toll wie hier einem geholfen wird ..echt suppi !!!
Gruß Arno

TomLee

Zitat
...das hatte ich überlesen...
und nach sub 99_myUtils_Initialize($$)..eintrage

Du hast immer noch nicht richtig gelesen wie genau der Name der myUtils bei der Initialize-Routine anzugeben ist.
Die 99 gibst da nicht mit an.