can't locate object method "new" via package "Net::Telnet" (perhaps you forgot..

Begonnen von sinus444, 27 Oktober 2020, 16:35:19

Vorheriges Thema - Nächstes Thema

sinus444

Hallo Zusammen,

ich probiere jetzt seit zwei Wochen herum, komme aber nicht weiter. Daher mache ich mal einen neuen Thread auf, in der Hoffnung das jemand eine Lösung weiss.

Vorgeschichte:
Ich habe eine Pelletheizung bekommen und möchte deren Daten auslesen.
Hier im Forum bin ich auch relativ schnell fündig geworden: https://forum.fhem.de/index.php/topic,56165.msg1092116.html#msg1092116

Vorweg:
FHEM war auf einem Rpi3 installiert. Erst herkömmlich und als das nicht funktionierte mit der Heizung, hab ich den Rpi neu aufgesetzt und FHEM als Docker Container installiert.

Die Heizungsanlage ist per Kabel im Netzwerk angebunden, hat eine IP und lässt sich über den rpi über Telnet ansprechen
Telnet 192.168.178.xxx und sie sendet unaufhörlich Zahlenkollonen.

Das funktioniert also.

FHEM.CFG:
attr global userattr cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global commandref modular
attr global dnsServer 192.168.178.1
attr global logfile ./log/fhem-%Y-%m-%d.log
attr global modpath .
attr global mseclog 1
attr global nofork 0
attr global pidfilename ./log/fhem.pid
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

define WEB FHEMWEB 8083 global
setuuid WEB 5f981452-f33f-f83a-592c-7343e662a303eb96

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m-%d.log fakelog
setuuid Logfile 5f981452-f33f-f83a-6899-2c064b31f32f6c40

define autocreate autocreate
setuuid autocreate 5f981452-f33f-f83a-39c3-d0e7a284009561f0
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt
setuuid eventTypes 5f981452-f33f-f83a-ff00-39a938f71cae2c34

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
setuuid initialUsbCheck 5f981453-f33f-f83a-c0ec-3b4b72d78d8dd2a2
define DockerImageInfo DockerImageInfo
setuuid DockerImageInfo 5f981453-f33f-f83a-7cb0-8caaaaa1a9036b4c
attr DockerImageInfo alias Docker Image Info
attr DockerImageInfo devStateIcon ok:security@green Initialized:system_fhem_reboot@orange .*:message_attention@red
attr DockerImageInfo group System
attr DockerImageInfo icon docker
attr DockerImageInfo room System
define fhemServerApt AptToDate localhost
setuuid fhemServerApt 5f981454-f33f-f83a-b20a-6a8e65d018dffb36
attr fhemServerApt alias System Update Status
attr fhemServerApt devStateIcon system.updates.available:security@red system.is.up.to.date:security@green:repoSync .*in.progress:system_fhem_reboot@orange errors:message_attention@red
attr fhemServerApt group Update
attr fhemServerApt icon debian
attr fhemServerApt room System
define fhemServerNpm npmjs localhost
setuuid fhemServerNpm 5f981454-f33f-f83a-fba6-31737a021011fe8f
attr fhemServerNpm alias Node.js Package Update Status
attr fhemServerNpm devStateIcon npm.updates.available:security@red:outdated npm.is.up.to.date:security@green:outdated .*npm.outdated.*in.progress:system_fhem_reboot@orange .*in.progress:system_fhem_update@orange warning.*:message_attention@orange error.*:message_attention@red
attr fhemServerNpm group Update
attr fhemServerNpm icon npm-old
attr fhemServerNpm room System
define fhemInstaller Installer
setuuid fhemInstaller 5f981456-f33f-f83a-a91b-ba3ec36190953e77
attr fhemInstaller alias FHEM Installer Status
attr fhemInstaller devStateIcon .*updates.available:security@red:outdated up.to.date:security@green:outdated .*outdated.*in.progress:system_fhem_reboot@orange .*in.progress:system_fhem_update@orange warning.*:message_attention@orange error.*:message_attention@red
attr fhemInstaller group Update
attr fhemInstaller icon system_fhem
attr fhemInstaller room System
define telnetPort telnet 7072
setuuid telnetPort 5f981456-f33f-f83a-5ee7-2acca1e261a3a51b



Nun wieder zum erwähnten Thread:

Dort gibt es ein fertiges Modul welches ich in den Ordner kopiert habe in dem FHEM alle Module hinterlegt. Danach habe ich einen shutdown restart durchgeführt.

danach habe ich ein Gerät definiert, so wie Alex es vorschreibt. Hab ich ebenfalls gemacht.

Dann sollte man mit einem Klick auf das neue Gerät Readings vom Ofen bekommen. Das passiert aber nicht.
Stattdessen verliert der FHEM alle paar Sekunden die Connection (Connection lost....)

In der FHEM-LOG steht folgendes:

