[gelöst ]Bug in Svn_GetFile in Verbindung mit AttrTemplate ?

Begonnen von Otto123, 02 August 2020, 15:35:55

Vorheriges Thema - Nächstes Thema

Otto123

Hi,

ich weiß mein Vorgehen macht nicht unbedingt Sinn  ;D, aber zufällig habe ich folgendes Verhalten entdeckt:

Ausgangslage
Neu installiertes "leeres" FHEM

Der Befehl { AttrTemplate_Initialize() } erzeugt eine direkte Fehlermeldung
Undefined subroutine &main::AttrTemplate_Initialize called at (eval 22) line 1.
Der Befehl { Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }erzeugt noch kurz die Meldung "download startet" und dann startet FHEM neu
2020.08.02 15:14:27 1: SVN download of FHEM/lib/AttrTemplate/mqtt2.template to FHEM/lib/AttrTemplate/mqtt2.template finished
Undefined subroutine &main::AttrTemplate_Initialize called at (eval 22) line 1.
2020.08.02 15:14:27 1: Including fhem.cfg
2020.08.02 15:14:28 3: WEB: port 8083 opened
2020.08.02 15:14:28 2: eventTypes: loaded 184 events from ./log/eventTypes.txt
2020.08.02 15:14:28 1: Including ./log/fhem.save
2020.08.02 15:14:28 0: Featurelevel: 6
2020.08.02 15:14:28 0: Server started with 6 defined entities (fhem.pl:22475/2020-07-26 perl:5.028001 os:linux user:fhem pid:9571)

Die Definition des MQTT2_SERVER bewirkt noch keine Besserung
2020.08.02 15:19:18 3: mqtt2s: port 1883 opened
2020.08.02 15:19:42 1: ERROR evaluating { AttrTemplate_Initialize() }: Undefined subroutine &main::AttrTemplate_Initialize called at (eval 23) line 1.

Nach dem ersten autocreate ist alles schick
2020.08.02 15:20:17 2: autocreate: define MQTT2_mqttjs_f1e5ebdd MQTT2_DEVICE mqttjs_f1e5ebdd mqtt2s
2020.08.02 15:20:17 2: autocreate: define FileLog_MQTT2_mqttjs_f1e5ebdd FileLog ./log/MQTT2_mqttjs_f1e5ebdd-%Y.log MQTT2_mqttjs_f1e5ebdd
2020.08.02 15:20:24 2: AttrTemplates: got 175 entries

Die Befehle wie oben erzeugen keinen Fehler oder Neustart mehr.
Kann ich noch irgendwas ermitteln/liefern?

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

rudolfkoenig

Wenn AttrTemplate.pm nicht geladen ist, dann kann man AttrTemplate_Initialize() auch nicht aufrufen, und das bleibt auch so.
Dass Svn_GetFile FHEM zum Absturz bringt ist unschoen, das habe ich jetzt gefixt.
AttrTemplate.pm wird dynamisch geladen, wenn es benoetigt wird.  Wenn Du es "aus der Kommandozeile" brauchst, dann musst Du es mit { use AttrTemplate } vorher laden.

Otto123

Danke für den Fix. Den Rest habe ich fast verstanden. Ich brauch das vorher nicht, das war ja ein Zufallstreffer.

autocreate macht also ein use AttrTemplate?
Gibt es denn einen Mechanismus das Templates schon beim autocreate angewendet werden?
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

rudolfkoenig