Error bei Einbindung HttpUtils.pm

Begonnen von timtom2000, 18 Mai 2021, 23:21:48

Vorheriges Thema - Nächstes Thema

timtom2000

Hallo,

ich würde gerne die HttpUtils (und ggf. HTTPMOD) nutzen.

Da meine Installation die HttpUtils-Funktionen bisher nicht kennt, wollte ich das Modul mit "reload HttpUtils.pm" nachträglich einbinden.
Dabei kam die Fehlermeldung "Undefined subroutine &main::httputils_Initialize called at fhem.pl line 2692.", s. auch Anhang.

Ich verstehe die Meldung so, dass die Funktion "httputils_Initialize" nicht gefunden wird. Im Modul HttpUtils.pm ist die Funktion auch nicht vorhanden.
Das Modul ist aber up-to-date (Version 24338 2021-04-26), genauso wie fhem.pl (Version 24365 2021-05-01).

Kann mir jemand helfen was ich falsch mache, bitte?

VG, Tom
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

CoolTux

Wie und wo willst Du die Funktionen denn verwenden. Seltsam das das Modul noch nicht geladen wurde bei Dir, so viele Module verwenden die Funktionen daraus.

Du musst das Modul mit use oder require einbinden.

use HttpUtils;



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Wenn Du (wie auf dem Screenshot sichtbar) FHEMWEB verwendest, dann ist HttpUtils bereits geladen.
Ansonsten muss HttpUtils, falls nicht bereits geladen, per { use HttpUtils } bekanntgegeben werden, wie CoolTux das auch geschrieben hat.

Otto123

Man beachte
ZitatFHEM auf USB-Stick an FritzBox 7240 (FW 6.06)
Ich vermute hier ein "per Hand zusammengesetztes" System wegen Ressourcenschonung  ::)
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

timtom2000

Hallo,

vielen Dank für die schnelle und gute Hilfe!

Mir wäre eigentlich nicht bewusst, dass ich mir damals das System "per Hand zusammengesetzt" habe, aber das ist schon etwas her...die FB ist natürlich limitiert, aber ich nutze sie bisher eigentlich nur für die Heizungssteuerung (mit 00_THZ) und würde das Ganze nun gerne erweitern und die Infos von der Solaranlage über das Webinterface des Herstellers auslesen und nutzen.

Zur ursprgl. Frage:
{use HttpUtils} hat grundsätzlich funktioniert. Wobei mein Problem wsl. auch (oder eher) daran lag, dass ich beim Aufruf von GetHttpFile() die Perl-Klammern {} vergessen habe...  ??? aber auch diesbzgl. waren die Antworten sehr hilfreich!

{use 98_HTTPMOD} funktioniert aber leider nicht, obwohl das Modul aktuell ist und im FHEM-Verzeichnis liegt, analog zu HttpUtils. Hierbei kommt nun die Fehlermeldung lt. Anhang. Läuft diese Einbindung wiederum anders? An den geschweiften Klammern liegt es diesmal nicht...
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

rudolfkoenig

HTTPMOD ist muss man weder mit use, noch mit reload reinladen, das passiert automatisch bei der Definition der ersten HTTPMOD Instanz.

timtom2000

Oha...das muss man wissen.

Bei einem
define PM HTTPMOD http://www.google.de 0
kommt die Meldung "Cannot load module HTTPMOD"...wo steckt denn da noch der Wurm drin?
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

rudolfkoenig

Vermutlich setzt HTTPMOD einige Perl-Module voraus, die auf dem FritzBox nicht vorhanden sind. Details stehen in fhem.log

timtom2000

Lt. Logfile bricht das compilieren in Zeile 67 ab:
use FHEM::HTTPMOD::Utils  qw(:all);
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

rudolfkoenig

Wenn man noch wuesste, mit welcher Meldung, koennte man mehr dazu sagen.
Allerdings wird das auf dem alten FritzBox vmtl. zu einem "Never ending story".
Apropos: welche perl Version wird verwendet? Ich habe noch Skrupel Sprachkonstrukte zu verwenden, die in 5.8.3 nicht vorhanden waren, andere Modulautoren sehen das nicht so eng, und verwenden Sprachfeatures, die nichtmal 10 Jahre alt sind.

Otto123

Zitat von: timtom2000 am 19 Mai 2021, 21:22:27
Mir wäre eigentlich nicht bewusst, dass ich mir damals das System "per Hand zusammengesetzt" habe, aber das ist schon etwas her...die FB ist natürlich limitiert, ...
Sorry ich übertreibe manchmal.  :D Ich wollte bloß den Blick für alle schärfen, denn ein solches System ist schon "speziell" in den Überlegungen. ;)
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

timtom2000

Auf der FB ist diese Version drauf:
This is perl 5, version 14, subversion 2 (v5.14.2) built for mipsel-linux
Es geht neuer, aber zumindest >>5.8.3  ;)

Die Fehlermeldung lautet:
2021.05.19 23:17:59 1: reload: Error:Modul 98_HTTPMOD deactivated:
Attempt to reload FHEM/HTTPMOD/Utils.pm aborted.
Compilation failed in require at ./FHEM/98_HTTPMOD.pm line 67.
BEGIN failed--compilation aborted at ./FHEM/98_HTTPMOD.pm line 67.


Ich muss morgen mal weitersuchen was an der Utils.pm nicht passt. Die Datei ist vorhanden und liegt ab wo die INC-Pfade sie suchen, scheint eigentlich zu passen.

@Otto123: Kein Problem, sehe ich mit Humor :) und "speziell" trifft es auch.
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

timtom2000

Kurzes Update...das Problem ist gelöst :)

Der Fehler war, dass Utils.pm zwar vorhanden war und auch gefunden wurde, aber die klassischen ^M Sonderzeichen am Zeilenende hatte. Wsl. habe ich die Datei mal mit einem Win-Editor geöffnet und dann gespeichert ??? dieser Fehler war schnell gefunden und behoben. Deutlich länger hat es gedauert zu verstehen, dass die korrigierte Utils.pm nach dem initialen "use..." (mit der falschen Utils.pm) nicht mehr geladen wird. Erst nachdem ich alle Versionen umbenannt hatte und trotzdem kein "file not found" o.ä. kam, wurde ich stutzig...nach shutdown restart klappte es dann. Ein "unuse" gibt es wohl nicht?!

Dann kamen noch Kleinigkeiten hinterher (json.pm nicht vorhanden etc.), aber nun läuft es, auch auf der FB.

Danke nochmal für die vorhergehenden Tipps!
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)