FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: M.Schulze am 13 November 2019, 18:59:31

Titel: Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: M.Schulze am 13 November 2019, 18:59:31
Hallo,

warum ist die Hilfe im Modul am Ende?

Perl wird so oder so immer die komplette File parsen (keine Spekulation) und keine Unterschiede in der Ausführungsgeschwindigkeit machen (reine Spekulation)
help.pm müsste immer durchparsen bis die Hilfe kommt (keine Spekulation)

MfG
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: Icinger am 13 November 2019, 20:05:09
ZitatPerl wird so oder so immer die komplette File parsen (keine Spekulation)
Stimmt so nicht ganz, für Perl-Module müssen immer mit einem "true" enden.
Deshalb enden die meisten Perl-Files mit einem
1;

Alles, was danach kommt, interessiert den Interpreter nicht mehr.
Daher kann man danach auch (so wie in diesem Falle) einfach HTML-Code (oder was auch immer) anhängen.

lg, Stefan[/code]
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: M.Schulze am 13 November 2019, 20:19:32
Hatte ich auch gedacht. Dem ist aber nicht so. Der HTML-Code ist auch nicht einfach so angehängt sondern ein Perl-konformer Kommentar. Bau doch mal einen Fehler nach dem 1; ein.

MfG
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: Icinger am 13 November 2019, 20:30:50
Also, zB mein OBIS-Modul endet ganz normal mit "true" (naja gut, halt mit einer "Art" true)

Und danach folgt plain HTML-Code

if (length($msg)>$msgLength*2) {
$valu=substr($msg,0,$msgLength*2);
$tmp.=$valu;
$msg=substr($msg,$msgLength*2);
}
# Log 3,"   Split Msg: $tmp $msg";
return $msgLength,$msgType,$valu,$msg,$tmp;
};
}

"Cogito, ergo sum.";

=pod
=item device
=item summary    Collects data from Smartmeters that report in OBIS-Standard
=item summary_DE Wertet Smartmeter aus, welche ihre Daten im OBIS-Standard senden
=begin html

<a name="OBIS"></a>
<h3>OBIS</h3>
<ul>
  This module is for SmartMeters, that report their data in OBIS-Standard. It dosen't matter, wether the data comes as PlainText or SML-encoded.
  <br><br>

Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: loescher am 14 November 2019, 20:49:48
Mit "=pod" beginnt der Pod Block. Das ist kein HTML.
Da macht erst der Pod Formatter ein HTML draus.
Bau doch mal zwischen "1;" und "=pod" einen "Unsinn" rein, dann kommt ein Fehler.  :)
LG,
Stephan.
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: CoolTux am 14 November 2019, 21:52:01
Was genau ist Dein Wunsch oder Anliegen. Ich verstehe gerade die Diskussion nicht so wirklich.
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: M.Schulze am 16 November 2019, 09:51:50
Zitat von: CoolTux am 14 November 2019, 21:52:01
Was genau ist Dein Wunsch oder Anliegen. Ich verstehe gerade die Diskussion nicht so wirklich.

Hallo,

Es geht nur um die generelle Verbesserung der Ausführungsgeschwindigkeit. In help.pm ist ja noch Potential da.

Das einmaligen füllen von %cmds  dauert so wie es ist zu lange. Muss aber sein. Auch die Identifizierung command|helper|device ist sinnvoll.
Hlp => "Command $mod not loaded. Use \"help $mods{$mod}\" for more help" könnte man besser machen wenn man schon alle Dateien nach command|helper|device durchsucht ...


Wie man die ladbaren Helpers und Devices (analog Commands) mit help.pm abruft ist mir auch unklar / nicht implementiert. Die Informationen werden aktuell extrahiert und nicht verwendet. Die item summary ist auch noch nicht abrufbar.

MfG
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: CoolTux am 16 November 2019, 10:44:24
Ok ich verstehe nun was Du möchtest. Du hast ja definitive Thesen getroffen.
Der nächste Schritt wäre mit Messungen Deine Thesen Beweisbar zu machen. Um danach mittels besseren Code FHEM besser zu machen und die Community zu unterstützen.

