FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Annitoka am 18 Dezember 2017, 20:56:16

Titel: [geloest] configfile: Cannot load module DOIF
Beitrag von: Annitoka am 18 Dezember 2017, 20:56:16
Hallo zusammen,

ich brauche mal Eure Hilfe.
Ich habe letzte Woche ein Update von FHEM gemacht, danach kam die Meldung configfile: Cannot load module DOIF mehrfach gefolgt von Cannot load module DOIF und dann mehrfache Please define ... von Befehlen aus meiner Config. Alles wiederholt je 3-8 Mal.

Ich habe nun tagelang den Fehler gesucht, heute Abend ein altes Backup vom Mai, von dem ich weiss, dass es fehlerfrei lief zurückgespielt. Nach dem Shem Update (ohne jegliche Änderung meinerseits am config file) die gleichen Fehlermeldungen. Da ich im Forum keinen aktuellen Beitrag zu Update Problemen mit DOIF gefunden habe, suche ich nun die Hilfe bei Euch.

Beste Grüße aus Karlsruhe
Kai
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Annitoka am 18 Dezember 2017, 21:07:13
Nachtrag:
alle DOIFs die nicht mehr geladen werden sind in der gleichen Config-Datei, die restlichen Befehle in dieser Datei werden aber geladen.  (ich habe meine Config-Datei aufgeteilt und binde sie über eine "Master-Config" mit include ein. Die DOIF aller anderen Config-Dateien funktionieren. Die Lese- und Schreibrechte stimmen ebenso. Wenn ich die nicht geladenen Befehle in FHEM direkt eingebe, funktionieren diese auch.
Beispiel eines nicht geladenen DOIF-Befehls:
define RFXTRX_watchdog DOIF ([RFXTRXUSB:Aktuell] ne "ok") (set RFXTRXUSB reopen)
attr RFXTRX_watchdog do always
attr RFXTRX_watchdog group Watchdog
attr RFXTRX_watchdog room System


Wie gesagt, alle anderen DOIFS aus den anderen Config-Dateien funktionieren und der Fehler taucht erst nach dem Update auf. Vielleicht hilft diese nähere Erläuterung mein Problem zu spezifizieren.
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Annitoka am 18 Dezember 2017, 21:16:43
und noch ein Antrag:

ich habe gerade festgestellt, dass nach einen "rereadcfg" alles geladen wird, wenn ich dann aber ein "restart" eingebe kommen die gleichen Fehlermeldung. Bei einem erneuten "rereadcfg" ist dann wieder alles da. Kann es sich um einen Fehler im Update handeln, da ich bisher dieses Problem nie hatte.
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: amenomade am 18 Dezember 2017, 23:40:53
Zitatich habe meine Config-Datei aufgeteilt und binde sie über eine "Master-Config" mit include ein
Seeeehr schlechte Idee. Davon kommen alle deine Problemen. Und ich bezweifle, dass irgendjemand sich darum kümmern wird, deinen Code zu debuggen...

Lass mal Fhem deine config Datei pflegen, das ist viel sicherer / stabiler.
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Amenophis86 am 19 Dezember 2017, 06:29:52
Ob ich mir schon mal Popcorn hole?
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: nils_ am 19 Dezember 2017, 08:17:31
Zitat von: Amenophis86 am 19 Dezember 2017, 06:29:52
Ob ich mir schon mal Popcorn hole?

warten auf betateilchen, der hat immer leckeres....
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: CoolTux am 19 Dezember 2017, 08:27:37
Hallo Annitoka

Auch wenn ich dafür bekannt bin gerne mehr und eindringlicher zu solchen Themen zu schreiben. Heute einfach nur der Rat von mir an Dich.
Lass dieses include sein. Du fängst bestimmt gerade erst mit FHEM an und kennst die unneren Strukturen nicht. Die anderen haben Recht damit wenn sie Dir empfehlen einfach FHEM das schreiben der config zu überlassen und alle Definitionen und Konfigurationen über FHEMWEB zu machen.

Heute hoffe ich einfach mal das Annitoka auf uns hört und wir kein Popcorn brauchen.






Wenn nicht!
ICH NEHME SÜSSES  ;D  ;D
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Fixel2012 am 19 Dezember 2017, 08:33:14
Zitat von: amenomade am 18 Dezember 2017, 23:40:53
Seeeehr schlechte Idee. Davon kommen alle deine Problemen. Und ich bezweifle, dass irgendjemand sich darum kümmern wird, deinen Code zu debuggen...

Lass mal Fhem deine config Datei pflegen, das ist viel sicherer / stabiler.

Da gebe ich dir Recht, lass die Finger von der config Datei.

Lass sie Fhem verwalten. Alle Einstellungen kannst du auch über das Web Interface vor nehmen!

Es scheint dir vielleicht anfangs übersichtlicher in der fhem.cfg mit kommentaren alles aus zu schmücken. So ist es aber nicht! (Spreche aus eigener Erfahrung)
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Annitoka am 19 Dezember 2017, 21:22:32
Danke für die Hinweise und Hilfen :-)
Kann mir jemand erklären warum die Fehler mit der 98_DOIF.pm vom 26.07.2017 nicht auftreten, sondern nur nach dem Update mit der 98_DOIF.pm vom 05.12.2017 vorhanden sind? (Im Changeset 15558 sind erhebliche Änderungen gegenüber dem Changeset 14970 wo es lediglich 4 Zeilen waren.) Nehme die Erklärung auch gerne mit Popcorn ;-)
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: betateilchen am 19 Dezember 2017, 21:25:48
Tipp: Schau doch einfach mal ins Logfile, ob sich da ein Hinweis findet, WARUM das Modul nicht geladen werden kann.
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: betateilchen am 19 Dezember 2017, 21:37:12
was verstehst Du an der Meldung über nicht zulässige Zeichen im readingName nicht?
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Annitoka am 19 Dezember 2017, 22:00:57
Sorry, die unzulässigen Zeichen hatten mit der CANNOT LOAD MODULE Meldung nichts zu tun.
Ich meinte ich versteh nicht, wieso die 98_DOIF.pm Datei vor dem Update problemlos geht (hab die letzte Version eingespielt und alles läuft tadellos, mit der Dezember pm braucht es ein rereadcfg)
Aber Danke für alle Hilfe, ich probier mal ohne #include, obwohl ich den Zusammenhang nicht verstehe...bin aber Anfänger :-)
Schönen Abend noch und Danke
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Damian am 19 Dezember 2017, 22:14:07
Zitat von: Annitoka am 19 Dezember 2017, 22:00:57
Sorry, die unzulässigen Zeichen hatten mit der CANNOT LOAD MODULE Meldung nichts zu tun.
Ich meinte ich versteh nicht, wieso die 98_DOIF.pm Datei vor dem Update problemlos geht (hab die letzte Version eingespielt und alles läuft tadellos, mit der Dezember pm braucht es ein rereadcfg)
Aber Danke für alle Hilfe, ich probier mal ohne #include, obwohl ich den Zusammenhang nicht verstehe...bin aber Anfänger :-)
Schönen Abend noch und Danke

