Fhem start dauert zu lange wenn Installer aktiv

Begonnen von xerion, 02 Januar 2020, 08:46:32

Vorheriges Thema - Nächstes Thema

xerion

Hallo Loredo,

Ich teste seit mehren Wochen das ASC Modul von CoolTux. Dort hatten wir u.a. den Fehler, dass nach einem FHEM Neustart Attributen gelöscht bzw. Nicht wiederhergestellt würden. Das liegt daran das mein fhem sehr lange braucht bis es bei gestartet ist. Wenn ich das Modul Installer deaktiviere ist das Problem nicht mehr vorhanden. Hast du eine Idee wonach wir schauen sollten nur. Können?

Gesendet von meinem JSN-L21 mit Tapatalk

Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

Loredo

Grundsätzlich sehe ich erstmal keinen Grund, weshalb ein Modul Daten verlieren sollte, nur weil es beim initialisieren länger dauert. Da würde ich erstmal das Modul entsprechend robuster konzeptionieren.


Der Installer (bzw. genauer das Modul Meta.pm, welches auch andere Module verwenden können) läd für alle Module, die aktiv in der Installation verwendet werden, die Metadaten, damit diese zur Verfügung stehen. Dies passiert ein einziges Mal beim Start, ansonsten nur bedarfsweise zur Laufzeit.


Die Startdauer wird dramatisch verkürzt, wenn die Modulautoren die Metadaten selbst in ihren Modulen hinterlegen und pflegen, so dass sie nicht mehr aufwändig ermittelt werden müssen. Das ist sehr einfach, offenbar aber noch immer für viele Modulautoren uninteressant oder zu aufwändig. Wenn du möchtest, dass dies schneller funktioniert, solltest du für alle Module, die du verwendest, einmal den Autoren schreiben und sie bitten, die Metadaten für ihr Modul ordentlich zu hinterlegen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

xerion

Zitat von: Loredo am 02 Januar 2020, 11:39:32
Grundsätzlich sehe ich erstmal keinen Grund, weshalb ein Modul Daten verlieren sollte, nur weil es beim initialisieren länger dauert. Da würde ich erstmal das Modul entsprechend robuster konzeptionieren.


Der Installer (bzw. genauer das Modul Meta.pm, welches auch andere Module verwenden können) läd für alle Module, die aktiv in der Installation verwendet werden, die Metadaten, damit diese zur Verfügung stehen. Dies passiert ein einziges Mal beim Start, ansonsten nur bedarfsweise zur Laufzeit.


Die Startdauer wird dramatisch verkürzt, wenn die Modulautoren die Metadaten selbst in ihren Modulen hinterlegen und pflegen, so dass sie nicht mehr aufwändig ermittelt werden müssen. Das ist sehr einfach, offenbar aber noch immer für viele Modulautoren uninteressant oder zu aufwändig. Wenn du möchtest, dass dies schneller funktioniert, solltest du für alle Module, die du verwendest, einmal den Autoren schreiben und sie bitten, die Metadaten für ihr Modul ordentlich zu hinterlegen.
Danke für deine ausführliche Antwort. Ehrlich gesagt ist es mir zu aufwendig jeden Autor nun darauf hinzuweisen was er zu tun hat dann lösche ich lieber den Installer auch wenn das Problem woanders liegt aber so werde ich noch lange lange damit kämpfen zu haben bis jeder sein Modul überarbeitet hat bzw. überhaupt möchte.

Gesendet von meinem JSN-L21 mit Tapatalk

Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

xerion



Zitat von: Loredo am 02 Januar 2020, 11:39:32
Grundsätzlich sehe ich erstmal keinen Grund, weshalb ein Modul Daten verlieren sollte, nur weil es beim initialisieren länger dauert. Da würde ich erstmal das Modul entsprechend robuster konzeptionieren.


Der Installer (bzw. genauer das Modul Meta.pm, welches auch andere Module verwenden können) läd für alle Module, die aktiv in der Installation verwendet werden, die Metadaten, damit diese zur Verfügung stehen. Dies passiert ein einziges Mal beim Start, ansonsten nur bedarfsweise zur Laufzeit.


Die Startdauer wird dramatisch verkürzt, wenn die Modulautoren die Metadaten selbst in ihren Modulen hinterlegen und pflegen, so dass sie nicht mehr aufwändig ermittelt werden müssen. Das ist sehr einfach, offenbar aber noch immer für viele Modulautoren uninteressant oder zu aufwändig. Wenn du möchtest, dass dies schneller funktioniert, solltest du für alle Module, die du verwendest, einmal den Autoren schreiben und sie bitten, die Metadaten für ihr Modul ordentlich zu hinterlegen.

Oder hat dein Modul eine Funktion wo ich mit wenig Aufwand heraus bekomme wer Metadaten sendet und wer nicht? Dann könnte ich Mal schauen wie viel es wirklich betrifft?

Gesendet von meinem JSN-L21 mit Tapatalk

Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

Loredo

Zitat von: xerion am 02 Januar 2020, 11:45:24
Oder hat dein Modul eine Funktion wo ich mit wenig Aufwand heraus bekomme wer Metadaten sendet und wer nicht? Dann könnte ich Mal schauen wie viel es wirklich betrifft?


In FHEMWEB enthält das fhemInstaller Device einen Get Befehl namens "showModuleInfo". Das Dropdown Menü ist so vorbelegt, dass dort nur die Module angezeigt werden, die du auch benutzt (zumindest solange das Attribut "installerMode" nicht gesetzt ist). Du kannst dort bei jedem Modul die Info Karte anschauen. Ob ein Modul die Metadaten selbst hinterlegt hat oder nicht erkennst du an einem entsprechenden Hinweis gaaanz unten:


ZitatHint: The module does not provide Perl prerequisites from its metadata.


Wenn du auf die Source Code Analyse gänzlich verzichten möchtest, kannst du übrigens auch das Perl Modul Perl::PrereqScanner::NotQuiteLite deinstallieren bzw. nicht installieren. Dann können auch keine erweiterten Metadaten ermittelt werden und es werden nur die Informationen geladen, die direkt verfügbar sind und dies geschieht schneller.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

xerion

Zitat von: Loredo am 02 Januar 2020, 15:29:02

In FHEMWEB enthält das fhemInstaller Device einen Get Befehl namens "showModuleInfo". Das Dropdown Menü ist so vorbelegt, dass dort nur die Module angezeigt werden, die du auch benutzt (zumindest solange das Attribut "installerMode" nicht gesetzt ist). Du kannst dort bei jedem Modul die Info Karte anschauen. Ob ein Modul die Metadaten selbst hinterlegt hat oder nicht erkennst du an einem entsprechenden Hinweis gaaanz unten:



Wenn du auf die Source Code Analyse gänzlich verzichten möchtest, kannst du übrigens auch das Perl Modul Perl::PrereqScanner::NotQuiteLite deinstallieren bzw. nicht installieren. Dann können auch keine erweiterten Metadaten ermittelt werden und es werden nur die Informationen geladen, die direkt verfügbar sind und dies geschieht schneller.
Ich habe den Perl::PrereqScanner::NotQuiteLite erst Mal deinstalliert somit ist das Problem dann erst Mal behoben und kann trotzdem den Installer weiter verwenden.

Gesendet von meinem JSN-L21 mit Tapatalk

Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.