Autor Thema: Online Attributhilfe für ähnliche Attribute duplizieren/übernehmen  (Gelesen 3047 mal)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7380
Guten Morgen,

es gibt ja für Attribute/Setter/Getter die Möglichkeit die Hilfe im FHEMWEB einzublenden wenn das Attr ausgewählt wird.
Gibt es die Möglichkeit den identischen Hilfetext nicht immer duplizieren zu müssen wenn er für mehrere Attr gilt ?

Zum Beispiel habe ich ein Attr consumer01 mit der entsprechenden (recht umfangreichen) Hilfe.
Nun gibt es noch die Attr consumer02,consumer03,consumer04,...  für die ebenfalls die identische Hilfe gilt.
Die müsste ich nun entsprechend oft in der CommandRef kopieren.

Geht das besser ?

LG und einen schönen Feiertag allen.
Heiko
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24491
Ich gehe davon aus, dass du damit das "In der FHEMWEB Detailseite beim Attribut auswaehlen die passende Doku einblenden" meinst.
Ich kann fhemweb.js erweitern, damit bei nicht gefundener Doku und Zahl am Ende nach dem Namen ohne Zahl am Ende gesucht wird.
Ich brauche nur ein OK, will nicht sinnlos Code einbauen.

ich ich ich :)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7380
Zitat
Ich gehe davon aus, dass du damit das "In der FHEMWEB Detailseite beim Attribut auswaehlen die passende Doku einblenden" meinst.
Ja genau, das meine ich  :)

Diese Erweiterung wäre bestimmt auch für andere Entwickler hilfreich, denn solche Attribut/Setter/Getter-Fortschreibungen sind sicher kein Einzelfall.

Danke !  :D
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6258
  • Finger weg von der fhem.cfg
Hi,

ich habe sowas ähnliches, aber halt nicht mit Zahl am Ende...
Allerdings habe ich auch sowas wie "backend_.*" in der Attributliste. Vielleicht könnte man dessen Doku einblenden, wenn man ein "passendes" Attribut bearbeitet.

Ach ja, wenn wir gerade dabei sind: Es wäre außerdem schön, wenn das mit den Sprachen nicht ganz so strikt gehandhabt werden würde. D.h. wenn es die Doku nicht in der richtigen Sprache, aber in einer anderen Sprache gibt, dann wäre es schön, wenn eben die andere Sprache angezeigt wird.

Gruß,
   Thorsten
FUIP

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24491
Hab was eingebaut.

- die Doku kommt erst, wenn man den Attribut-Namen per Dropdown auswaehlt. Das funktioniert bei Regexp-Namen nicht direkt, erst muss man auf ein bereits gesetzten Attributnamen klicken (damit kommt er in die Auswahlliste), dann was Anderes auswaehlen, dann wieder zurueck.
- es wird nur fuer Attribute mit Zahl am Ende eine erneute Suche in der Hilfe ohne Zahl unternommen. Falls jemand einen Vorschlag hat, wie man vom Attributnamen auch in anderen Faellen zum Hilfstext-ID kommt, bitte melden.

P.S.: Bitte bei der Doku die neue Syntax benutzen (<a id="modulName-[set|get|attr]-attrName"> und nicht mehr <a name="attrName"> )

Zitat
Es wäre außerdem schön, wenn das mit den Sprachen nicht ganz so strikt gehandhabt werden würde. D.h. wenn es die Doku nicht in der richtigen Sprache, aber in einer anderen Sprache gibt, dann wäre es schön, wenn eben die andere Sprache angezeigt wird.
Ich meine das ist eine Aufgabe fuer das help Modul.
fhemweb.js versucht es trotzdem nochmal auf deutsch, wenn "No help found" zurueckkommt.
Kannst du mir den Fall nennen, wo das nicht funktioniert?

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7380
Habs mal ausprobiert. Neue fhemweb.js aus SVN geladen und restartet.
Klappt aber noch nicht. Vllt. mache ich etwas falsch.

In der Doku jetzt so definiert:

       <a id="SolarForecast-attr-consumer"></a>
       <li><b>consumerXX &lt;Device Name&gt; type=&lt;type&gt; power=&lt;power&gt; [mode=&lt;mode&gt;] [icon=&lt;Icon&gt;] [mintime=&lt;minutes&gt;] [on=&lt;Kommando&gt;] [off=&lt;Kommando&gt;] [etotal=&lt;Readingname&gt;:&lt;Einheit&gt;] </b><br>
        Registriert einen Verbraucher &lt;Device Name&gt; beim SolarForecast Device. Dabei ist &lt;Device Name&gt;
....

Die Attr heißen wie oben angegeben consumer01, consumer02, ...
« Letzte Änderung: 01 Mai 2021, 17:29:14 von DS_Starter »
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6258
  • Finger weg von der fhem.cfg
Hi,
ich wollte jetzt auch mal sehen, ob meine Problemchen vielleicht an einem alten Stand liegen und habe ein update gemacht.
Tja:
2021.05.01 13:14:32 1: ERROR: Select error -1 (128), error count= 0
Select error -1 (128)
Der Befehl "uptime" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
...das muss ich jetzt erstmal finden.
Gruß,
   Thorsten
FUIP

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6258
  • Finger weg von der fhem.cfg
Hi,
so, ich habe das Problem gefunden. Das Modul SYSSTAT schmiert inzwischen unter Windows ab. Das ist wohl nicht so schlimm da es für Windows sowieso nicht funktioniert.

- die Doku kommt erst, wenn man den Attribut-Namen per Dropdown auswaehlt. Das funktioniert bei Regexp-Namen nicht direkt, erst muss man auf ein bereits gesetzten Attributnamen klicken (damit kommt er in die Auswahlliste), dann was Anderes auswaehlen, dann wieder zurueck.
Du hattest mir den Tipp mit $hash->{'.AttrList'} gegeben, wobei $hash der Hash des Geräts ist. Dort trage ich die "Instanzen" des Regexp-Attributs ein. Dadurch sieht man das auch sofort in der Drop-Down-Liste und kann es sofort auswählen. Im Prinzip könnte man da dann auch die passende Doku anzeigen. (Ich habe wahrscheinlich auch vor, zu "backend_.*" passende "Instanzen" anzubieten, um es dem Anwender einfacher zu machen.)
Allerdings sehe ich momentan auch die Doku zum Attribut "backend_.*" nicht, wenn man es auswählt. Mir ist klar, dass man einem Attribut wie "backend_.*" keinen Wert zuordnen kann, aber es wäre trotzdem schön, wenn man die Doku sehen würde.
Ich kann aber auch selbst mal nachschauen, warum das nicht klappt.

Zitat
Ich meine das ist eine Aufgabe fuer das help Modul.
fhemweb.js versucht es trotzdem nochmal auf deutsch, wenn "No help found" zurueckkommt.
Kannst du mir den Fall nennen, wo das nicht funktioniert?
Ich habe nochmal nachgesehen. Das funktioniert in meiner Produktivumgebung nicht, aber da habe ich ein relativ altes FHEM. In einer aktuellen Installation klappt das tatsächlich so, wie ich es mir gewünscht hatte.

Gruß,
   Thorsten
FUIP

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7380
@Thorsten, klappt bei dir dieses Konstrukt mit <a id= ...  ?
Geht bei mir nicht wie ich in #5  geschrieben habe. Inzwischen noch Browser Cash gelöscht, nochmal update gemacht, restartet etc.
Entweder klappt es wirklich noch nicht oder ich habe etwas falsch geschrieben.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6258
  • Finger weg von der fhem.cfg
Allerdings sehe ich momentan auch die Doku zum Attribut "backend_.*" nicht, wenn man es auswählt. Mir ist klar, dass man einem Attribut wie "backend_.*" keinen Wert zuordnen kann, aber es wäre trotzdem schön, wenn man die Doku sehen würde.
Ich kann aber auch selbst mal nachschauen, warum das nicht klappt.
Ich habe jetzt mal den JavaScript-Debugger angeworfen...
Wenn ich das hier mache:
<a name="backend_____">backend_.*</a>
Anstatt
<a name="backend_.*">backend_.*</a>
...dann wird die Doku zumindest mal angezeigt, wenn ich "backend_.*" auswähle. (Ja, ich weiß, die Version mit FUIP-attr-backend... wäre besser.)
Bei der Implementierung ist dann auch klar, warum es schwierig ist, die Doku zum Regexp-Attribut anzuzeigen, wenn eine "Instanz" davon ausgewählt wird. Ich glaube, dass man prinzipiell zwar Zeichen wie . und * in ein HTML-id-Tag aufnehmen kann, aber schön ist das tatsächlich nicht.
 
@Thorsten, klappt bei dir dieses Konstrukt mit <a id= ...  ?
Ich habe das nicht ausprobiert und mir würde es ja auch nichts nützen. Mein Szenario ist ein klein wenig anders.

Gruß,
   Thorsten
FUIP

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24491
@DS_Starter: ich habe mit deiner Doku kein Problem, siehe Anhang.
Wichtig: das erste gefundene ID enthaelt den Modulnamen: <a id="SolarForecast">, es wird mit diesem Namen weitergesucht nach <a id="SolarForecast-attr-consumer">.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24491
Zitat
Mir ist klar, dass man einem Attribut wie "backend_.*" keinen Wert zuordnen kann, aber es wäre trotzdem schön, wenn man die Doku sehen würde.
Ausser Zahlen wird am Ende auch .* abgeschnitten, und ohne diese erneut versucht :)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7380
Hmm, ich habe am Anfang der Doku stehen:

=begin html_DE

<a id="SolarForecast"></a>
<h3>SolarForecast</h3>
<br>

Das Modul SolarForecast erstellt auf Grundlage der Werte aus generischen Quellendevices eine
...

Dann kommen keinerlei Marken mehr bis zu dieser:

       <a id="SolarForecast-attr-consumer"></a>
       <li><b>consumer01 &lt;Device Name&gt; type=&lt;type&gt; power=&lt;power&gt; [mode=&lt;mode&gt;] [icon=&lt;Icon&gt;] [mintime=&lt;minutes&gt;] [on=&lt;Kommando&gt;] [off=&lt;Kommando&gt;] [etotal=&lt;Readingname&gt;:&lt;Einheit&gt;] </b><br>
        Registriert einen Verbraucher &lt;Device Name&gt; beim SolarForecast Device. Dabei ist &lt;Device Name&gt;
....

Klappt bei mir leider nicht. Irgendwas mache ich offensichtlich falsch.
Alternative Browser hab ich auch schon probiert. Werde morgen früh auch mal meine produktive Instanz frisch updaten und dort probieren.
Mal schauen ob sich noch etwas ergibt.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24491
Ansonsten bitte komplette Doku hier anhaengen, und ich teste es mal selbst.

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7380
Ich habe die Doku mal radikal eingekürzt. Geht bei mir trotzdem nicht und habe es als File hier angehängt.
Vielleicht siehst du den Fehler ...
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

 

decade-submarginal