Es ist richtig, dass im aktuellen DOIF einiges erweitert wurde, das betrifft allerdings neue Funktionalität durch neue Attribute: uiTable, DOIF_Readings
Die bisherige Funktionalität wurde allerdings kaum angepackt.

Du musst herausfinden, welche DOIF-Module nicht geladen werden konnten und eine Systematik erkennen. Mit den bisherigen Infos kann ich nicht viel anfangen. Ich gehe nicht von einem grundsätzlichen Problem aus, denn seit dem 05.12.2017 wurden mit Sicherheit einige DOIF-Module aktualisiert - offenbar ohne Probleme.
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: betateilchen am 19 Dezember 2017, 22:17:42
Zitat von: Annitoka am 19 Dezember 2017, 22:00:57
ich probier mal ohne #include, obwohl ich den Zusammenhang nicht verstehe..

Da gibt es in Deinem Fall auch keinen Zusammenhang. Lass Dich nicht verrückt machen.

Deshalb gibts auch kein Popcorn.
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Annitoka am 19 Dezember 2017, 22:28:39
Vielen Dank Damian und Betateilchen.
Du hast recht, ich habe bestimmt über hundert DOIFs aber es sind nur ein paar, die nicht geladen werden.
Hier mal Beispiele dieser DOIFs:
define Sprachausgabe_schalten DOIF ([[Sprachausgabe_ein_Zeit]-[Sprachausgabe_aus_Zeit]|8] and [?Feiertag] eq "off") (set Sprachausgabe on) DOELSEIF ([[Sprachausgabe_ein_Zeit_WE]-[Sprachausgabe_aus_Zeit_WE]|7] or [?Feiertag] eq "on") (set Sprachausgabe on) DOELSE (set Sprachausgabe off)
attr Sprachausgabe_schalten do always
attr Sprachausgabe_schalten group Sprachausgabe
attr Sprachausgabe_schalten room System,Haus_Variablen


