Commandref aufteilen?

Begonnen von PatrickR, 21 Mai 2018, 15:49:52

Vorheriges Thema - Nächstes Thema

nils_

Zitat von: betateilchen am 24 Mai 2018, 21:46:47
Ausserdem habe ich aktuell noch ein Problem mit der commandref von FHEMWEB - irgendwie wird die Schleife zur Generierung mehrere Male pro Sprache aufgerufen und ich weiß noch nicht genau, warum. Das scheint aber nur in diesem Modul zu passieren.

liegt das evtl. an der Zeile:
<!-- INSERT_DOC_FROM: www/pgm2/fhemweb.*.js -->

weil laut
$ grep -rn INSERT_DOC_ *
01_FHEMWEB.pm:3974:        <!-- INSERT_DOC_FROM: www/pgm2/fhemweb.*.js -->
01_FHEMWEB.pm:4679:        <!-- INSERT_DOC_FROM: www/pgm2/fhemweb.*.js -->
98_help.pm:187:        if($l =~ m,INSERT_DOC_FROM: ([^ ]+)/([^ /]+) ,) {


ist das nur dort vorhanden (wenn ich das richtig genutzt habe...)
viele Wege in FHEM es gibt!

betateilchen

#16
ja, an der Stelle war ich gestern auch schon, aber irgendwann war die Bahnfahrt dann so nervig, dass ich keine Lust mehr hatte, weiter am Laptop zu arbeiten :)

Inzwischen ist das Thema FHEMWEB in commandref_static auch gelöst. Es war nicht wirklich ein Problem, es wurde durch den rekursiven Aufruf nur eine eingebaute Debug-Meldung mehrfach ausgegeben, was zu meiner Verwirrung beitrug.

Die Sache mit dem Einfügen von Inhalten aus anderen Dateien muss ich noch implementieren. (erledigt)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nils_

Zitat von: betateilchen am 25 Mai 2018, 10:10:08
ja, an der Stelle war ich gestern auch schon, aber irgendwann war die Bahnfahrt dann so nervig, dass ich keine Lust mehr hatte, weiter am Laptop zu arbeiten :)
kann ich verstehen.
ich gucke dann auch lieber aus dem fenster ;)

Zitat von: betateilchen am 25 Mai 2018, 10:10:08
Inzwischen ist das Thema FHEMWEB in commandref_static auch gelöst. Es war nicht wirklich ein Problem, es wurde durch den rekursiven Aufruf nur eine eingebaute Debug-Meldung mehrfach ausgegeben, was zu meiner Verwirrung beitrug.
ah ok. ich dachte es gab nen fehler oder sowas... debug-meldungen sind ja erstmal nicht so schlimm  ::) 8)
viele Wege in FHEM es gibt!

betateilchen

#18
Für den Notizzettel...


cref
├── docs
│   ├── commandref_DE.html -> /opt/fhem/docs/commandref_DE.html
│   ├── commandref.html -> /opt/fhem/docs/commandref.html
│   ├── cref -> /opt/fhem/docs/cref
│   ├── cref_DE -> /opt/fhem/docs/cref_DE/
│   └── fhemdoc.js -> /opt/fhem/docs/fhemdoc.js
├── fhem
│   └── icons
│       └── favicon.ico -> /opt/fhem/www/images/default/favicon.ico
├── index.html
├── pgm2
│   ├── fhemdoc_static.js -> /opt/fhem/www/pgm2/fhemdoc_static.js
│   └── jquery.min.js -> /opt/fhem/www/pgm2/jquery.min.js
├── robots.txt
└── www
    ├── images
    │   └── default
    │       └── fhemicon.png -> /opt/fhem/www/images/default/fhemicon.png
    └── pgm2
        ├── dashboard_style.css -> /opt/fhem/www/pgm2/dashboard_style.css
        ├── defaultCommon.css -> /opt/fhem/www/pgm2/defaultCommon.css
        └── style.css -> /opt/fhem/www/pgm2/style.css

10 directories, 12 files
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#19
Zitat von: betateilchen am 24 Mai 2018, 21:46:47
Was ich noch nicht verstehe, ist die if() Abfrage
...
die ich erstmal auskommentieren musste, damit überhaupt was passiert.

ah... ich habs kapiert :)


cat mkstatic.log

Updating '.':
At revision 16779.
upload: docs/commandref.html to s3://commandref.j65.de/docs/commandref.html
upload: docs/commandref_DE.html to s3://commandref.j65.de/docs/commandref_DE.html
                                                                         
Updating '.':
U    FHEM/34_ESPEasy.pm
Updated to revision 16780.
upload: docs/commandref.html to s3://commandref.j65.de/docs/commandref.html
upload: docs/commandref_DE.html to s3://commandref.j65.de/docs/commandref_DE.html
upload: docs/cref/ESPEasy.cref to s3://commandref.j65.de/docs/cref/ESPEasy.cref
                                                                         
Updating '.':
At revision 16780.
upload: docs/commandref_DE.html to s3://commandref.j65.de/docs/commandref_DE.html
upload: docs/commandref.html to s3://commandref.j65.de/docs/commandref.html

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Danke fuer die Vorarbeit.
Ich habe fhemdoc_modular.js angepast, damit es auch mit der statischen Variante zurechtkommt, und habe fhemdoc_static.js entfernt. und commandref_static.pl angepasst, damit fhemdoc_modular.js statt fhemdoc_static.js geladen wird. Ich habe alles ausgerollt auf fhem.de, damit steht
http://fhem.de/commandref_modular.html
bzw.
http://fhem.de/commandref_modular_DE.html
zur Verfuegung.

