commandref-Darstellung

Begonnen von Damian, 09 August 2015, 15:27:48

Vorheriges Thema - Nächstes Thema

Markus Bloch

Ich werde in den nächsten Tagen/Wochen einen Patch erstellen.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

#16
Kurze Frage: Wie ist das momentan mit commandref_join.pl geregelt? Wird commandref_join.pl auf dem Server fhem.de ausgeführt und das Ergebnis per update verteilt, oder ist es nachwievor so, dass commandref_join.pl auf jedem System lokal aufgerufen wird, nach einem Update?

Ich meine mich zu Erinnern, dass es da etwas hin und her ging, da sich viele User gewundert haben, weil es teilweise sehr lange dauert auf bestimmten Systemen.

Aktuell sehe ich, dass "update" nachwievor commandref_join.pl am Ende eines Updates ausführt. Sollte das nachwievor so bleiben, muss ich die gesamten Module 2x öffnen und einlesen um nicht so viel RAM zu verbrauchen. Normalerweise würde ich momentan alle Module einmal einlesen. In dem Zuge direkt die Modulübersicht ausprinten und die eigentliche Doku in einer Variable zwischenspeichern, da ja noch die Helper-Modul-Tabelle zuerst ausgegeben werden muss und anschließend die gesamte Doku + Rest aus commandref_frame.

Wenn ich die Module 2x einlese wird zwar weniger RAM verbraucht, dauert aber dafür länger. Da die commandref nicht mehrere MB groß ist, würde ich daher die Module einmalig einlesen wollen mit allen Inhalten und dann daraus in einem Rutsch alle Dateien erzeugen wollen. Der RAM-Mehrverbrauch sollte auch auf kleinen Systemen keine Probleme darstellen, da wir hier von einem Memory Footprint von max 1-2MB reden.

Ist das so in Ordnung?

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig

commandref_join.pl wird auf meinem Server um 7:45 ausgefuehrt, und die Datei auf fhem.de hochgeladen. Sie wird aber von den Benutzern nicht heruntergeladen, um das fhem.de Traffic etwas zu schonen, sondern am Ende des update Vorgangs von jeder FHEM-Installation erneut erstellt. Es sei denn der Benutzer hat das durch diverse Massnahmen unterbunden, dann gibt es aber auch keinen aktuellen commandref.html auf dem System. Wer nur die Hilfe im Detailmodus verwendet, den sollte das nicht stoeren.

Wg. alles in RAM: aktuell haben wir ca 10MB an Modulen, und Perl braucht ca 6x soviel, wenn das im Speicher ist, jedenfalls war das beim Ausliefern von Log-Dateien ueber FHEMWEB vor das Einfuehren von Streaming der Fall.

Da ich in der Vergangenheit mit solchen Patches Probleme hatte, schlage ich vor, dass ich das diesmal selbst erstellen werde.

Talkabout

Hallo zusammen,

um die Größe der Commandref-Seite zu reduzieren wäre auch ein Ansatz über AJAX möglich. Dabei würde man die Commandref-Seite vorerst "nur" mit dem Modul-Namen+Kurzbeschreibung anzeigen. Dazu hätte man dann einen Link "mehr...", der den restlichen Content dynamisch nachlädt. Vorteile dieser Methode:

- der Umbau wäre nicht so gross
- die Grundstruktur würde sich nicht ändern
- Suche über Browser weiterhin möglich
- die Größe der initialen Seite wäre wesentlich kleiner

Mir geht es in den meisten Fällen so, dass ich tatsächlich nur ein paar der verfügbaren Module sehen will. Das wäre damit gut möglich.

Gruss

Markus Bloch

@Rudi: Ich weis leider nicht, wie du es dir nun genau vorstellst, aber lass es mich wissen, wenn ich dir etwas an Arbeit abnehmen kann. Du musst nicht alles alleine machen ;-)

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig

Hat etwas laenger gedauert, aber jetzt habe ich es implementiert.

- ueber "attr global commandref" kann man mit "full" die alte Version (Voreinstellung) und mit "modular" die Neue einstellen, das wird auch beim update respektiert. Die neue Version wird mit contrib/commandref_modular.pl erzeugt, bei mir deutlch schneller als mit commandref_join.pl

- die modulare Version enthaelt, wie vorgeschlagen, eine Auflistung mit Kurzbeschreibung am Anfang, die Moduldokumentation wird per JavaScript und help dynamisch geladen.

- beide Versionen haben ein "Scroll to top" bekommen, das "Load complete doc" ist sinnvollerweise nur beim Modularen vorhanden.

- nur beim Modularen gibts das Feature "Load german doc for XXX", damit kann man die jeweils andere Fassung anschauen. Das gilt nur fuer die ladbaren Texte.

- ich bitte Euch, Eure Module mit "=item summary XXX" bzw. "=item summary_DE YYY" zu ergaenzen, damit die Tabelle sinnvolle Kurzbeschreibungen enthaelt, gerne beide selbst dann, wenn die deutsche Dokumentation nicht gepflegt wird. Ich habe es bei meinen Modulen gemacht, als Beispiel siehe 91_notify.pm

Das Ganze steht ab sofort per update zur Verfuegung, da ich da auch Anpassungen vornehmen und testen musste.

Markus Bloch

Wow, super! Vielen Dank!

Ich habe meine Module soeben mit einer Summary versehen.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Icinger

Meine sind ebenfalls schon geupdatet :)

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

betateilchen

ich würde es begrüßen, wenn die commandref beim Klick aus einem laufenden FHEM-Frontend in einem neuen Tab/Fenster geöffnet wird, weil es (abgesehen vom Zurück-Button im Browser) keinen "Weg zurück" zum laufenden FHEM gibt, in dem man sich gerade befand.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitatueber "attr global commandref" kann man mit "full" die alte Version (Voreinstellung) und mit "modular" die Neue einstellen

Das Ganze funktioniert aber nicht, wenn man versucht, das Attribut über das Dropdown im Frontend auszuwählen. Es wird zwar getan, was dem Attribut entspricht (also commandref_join bzw. commandref_modular ausgeführt) aber das Attribut selbst wird nicht gesetzt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Loredo

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

DeeSPe

Hab mein eines bescheidenes Modul auch um die summary ergänzt.
Sind ja bald die 12000 commits voll. Hab aber auch mit einem Fehl-commit dazu beigetragen. Sorry...  ???

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Loredo


<comfortMode>
Man könnte commandref_modular.pl auch noch mit Ausführungsrechten versehen  ;)
</comfortMode>
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

betateilchen

@Loredo
Wenn Du das brauchst, kannst Du das bei Dir ja gerne tun.
Als Standard möchte ich die Ausführungsrechte lieber nicht haben.
Meinen Komfort schränkt das Fehlen des x-Flagsin keiner Weise ein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Loredo

Ich fragte mich halt, weshalb commandref_join.pl es verdient hat out of the Box ausführbar zu sein, commandref_modular.pl jedoch nicht.
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