define Sprachausgabe_manuell_aus_schalten DOIF ([Sprachausgabe_manuell_aus] eq "on") ((set Sprachausgabe off) (setreading Sprachausgabe_schalten disable 1)) DOELSEIF ([Sprachausgabe_manuell_aus] eq "off") ((set Sprachausgabe on) (setreading Sprachausgabe_schalten disable 0))
attr Sprachausgabe_manuell_aus_schalten do always
attr Sprachausgabe_manuell_aus_schalten group Sprachausgabe
attr Sprachausgabe_manuell_aus_schalten room System,Haus_Variablen
attr Sprachausgabe_manuell_aus_schalten webCmd on:off


define RFXTRX_watchdog DOIF ([RFXTRXUSB:Aktuell] ne "ok") (set RFXTRXUSB reopen)
attr RFXTRX_watchdog do always
attr RFXTRX_watchdog group Watchdog
attr RFXTRX_watchdog room System
define FileLog_RFXTRX_watchdog FileLog ./log/RFXTRX_watchdog-%Y.log RFXTRX_watchdog
attr FileLog_RFXTRX_watchdog logtype text
attr FileLog_RFXTRX_watchdog room System


Du meinst also das eher an meine Befehlsdefinitionen als am #include hängt?

Sorry, dass ich euch so aufhalte...und ich steh eh mehr auf Bier als auf Popcorn ;-)

Schon mal vielen Dank, Grüße
Kai
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Damian am 19 Dezember 2017, 23:02:09
Dann ist doch klar was du als nächstes machen solltest, du packst die jeweiligen Zeilen in die Kommandozeile, z. B.

define Sprachausgabe_schalten DOIF ([[Sprachausgabe_ein_Zeit]-[Sprachausgabe_aus_Zeit]|8] and [?Feiertag] eq "off") (set Sprachausgabe on) DOELSEIF ([[Sprachausgabe_ein_Zeit_WE]-[Sprachausgabe_aus_Zeit_WE]|7] or [?Feiertag] eq "on") (set Sprachausgabe on) DOELSE (set Sprachausgabe off)

und drückst auf die Return-Taste, wenn die Syntax vom Modul akzeptiert wird (das erfährst du beim Editieren der cfg-Dateien nicht), dann definierst du noch die fehlenden Attribute und drückst auf den Save-Button. Dann fährst du das System runter und wieder rauf und schaust, ob das Modul geladen wurde. Wenn ja, machst du das Gleiche mit den anderen DOIF-Modulen und vergisst deine alten cfg-Dateien und strukturierst dein FHEM zukünftig über Räume und Gruppen ;)
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: herrmannj am 19 Dezember 2017, 23:27:45
ZitatDu hast recht, ich habe bestimmt über hundert DOIFs
So schön wie DOIFs sein können, aber da solltest Du mal in Dich gehen.

DOIFs kosten doch einige Ressourcen und für watchdog zb gibt es ein eigenes modul (und at und notify gibts auch). Das ist nichts gegen DOIF, aber wenn Du nicht darauf achtest wirst Du bald freeze suchen müssen
Titel: Antw:configfile: Cannot load module DOIF
Beitrag von: Annitoka am 20 Dezember 2017, 12:17:48
Super, so werde ich es machen :).
Danke euch allen Vielmals und ich wünsche Euch schöne Weihnachtstage.

Liebe Grüße
Kai