Wenn es keine groeberen Probleme zeigt, dann werde ich die beiden auch auf fhem.de direkt verlinken.


betateilchen

Prima.

Parallel werde ich das in meinem Serverumfeld weiter beobachten, mir sind da noch Kleinigkeiten aufgefallen, die ich irgendwann noch beheben möchte, die aber nichts mit der Funktionalität selbst zu tun haben.

Noch ein Hinweis:

Von Zeit zu Zeit (z.B. einmal pro Jahr) sollte man die .pl Datei mit dem Parameter "rebuild" aufrufen. Das sorgt dafür, dass zuerst alle .cref Dateien entfernt und danach alle Texte neu generiert werden. Warum? Weil sonst die .cref Dateien zu Modulen, die nicht mehr im ./FHEM Zweig stehen, nicht entfernt werden. Das Entfernen eines Moduls bekommt nämlich commandref_static.pl nicht ohne weiteres mit.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Warum funktioniert das auf meinem Server http://commandref.j65.de nicht? *grübel*

es wird die korrekte html-Datei (commandref_modular.html) aufgerufen,
es wird die korrekte fhemdoc_modular.js geladen

Trotzdem sieht man in der js-console, dass nach wie vor versucht wird, einen help Befehl auszuführen, anstatt die cref Datei zu laden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Weil fd_mode nur dann auf "static" geschaltet wird, falls der host fhem.de oder commandref.fhem.de ist.
Du koenntest auf deinem Rechner fd_mode in der 6-ten Zeile der Datei fhemdoc_modular.js mit "static" initialisieren.

Weiterhin braucht man fuer die Installation auf dem eigenen Rechner
- die commandref_modular*.html und fhemdoc.js,  in einem Ordner
- jquery.min.js und fhemdoc_modular.js in einem pgm2 Unterordner
- style.cs in www/pgm2

Hmmm. Ziemlicher Chaos, ich muesste da mal aufraeumen :)

betateilchen

Zitat von: rudolfkoenig am 27 Mai 2018, 20:37:44
Du koenntest auf deinem Rechner fd_mode in der 6-ten Zeile der Datei fhemdoc_modular.js mit "static" initialisieren.

danke, das ändert auf jeden Fall mal das Verhalten dahin, dass tatsächlich versucht wird, eine Datei zu laden.

Zitat von: rudolfkoenig am 27 Mai 2018, 20:37:44
Weiterhin braucht man fuer die Installation auf dem eigenen Rechner
...
Hmmm. Ziemlicher Chaos, ich muesste da mal aufraeumen :)

Man braucht noch mehr Dateien, als in Deiner Liste genannt sind. Die ziemlich verquere Verzeichnisstruktur habe ich weiter oben schon dokumentiert.

In diesem Beitrag https://forum.fhem.de/index.php/topic,87975.msg805513.html#msg805513

sind alle Dateien aufgeführt, die ich bereitstellen musste, um den Aufruf der statischen commandref aus meinem bucket ohne Fehler auf der Konsole ausführen zu können.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

In meinem Amazon S3 bucket sieht die Struktur jetzt so aus:


.
├── cref -> /opt/fhem/docs/cref
├── cref_DE -> /opt/fhem/docs/cref_DE/
├── docs
│   ├── commandref_modular_DE.html -> /opt/fhem/docs/commandref_modular_DE.html
│   ├── commandref_modular.html -> /opt/fhem/docs/commandref_modular.html
│   └── fhemdoc.js -> /opt/fhem/docs/fhemdoc.js
├── fhem
│   └── icons
│       └── favicon.ico -> /opt/fhem/www/images/default/favicon.ico
├── index.html
├── pgm2
│   ├── fhemdoc_modular.js
│   └── jquery.min.js -> /opt/fhem/www/pgm2/jquery.min.js
├── robots.txt
└── www
    ├── images
    │   └── default
    │       └── fhemicon.png -> /opt/fhem/www/images/default/fhemicon.png
    └── pgm2
        ├── dashboard_style.css -> /opt/fhem/www/pgm2/dashboard_style.css
        ├── defaultCommon.css -> /opt/fhem/www/pgm2/defaultCommon.css
        └── style.css -> /opt/fhem/www/pgm2/style.css

10 directories, 12 files


Dass die cref.* Verzeichnisse eine Stufe höher angesiedelt sind, hat technische Gründe. Aber mit dieser Struktur funktioniert nun auch die statisch-modulare commandref bei mir.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nils_

kurze frage:
gibt es keine sprachumschaltung mehr DE <-> EN ??
viele Wege in FHEM es gibt!

betateilchen

Deshalb hatte Rudi oben ZWEI Links gepostet. Einen für englisch, einen für deutsch.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nils_

die hab ich schon gesehen, und mir ist auch klar wofür der jeweilige link ist  8)

aber es gibt nun keine mehr in der commandref.
und auch selbst eingefügte von den Modulentwicklern führen jetzt vmtl. ins leere. (selbst erstellte sollten dann wohl am besten über kurz oder lang verschwinden!)
viele Wege in FHEM es gibt!

rudolfkoenig

Immerhin kann man (hoechst komfortabel :) ) die gerade sichtbare Moduldokumentation in der anderen Sprache anzeigen lassen.
Und: das ist nix Neues, ist mit "attr global commandref modular" schon seit einem Jahr da, nur halt nicht auf fhem.de