2020.10.27 13:36:45.096 1: usb create starting
2020.10.27 13:36:45.207 1: usb create end
2020.10.27 13:36:45.210 0: Featurelevel: 6
2020.10.27 13:36:45.211 0: Server started with 11 defined entities (fhem.pl:22990/2020-10-19 perl:5.028001 os:linux user:fhem pid:28675)
2020.10.27 13:43:03.643 1: MKDIR restoreDir/save/2020-10-27
Can't locate object method "new" via package "Net::Telnet" (perhaps you forgot to load "Net::Telnet"?) at ./FHEM/20_HARGASSNER.pm line 85.
2020.10.27 13:43:41.685 3: From the FHEM_GLOBALATTR environment: attr global pidfilename ./log/fhem.pid
2020.10.27 13:43:41.686 3: From the FHEM_GLOBALATTR environment: attr global updateInBackground 1
2020.10.27 13:43:41.687 3: From the FHEM_GLOBALATTR environment: attr global logfile ./log/fhem-%Y-%m-%d.log
2020.10.27 13:43:41.688 3: From the FHEM_GLOBALATTR environment: attr global nofork 0
2020.10.27 13:43:41.701 1: Including fhem.cfg
2020.10.27 13:43:42.427 3: WEB: port 8083 opened
2020.10.27 13:43:42.583 2: eventTypes: loaded 27 events from ./log/eventTypes.txt
2020.10.27 13:43:43.647 3: AptToDate (fhemServerApt) - defined
2020.10.27 13:43:46.197 3: telnetPort: port 7072 opened
2020.10.27 13:43:46.231 1: Including ./log/fhem.save
2020.10.27 13:43:46.256 3: From the FHEM_GLOBALATTR environment: attr global pidfilename ./log/fhem.pid
2020.10.27 13:43:46.257 3: From the FHEM_GLOBALATTR environment: attr global updateInBackground 1
2020.10.27 13:43:46.257 3: From the FHEM_GLOBALATTR environment: attr global logfile ./log/fhem-%Y-%m-%d.log
2020.10.27 13:43:46.259 3: From the FHEM_GLOBALATTR environment: attr global nofork 0
2020.10.27 13:43:46.261 1: Messages collected while initializing FHEM:SecurityCheck:
  WEB is not password protected
  telnetPort is not password protected

Protect this FHEM installation by defining an allowed device with define allowed allowed
You can disable this message with attr global motd none


Can't locate object method "new" via package "Net::Telnet" (perhaps you forgot to load "Net::Telnet"?) at ./FHEM/20_HARGASSNER.pm line 85.

dieser teil stört mich, jedeoch hab ich nicht das Wissen um dahinter zu kommen wo der Fehler liegt.


Für ein wenig Hilfe wäre ich dankbar!

MadMax-FHEM

Wie hast du denn fhem "zunächst" installiert wo es nicht ging?

Weil es im Prinzip nur 5-10min dauert: debian.fhem.de -> "the easy way" und 5-10min später läuft es.

Als Basis halt ein Raspbian Buster Lite...

Aber egal.

Vermutlich fehlt dir besagte Perl-Lib: libnet-telnet-perl

Per apt-get sollte es so gehen (weiß aber nicht wie das mit Docker ist):


sudo apt-get update



sudo apt-get install libnet-telnet-perl


EDIT: hab das selber nicht in Betrieb, ist nur eine "Vermutung" wegen der geposteten Fehlermeldung...

EDIT: editierst du dei fhem.cfg "manuell"? Solltest du dir gar nicht erst angewöhnen! Es geht ALLES (viel besser) über die fhem-Web-Oberfläche. Spätestens seit es "Raw-Definition" gibt. (entweder "unter" jedem Device in der Detailansicht oder eben "oben links" das "Plus")

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Christoph Morrison

Dir fehlt schlicht das Paket Net::Telnet auf dem System.


$ corelist Net::Telnet

Data for 2018-11-29
Net::Telnet was not in CORE (or so I think)


Da du den Docker-Container verwendest (fhem-docker?), musst du das Paket über das Argument -e CPAN_PKGS laden lassen.

betateilchen

Und offenbar wird auch nicht die aktuellste Version von 20_HARGASSNER.pm verwendet, denn dort steht in Zeile 85 nichts mehr von telnet.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

sinus444

Zitat von: Christoph Morrison am 27 Oktober 2020, 16:48:44
Dir fehlt schlicht das Paket Net::Telnet auf dem System.


$ corelist Net::Telnet

Data for 2018-11-29
Net::Telnet was not in CORE (or so I think)


Da du den Docker-Container verwendest (fhem-docker?), musst du das Paket über das Argument -e CPAN_PKGS laden lassen.

Kannst du mir sagen, wie ich das genau mache? Kann ich das uber die portainer Oberfläche?

Christoph Morrison

Zitat von: sinus444 am 27 Oktober 2020, 21:20:27
Kannst du mir sagen, wie ich das genau mache? Kann ich das uber die portainer Oberfläche?

Leider nein, ich benutze Portainer nicht. Irgendwo hast du ja einen Dockerfile für FHEM und dort muss das rein. Verwendest du denn fhem-docker?

sinus444

Um das hier mal abzuschließen für nachfolgende User:

Es fehlte in der *.pm das "User Net::Telnet"

Jetzt funktioniert es.