Vielen Dank schon mal für Deine Mühe, die Community freut sich immer über Hilfe und Verbesserungen.
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: nils_ am 04 Dezember 2019, 11:19:02
ich les mal mit und bin gespannt auf die messergebnisse :)
Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: M.Schulze am 05 Dezember 2019, 22:29:53
Eine weitere Idee:

- es könnten auch noch 10-20 Dummy-Module einfügt werden (Befehle aus FHEM.pl, Global - siehe Beispiel).
'help define' würde dann funktionieren.

- 'help' (Übersicht) könnte dann auch mehrsprachig funktionieren wenn %cmds{Befehl}Hlp = item summary (_DE) entspricht (damit gefüllt wird), keine Ahnung ob das so angedacht ist ???

- das Befüllen von %cmds{Befehl}Hlp in sub_command_Initialize ist sinnvoll,  aber nicht brauchbar, da ja nicht alle Befehle geladen sind.

- einsprachige Hilfe aus Fhem.pl könnte dann auch raus.

MfG

Beispiel: 98_define.pm

=pod
=item command
=item summary [option] <name> <type> <options>, define a device
=item summary_DE [option] <name> <type> <options>, define a device

=begin html
<a name="define"></a>
<h3>define</h3>
<ul>
  <code>define [option] &lt;name&gt; &lt;type&gt; &lt;type-specific&gt;</code><br>
  <br>
  Define a device. You need devices if you want to manipulate them (e.g.
  set on/off), and the logfile is also more readable if it contains e.g.
  "lamp off" instead of "Device 5673, Button 00, Code 00 (off)". <br>
  After definition, the global event "DEFINED" will be generated, see the
  notify section for details.<br>
  <br><br>

  Each device takes different additional arguments at definition, see the
  corresponding device section for details.<br>
  <br>
  Options:<br>
  <ul>
    <li>-temporary<br>
      Add the TEMPORARY flag to the definition, which will prevent saving the
      device to fhem.cfg.
      </li><br>
    <li>-ignoreErr<br>
      Reduce the number of errors displayed when a certain FHEM-module cannot
      be loaded. Used by fhem.cfg.demo, as using the RSS example requires the
      installation of several uncommon perl modules.
      </li><br>
  </ul>
</ul>
=end html

=begin html_DE
<a name="define"></a>
<h3>define</h3>
<ul>
  <code>define [option] &lt;name&gt; &lt;type&gt; &lt;type-specific&gt;</code>
  <br>
  <br>

  Definiert ein Ger&auml;t. Sie m&uuml;ssen Ger&auml;te einrichten um sie zu
  beeinflussen (z.B. das Kommando set on/off auszuf&uuml;hren). Gleichfalls
  ist das Logfile besser lesbar wenn es z.B.  "lamp off" anstatt "Device 5673,
  Button 00, Code 00 (off)" als Text enth&auml;lt. <br>

  Nach der Durchf&uuml;hrung wird das globale Ereignis "DEFINED" generiert.
  <br><br>

  Je nach Typ ben&ouml;tigt man unterscheidliche Argumente, lesen Sie sich
  bitte die zu dem jeweiligen Ger&auml;t geh&ouml;renden Abschnitte durch.
  <br><br>
  Optionen:<br>
  <ul>
    <li>-temporary<br>
      Setzt den TEMPORARY Marker, was das Abspeichern dieser Definition in
      fhem.cfg verhindert.
      </li><br>
    <li>-ignoreErr<br>
      Reduziert die Anzahl der Fehlermeldungen, falls ein FHEM-Modul nicht
      geladen werden kann. Wird in fhem.cfg.demo verwendet, da das RSS Beispiel
      etliche, normalerweise nicht installierte perl-Module ben&ouml;tigt.
      </li><br>
  </ul>
</ul>
=end html_DE

=cut

1;

Titel: Antw:Hilfe im Modul.pl an den Anfang stellen ?
Beitrag von: Prof. Dr. Peter Henning am 06 Dezember 2019, 04:31:52
Ich stelle fest, dass der Threadersteller bisher eigentlich keinerlei konstruktive Beiträge geliefert hat. Alle seiner Posts laufen darauf hinaus, dass "man" in FHEM irgendwelche generellen Dinge ändern müsste oder sollte. Mag ja sein, dass so etwas als "Principal Strategist" zum Selbstverständnis gehört- aber ich stelle doch mal die ketzerische Frage nach der "hidden agenda".

LG

pah