FHEM - Hausautomations-Systeme > 1Wire

OWX nach update am 10.01.2013: Can't locate Win32/SerialPort.pm

(1/2) > >>

kct-networx:
Guten Tag zusammen,

gestern abend war ich so frei und ließ einen update laufen.
Seither quittiert das OWX-Modul seinen Dienst mit der unten stehenden Meldung.


--- Code: ---2013.01.11 12:09:00 1: Including fhem.cfg
2013.01.11 12:09:00 3: telnetPort: port 7072 opened
2013.01.11 12:09:00 3: WEB: port 8083 opened
2013.01.11 12:09:01 3: WEBphone: port 8084 opened
2013.01.11 12:09:01 3: WEBtablet: port 8085 opened
2013.01.11 12:09:01 3: Opening CUNO_2 device 192.168.1.10:2323
2013.01.11 12:09:01 3: CUNO_2 device opened
2013.01.11 12:09:02 3: CUNO_2: Possible commands: mBCFiAIGMRTVWXOefltuxEcq
2013.01.11 12:09:02 1: reload: Error:Modul 00_OWX deactivated:
 Can't locate Win32/SerialPort.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 . ./FHEM) at ./FHEM/00_OWX.pm line 69, <$fh> line 45.

2013.01.11 12:09:02 0: Can't locate Win32/SerialPort.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 . ./FHEM) at ./FHEM/00_OWX.pm line 69, <$fh> line 45.

--- Ende Code ---


Ich nutze seit etwa 4 Monaten erfolgreich eine CYGWIN Installation mit OWX erfolgreich.
Das bedeutet es wurde "cpan Device::SerialPort" durchgeführt. (Wäre ja sonst auch nicht gelaufen)
Habe es auch sicherheitshalber nochmal gemacht mit cpan - ohne erfolg.

Ist euch was bekannt ob hier was geändert wurde was den SerialPort betrifft?
Hat jemand eine Idee wie ich das wieder zum laufen bewege?

Wenn nicht: Ist so ein Restore auf die vorherige Version kompliziert?

Danke und Grüße,
Markus

dougie:


Hi Markus,

ich hab mir angewöhnt, immer ein (Extra-) Backup vor einem Update anzulegen ... aber eventuell hat fhem bei dir automatisch eins angelegt. Schau mal bitte nach.
Da ich meine Konfiguration auch in einem einzelnen Bereich eingefroren habe, mag der Tipp für dich hilfreich sein:

Folgender Befehl sorgt bei mir dafür, das sich die momentan noch vorhandene 1W Konfig nicht weiter ändert.

attr global exclude_from_update 00_OWX.pm 21_OWID.pm 21_OWTHERM.pm 21_OWSWITCH.pm

Ich hab mir zuvor mein System auch schon mehr als ein mal mit einem update lahm gelegt.

VG
Ralf

kct-networx:
Hallo Ralf,

ich habe gerade das "downgrade" durchgeführt und werde in Zukunft vorsichtiger sein.

Jetzt läuft alles wie vorher.

Hab' Dank!!

Grüße,
Markus

Prof. Dr. Peter Henning:
Die Erweiterung auf Windows-Systeme wurde auf ausdrückliche Bitte von Nutzern angelegt - die hinterher geschrieben haben, "Danke" es sei alles Bestens.

Es mag also an der Spezialität von CygWin liegen, dass hier die USB-Devices anders bereit gestellt werden. Lässt sich einfach beheben: In den Zeilen 59-67 von 00_OWX.pm steht der Code

#-- unfortunately some things OS-dependent
my $owgdevregexp;
if ($^O=~m/linux/i) {
  require Device::SerialPort;
  $owgdevregexp= "/dev/";
} else {
  require Win32::SerialPort;
  $owgdevregexp= "com";
}

Hier bitte alles auskommentieren (oder löschen) bis auf die Zeilen

 require Device::SerialPort;
 $owgdevregexp= "/dev/";
 
- das entspräche dann dem "alten" OWX.

Außerdem würde ich gerne wissen, was in dieser CygWin-Installation in der Variablen $^O steht - dann kann man diesen Spezialfall abfangen.

LG

pah

Damian:

--- Zitat von: Prof. Dr. Peter Henning schrieb am Sa, 12 Januar 2013 08:32 ---Die Erweiterung auf Windows-Systeme wurde auf ausdrückliche Bitte von Nutzern angelegt - die hinterher geschrieben haben, "Danke" es sei alles Bestens.
pah
--- Ende Zitat ---


Unter Windows ohne CygWin funktioniert es auch.

Mein Vorschlag war allerdings vielmehr:

Zitat:

"Abfrage des OS:

if ($^O=~/Win/) { "

statt

if ($^O=~m/linux/i) {


denn diese Abfrage funktioniert schon länger in DevIo.pm ohne Probleme und hätte auch hier funktioniert;)

CygWin liefert offenbar kein "linux"

Gruß

Damian


Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln