[gelöst] nach update: Messages .... FHEM:configfile: Cannot load module MAX

Begonnen von Hanso, 07 August 2020, 12:27:54

Vorheriges Thema - Nächstes Thema

Hanso

Hallo in die Runde,

nach dem heutigen update sind alle MAX-Geräte 'verschwunden'.
Eintrag in der Log-Datei:

...
2020.08.07 11:36:06 1: Including ./log/fhem.save
2020.08.07 11:36:09 1: Messages collected while initializing FHEM:configfile: Cannot load module MAX
Please define AZ_Fensterkontakt_Balkon 5c6897b3-f33f-f3c5-4b67-5c93fb47ed63b1c3 first
Cannot load module MAX
Please define AZ_Fensterkontakt_Links 5c6897b3-f33f-f3c5-ef64-584843b213d3a2b6 first
Cannot load module MAX
Please define AZ_Fensterkontakt_Rechts 5c6897b3-f33f-f3c5-c12d-ccf17a0691919276 first
Cannot load module MAX
Please define AZ_Thermostat 5c6897b3-f33f-f3c5-ac6d-d95354614f848356 first
Cannot load module MAX
Please define B_Fensterkontakt 5c6897b3-f33f-f3c5-3953-bc50e275446a428d first
...

Was ist zu tun?

Beste Grüsse
Hans

zur Info: Definition in der cfg-Datei:

#########################################################
# CUL868 im MAX-Modus
#########################################################
define CUL0 CUL com6@9600 0000
setuuid CUL0 5c68978f-f33f-f3c5-9de7-9b025a0c1022fb52
attr CUL0 icon cul_max
attr CUL0 myDevice yes
attr CUL0 rfmode MAX
attr CUL0 room 999_Sonstiges,97_USB-Devices
attr CUL0 verbose 3
define CUL0.set.led.off notify global:INITIALIZED set CUL0 led 00
setuuid CUL0.set.led.off 5c689798-f33f-f3c5-b94e-99a4ec8568a4809a
attr CUL0.set.led.off room 999_Notify

define cm CUL_MAX 123456
setuuid cm 5c689798-f33f-f3c5-80fc-351d7557ed209bb9
attr cm IODev CUL0
attr cm myDevice yes
attr cm room 999_Sonstiges


Wzut

Leider hast du nicht den Abschnitt der Log Datei gepostet wo die genaue Fehlermeldung stehen würde.
Also gib mal in FHEMWEB oben in die Kommandozeile ein : reload 10_MAX
Das sollte mehr Infos liefern und diese auch in deiner Log Datei erscheinen.

