Hauptmenü

[GELÖST] S7 Module laden

Begonnen von Black_Death_HH, 18 Januar 2017, 17:49:45

Vorheriges Thema - Nächstes Thema

Black_Death_HH

Moin,

ich wollte mir gerade ein S7 Modul anlegen. Hat bisher immer super geklappt. Nun kommt die Fehlermeldung "Cannot load module S7". FHEM ist absolut aktuell. Ich betreibe mein FHEM auf Windows 10pro mit ActivePerl 32bit (Version 5.24.0.2400). Win32 Serial Port ist installiert. Auch sonst bin ich nach der Anleitung im Wiki gegangen. Das komische ist, dass es schon einmal funktioniert hat. Damals noch mit einer 64bit Activeperl-Version, die ich dann durch eine 32bit-Version, wegen der Installation des SerialPort, ersetzte. Dann ging es schon nicht mehr. Dann setzte ich das Betriebssystem neu auf. Und nie mehr hat es funktioniert. Ich habe diverse Konstellationen durch (ActivePerl 32/64; Strawberry Perl usw.). Auch sonst habe ich bei der Installationsroutine beim zweiten mal nichts anders als beim ersten Mal gemacht, aber keine Chance. Im Thread des Entwicklers des S7-Moduls konnte mir man anscheiend nicht helfen, bzw nach einem Monat wollte ich es hier im Anfängerbereich noch einmal versuchen, da ich sicher nur zu doof bin.

Hier ein Auszug aus dem Logfile:

2017.01.18 17:37:47 1: reload: Error:Modul 44_S7 deactivated:
Can't locate Device/SerialPort.pm in @INC (you may need to install the Device::SerialPort module) (@INC contains: . C:/Program Files (x86)/Perl/site/lib C:/Program Files (x86)/Perl/lib ./FHEM) at FHEM/44_S7_S5Client.pm line 13.
BEGIN failed--compilation aborted at FHEM/44_S7_S5Client.pm line 13.
Compilation failed in require at ./FHEM/44_S7.pm line 12.


Ich hoffe das mit hier jemand helfen kann. Danke.


Gruß, Thomas.

dev0

Laut Fehlermeldung wird ein Ordner 'Device' mit der Datei 'SerialPort.pm' im Suchpfad @INC erwartet, aber nicht gefunden. Wenn das der Fall ist, dann kopiere die Datei entsprechend oder passe den Suchpfad an.

Black_Death_HH

Moin Moin,

oh man. Da hätte man ja fast selber drauf kommen können 🙈 Ich habe den Ordner erstellt und die Datei reinkopiert und es lief sofort. Vielen Dank.

Wie könnte ich den Suchpfad anpassen? Läuft das dann über FHEM direkt, oder Modulintern?

Gruß, Thomas


Black_Death_HH

Nein, noch nie was von gehört   :P

Danke.  ;)

Hannibal1990

#5
Hi,

hab das gleiche Problem/ Fehlermeldung wie Black_Death_HH.
Wie muss die Ordnerstruktur genau aussehen?
Hab keinen Ordner mit dem Namen device. Den muss ich wohl selber erstellen.
Genauso wenig habe ich keine SerialPort.pm...

Hoff mir kann jemand helfen, hab gerade angefangen mit FHEM.

Hier mal ein Auszug meiner Log:

2017.08.12 10:17:55 3: FHEMWEB WEB CSRF error: csrf_837257953063706 ne csrf_550883037991056 for client WEB_127.0.0.1_55979. For details see the csrfToken FHEMWEB attribute.
2017.08.12 10:18:13 1: reload: Error:Modul 44_S7 deactivated:
Can't locate Device/SerialPort.pm in @INC (you may need to install the Device::SerialPort module) (@INC contains: . C:/FHEM/fhem-5.8/perl/site/lib C:/FHEM/fhem-5.8/perl/vendor/lib C:/FHEM/fhem-5.8/perl/lib ./FHEM) at FHEM/44_S7_S5Client.pm line 13.
BEGIN failed--compilation aborted at FHEM/44_S7_S5Client.pm line 13.
Compilation failed in require at ./FHEM/44_S7.pm line 12.
2017.08.12 10:18:13 0: Can't locate Device/SerialPort.pm in @INC (you may need to install the Device::SerialPort module) (@INC contains: . C:/FHEM/fhem-5.8/perl/site/lib C:/FHEM/fhem-5.8/perl/vendor/lib C:/FHEM/fhem-5.8/perl/lib ./FHEM) at FHEM/44_S7_S5Client.pm line 13.
BEGIN failed--compilation aborted at FHEM/44_S7_S5Client.pm line 13.
Compilation failed in require at ./FHEM/44_S7.pm line 12.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_Initialize redefined at ./FHEM/44_S7.pm line 38.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_connect redefined at ./FHEM/44_S7.pm line 66.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_disconnect redefined at ./FHEM/44_S7.pm line 139.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_reconnect redefined at ./FHEM/44_S7.pm line 156.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_Define redefined at ./FHEM/44_S7.pm line 173.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_Undef redefined at ./FHEM/44_S7.pm line 260.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_Set redefined at ./FHEM/44_S7.pm line 274.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_Get redefined at ./FHEM/44_S7.pm line 281.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_Attr redefined at ./FHEM/44_S7.pm line 305.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_getAreaIndex4AreaName redefined at ./FHEM/44_S7.pm line 419.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_WriteToPLC redefined at ./FHEM/44_S7.pm line 438.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_WriteBitToPLC redefined at ./FHEM/44_S7.pm line 510.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_ReadBlockFromPLC redefined at ./FHEM/44_S7.pm line 584.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_setBitInBuffer redefined at ./FHEM/44_S7.pm line 653.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_getBitFromBuffer redefined at ./FHEM/44_S7.pm line 697.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_getAllWritingBuffersFromPLC redefined at ./FHEM/44_S7.pm line 724.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_GetUpdate redefined at ./FHEM/44_S7.pm line 783.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_dispatchMsg redefined at ./FHEM/44_S7.pm line 803.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_readAndDispatchBlockFromPLC redefined at ./FHEM/44_S7.pm line 825.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_getReadingsList redefined at ./FHEM/44_S7.pm line 894.
2017.08.12 10:18:39 1: PERL WARNING: Subroutine S7_readFromPLC redefined at ./FHEM/44_S7.pm line 1093.
2017.08.12 10:18:39 1: reload: Error:Modul 44_S7 deactivated:
Attempt to reload 44_S7_S5Client.pm aborted.
Compilation failed in require at ./FHEM/44_S7.pm line 12.

dev0

Zitat von: Hannibal1990 am 14 August 2017, 09:13:03
Genauso wenig habe ich keine SerialPort.pm...
Jenach Vorliebe (cpan vs. packet manager):
sudo apt-get install libdevice-serialport-perl
sudo cpan install Device::SerialPort

Hannibal1990

Ok danke.
Jetzt hab ich vergessen zu sagen, dass ich in Windows bin und nicht in Linux.
Da sind dann die Befehle zum Installieren der Serial.pm wieder anders?

dev0

Hängt vom verwendeten Perl ab. Keine Lust die Doku zu Deinem Perl zu lesen?

Hannibal1990

Zitat von: dev0 am 14 August 2017, 11:24:36
Hängt vom verwendeten Perl ab. Keine Lust die Doku zu Deinem Perl zu lesen?

Gibt es da eine Doku?
Die finde ich wo?