Und bitte mal lesen : https://forum.fhem.de/index.php/topic,71806.0.html
D.h. Abschnitte der cfg oder gar Screenshots sind unintressant, nur Ausgaben die mit list erzeugt wurden möchten wir zur Analyse haben und diese dann auch bitte gleich in die Code Tags setzen ( der # Button über den Smilies)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Hanso

Hallo Wzut,
danke für die promte Reaktion und den Hinweis.
Hier sind die ersten Zeilen des Logs mit den Fehlermeldungen (mit etwas 'Vorlauf'):

2020.08.07 11:35:58 3: Gaszaehler: I/O device is CUL1
2020.08.07 11:35:58 3: Stromzaehler: I/O device is CUL1
2020.08.07 11:35:58 1: reload: Error:Modul 10_MAX deactivated:
Can't locate Date/Parse.pm in @INC (you may need to install the Date::Parse module) (@INC contains: ./lib ./FHEM . C:/Program Files (x86)/Perl/site/lib C:/Program Files (x86)/Perl/lib) at ./FHEM/10_MAX.pm line 32, <$fh> line 774.
BEGIN failed--compilation aborted at ./FHEM/10_MAX.pm line 32, <$fh> line 774.

2020.08.07 11:35:58 0: Can't locate Date/Parse.pm in @INC (you may need to install the Date::Parse module) (@INC contains: ./lib ./FHEM . C:/Program Files (x86)/Perl/site/lib C:/Program Files (x86)/Perl/lib) at ./FHEM/10_MAX.pm line 32, <$fh> line 774.
BEGIN failed--compilation aborted at ./FHEM/10_MAX.pm line 32, <$fh> line 774.

2020.08.07 11:35:58 1: reload: Error:Modul 10_MAX deactivated:
Can't locate Date/Parse.pm in @INC (you may need to install the Date::Parse module) (@INC contains: ./lib ./FHEM . C:/Program Files (x86)/Perl/site/lib C:/Program Files (x86)/Perl/lib) at ./FHEM/10_MAX.pm line 32, <$fh> line 785.
BEGIN failed--compilation aborted at ./FHEM/10_MAX.pm line 32, <$fh> line 785.


Hier folgen ca. 30 Fehlermeldungen

Hier sind die letzten Zeilen der Fehlermeldung (mit etwas 'Nachlauf'):
2020.08.07 11:35:58 0: Can't locate Date/Parse.pm in @INC (you may need to install the Date::Parse module) (@INC contains: ./lib ./FHEM . C:/Program Files (x86)/Perl/site/lib C:/Program Files (x86)/Perl/lib) at ./FHEM/10_MAX.pm line 32, <$fh> line 1173.
BEGIN failed--compilation aborted at ./FHEM/10_MAX.pm line 32, <$fh> line 1173.

2020.08.07 11:35:58 1: reload: Error:Modul 10_MAX deactivated:
Can't locate Date/Parse.pm in @INC (you may need to install the Date::Parse module) (@INC contains: ./lib ./FHEM . C:/Program Files (x86)/Perl/site/lib C:/Program Files (x86)/Perl/lib) at ./FHEM/10_MAX.pm line 32, <$fh> line 1186.
BEGIN failed--compilation aborted at ./FHEM/10_MAX.pm line 32, <$fh> line 1186.

2020.08.07 11:35:58 0: Can't locate Date/Parse.pm in @INC (you may need to install the Date::Parse module) (@INC contains: ./lib ./FHEM . C:/Program Files (x86)/Perl/site/lib C:/Program Files (x86)/Perl/lib) at ./FHEM/10_MAX.pm line 32, <$fh> line 1186.
BEGIN failed--compilation aborted at ./FHEM/10_MAX.pm line 32, <$fh> line 1186.

2020.08.07 11:35:58 3: Opening FritzHome device fritz.box:2002



Gruß & Dank
Hans

amenomade

Die Ursache und die Lösung stehen aber ganz klar da:
ZitatCan't locate Date/Parse.pm in @INC (you may need to install the Date::Parse module)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Hanso

Das sehe ich auch.
tja...
Nach 'nem Update sollte es solche Fehlermeldungen nicht geben - üblicherweise.
Ein Update sollte alle evtl. fehlenden Module mit 'updaten'.

Oder muß ich hier händisch tätig werden?
Habe keinen Hinweis darauf in der Update Doku gefunden.

Beste Grüsse
Hans

amenomade

Nein, ein fhem 'update' fasst die Perl Installation nicht an

Ja, Du musst händisch tätig werden
cpan Date::Parse
oder wie auch immer dein Perl unter deinem Betriebssystem zu aktualisieren ist (wahrscheinlich unter Windows doch mit cpan)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Hanso

Danke für den Hinweis.
Also ein Update, dass ein Perl Update benötigt. Offensichtlich.
Denn bisher war das Modul nicht erforderlich.
Für einen Hinweis darauf wäre ich schon dankar gewesen - vor dem update.

Wie auch immer...
Wir sind ja hier die Nutzniesser und Unterstützer einer tollen freien Software.
Mein Dank  dafür.

Das sage ich ausdrücklich, damit mich hier niemand misversteht:
In der freien Wirtschaft nennt man das 'Bananentaktik': Ausliefern und beim Kunden reifen lassen.

Also vielen dank in die Runde.

Beste Grüsse
Hans

Wzut

sorry, aber das kann ich so nicht im Raum stehen lassen :(
a. der Test der neuen Module ging von November 2019 bis Ende April 2020 -> https://forum.fhem.de/index.php/topic,106577.0.html
Leider war bei diesen Tests wohl kein einziger User mit Windows als Unterbau.

b. Ich bin jemand der gegen den übertrieben Einsatz von Modulen ist die nur über CPAN bezogen werden können.
Wenn es aber unvermeidlich ist wird das selbstverständlich in der command.ref erwähnt, allerdings nehme ich als Basis wie auch die Masse der FHEM User das was Raspian von Haus aus mitbringt und somit als Standart angesehen werden kann.

c. FHEM & Windows sind (wenn man sich die Stats anschaut  https://forum.fhem.de/index.php/board,11.0.html ) nun mal Exoten
und ich habe als Entwickler keine Chance meine Module unter solchen Bedingungen vorab zu testen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

amenomade

Zustimmung. Allerdings bin ich nicht sicher, dass Date::Parse Teil einer Standardistro von Linux/perl ist.
Aber die Fehlermeldung ist eindeutig und die Lösung ist einfach.

Es gibt schon etliche Diskussionen, ob die automatische Aktualisierung von Perl in Verbindung mit Fhem-Modulen gewünscht / machbar / sinnvoll wäre. Meine persönlich Meinung ist, dass es zu kompliziert wäre, jede eigene Konfiguration, angefangen mit der Frage "apt libperl-xxx oder cpan?", mitzuberücksichtigen, ohne von den möglichen anderen Abhängigkeiten zu reden. Anders gesagt: wem ein Modul fehlt, kann er einfach ergänzen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Hanso

hier noch ein kurzes Feedback zum Thema "Date::Parse" - Nach-Installation:

Ich hatte "Active Perl" installiert. Das 'cpan Date::Parse' funktionierte nicht, wegen
Problemen mit Verzeichnisverweisen in Zusammenhang mit 'dmake'. (ist ein allgemein bekanntes Problem laut Suchmaschine)
Also, neuste Version von Active Perl installiert - das gleiche Verhalten: 'dmake' verweigert die Funktion.
Active Perl deinstalliert (mit erforderlichen Aufräumaktionen z.B. bei %PATH%-Umgebungsvariable).
Strawberry Perl neu installiert
Alle für (mein) fhem erforderlichen Module (4 Stück, u.a. Audio::Beep, Config::Tiny, usw.)   einschl. "Date::Parse" nachinstalliert.

Nach einigen Stunden lief fhem wieder.
Soviel zum Thema: 'Mal eben machen'

btw. ich stelle mich gern für die (Exoten-)Tests der Module unter Windows bei Updates zur Verfügung.
Ich hatte bereits einen Updateversuch Anfang 2020 unternommen. Mit eben jener oben beschriebenen Fehlermeldung.
War aber aus Zeitgründen wieder auf ein Backup zurückgegangen und hoffte darauf, dass in der Zwischenzeit ein Update des Updates das Ganze beseitigt hätte.

Grüsse
Hans

Wzut

Also Date::Parse ist bei Debain in libtimedate-perl enthalten und wird von einigen FHEM Modulen genutzt u.a. auch von DOIF :)
Lustigerweise brauchte ich daraus die Funktion str2time nur an einer Stelle um festzustellen ob die Party Time in der Zukunft liegt.
Wenn mir also jemand eine elegante Alternative zu str2time aufzeigt bin ich gern bereit diese zu nutzen und auf Date::Parse zu verzichten,
allerdings wie bereits geschrieben ist das Ganze für gefühlte 99% der User kein wirkliches Problem.

Zitat von: Hanso am 09 August 2020, 17:38:47
btw. ich stelle mich gern für die (Exoten-)Tests der Module unter Windows bei Updates zur Verfügung.
das machst du ja jetzt, die anderen beiden MAX Module kommen z.Z. noch ohne extra Module aus, in Zukunft werden es sein :
10_MAX
use Date::Parse;
use Time::HiRes qw(gettimeofday);
use Time::Local;

14_CUL_MAX
use Time::HiRes qw(gettimeofday);
use Time::Local;
use POSIX qw(ceil);

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Hanso

Hallo Wzut,

lass es wie es ist. Nutze die Standard-Funktionen, die Dir angeboten werden.
Du machst das schon richtig! Das machen 'Softwerker' halt so.
Und wie Du siehst gibt es auch wie in meinem Fall immer eine realisierbare Lösung.

habe soeben des Test mit
use Time::HiRes qw(gettimeofday);
use Time::Local;
use POSIX qw(ceil);

in meiner 99_myUtils.pm durchgeführt.
Unter Strawberry Perl sind die Module vorhanden. Es läuft.

Gruß
Hans