Hilfe beim Plugin programmieren

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Hilfe beim Plugin programmieren

      Seit einiger Zeit versuche ich mich mal in die Pluginprogrammierung einzuarbeiten, Erste Versuche mache ich, in dem in bestehenden Plugins Veränderungen mache und schaue, ob das funktioniert, was ich mir gedacht habe. So z.B. die Tastenbelegung im GraphischenMultiEPG so zu ändern, dass ich mir den Tasten 2 und 8 vertikal blättern kann. Das habe ich auch hinbekommen. Jetzt wollte ich das so machen, dass man im Menü auswählen kann, ob man die ursprüngliche oder die neue Tastenbelegung wählen kann. Da ist mir dann wohl allerdings ein Fehler unterlaufen und das Plugin startet nicht. Jetzt zu meiner eigentlichen Frage:
      welche Werkzeuge oder Umgebungen nutzen denn hier die Plugin Entwickler so, um einen Fehler zu finden. Arbeitet Ihr direkt auf der Box oder am PC? Wenn ja womit (Entwiclungsumgebung, Debugger, ...)?
      Falls das irgendwo schonmal dokumentiert wurde, wäre ein Link dorthin auch hilfreich.
    • Bin ich hier im falschen Bereich gelandet? Oder ist hier niemand unterwegs, der selbst Plugins programmiert?
      Gerade habe ich herausgefunden, dass ich den ersten Fehler in der .py angezeigt bekomme, wenn ich versuche die Erweiterungen zu öffnen.
      Gibt es nirgendwo ein Tutorial einen Link oder sonstige JHilfe, wenn man anfangen will Plugins zu programmieren?

      Und falls ich hier im fladchen Bereich gelandet sein sollte, dann könnte vielleicht ein freundlicher Mod den Thread in den richtigen Bereich verschieben? Vielen Dank!
    • Dieter59 schrieb:

      Bin ich hier im falschen Bereich gelandet? Oder ist hier niemand unterwegs, der selbst Plugins programmiert?
      Gerade habe ich herausgefunden, dass ich den ersten Fehler in der .py angezeigt bekomme, wenn ich versuche die Erweiterungen zu öffnen.
      Gibt es nirgendwo ein Tutorial einen Link oder sonstige JHilfe, wenn man anfangen will Plugins zu programmieren?...
      Ich musste mich damals auch selbst in das Thema einarbeiten.
      Es gibt zwar eine Anleitung wie man sein erstes Plugin schreibt, aber welche Tools und mit welcher Arbeitsweise man Fehler findet, hatte ich damals auch nicht gefunden.

      Ich arbeite direkt auf der Box in den .py-Files mit einem unixfähigen Texteditor.
      Wenn man das lästige Neustarten nach einer Änderung umgehen möchte, kann man das eigentliche Plugin in eine eigene .py auslagern und in der plugin.py einen reload(...) für die ausgelagerte Datei ausführen.
      Dann wird sofort neu kompiliert. Einfach mal den Plugin-Ordner nach "reload(" als Text durchsuchen.
      Im GithubPluginUpdater hab ich das auch drin (über eine Variable reload_value gesteuert).

      Wenn du einen Syntax-Fehler hast, dann bekommst du den Fehler schon beim Öffnen des Pluginbrowsers (Erweiterungen) angezeigt. Das ist dann immer der Fall, wenn das Plugin plötzlich in keinem Menü auftaucht.

      Dann beim Testen im Plugin immer den live-log im Telnet mitlaufen lassen.
      Da kann man sich dann auch im Code bestimmte Variablen mit "print" ausgeben lassen.
      Dann sieht man zumindest, wo der Code ausgeführt wird und wo es dann evtl. hängt.

      Was auch hilfreich ist, ist das Absichern des Codes mit try: und except: ...
      Dadurch wird meistens ein Crash verhindert und der Fehler im telnet ausgegeben.
      Da findest du auch reichlich Beispiele in anderen Plugins (z.B. Auch im GithubPluginUpdater).

      Mehr fällt mir da gerade nicht ein ;)
      Dreambox 920 (2 Sat-Kabel an DVB-S2x FBC)
    • Hallo,

      Sven H schrieb:

      Wenn man das lästige Neustarten nach einer Änderung umgehen möchte, kann man das eigentliche Plugin in eine eigene .py auslagern und in der plugin.py einen reload(...) für die ausgelagerte Datei ausführen.
      So hab ich das auch bei den Plugins für die KravenSkins gemacht.
      Kannst dir das ja mal anschauen.

      Gruß,
      örlgrey
    • man kann in Telnet das enigma2-log live mitlaufen lassen.
      So sieht man direkt die Fehler, die man sonst nur im erstellten log finden würde.

      Bei OE2.5 geht das mit "journactl -f -u enigma2".
      Wie der Befehl bei den VU's ist kann ich dir leider nicht sagen.

      Das könnte evtl. das hier sein:
      Enigma2 Ausgaben protokollieren – Gemini-Wiki
      Dreambox 920 (2 Sat-Kabel an DVB-S2x FBC)
    • Dieter59 schrieb:

      ...Ich arbeite von der Couch aus mit dem iPad und telnet, vi und der App Buffer Editor...
      mit dem Tablet arbeite ich auch gelegentlich.
      Bei größeren Änderungen nutze ich dann aber doch den PC, da es sich dort mit Maus und echter Tastatur doch etwas besser/schneller arbeiten lässt.

      Als Telnet-Variante auf dem Tablet nutze ich "WebSSH Pro". Da lassen sich sogar Befehle als Kurztaste speichern - erspart das Eintippen.
      Das ist auf die Schnelle auch ganz nützlich, wenn man nicht unbedingt den PC anschmeißen will ;)
      Dreambox 920 (2 Sat-Kabel an DVB-S2x FBC)
    • ok is schon etwas her ... meine 2ct. dazu :
      • @SvenH : "journalctl" gibt es nicht im VTI ;) , is weder DEB noch systemd
      • @örlgrey : "reload" is ja genial, leider isses nicht immer möglich, wenn man z.B. an einem bestehenden Plugin nur kleine Änderungen machen möchte ...
      und im VTI funktioniert das mit dem Debug nun etwas anders, is ja kein OE2.5 = Dream ^^ :
      1. ONLINE aktivierbar : Menü / VTI / Einstellungen System (5/5) = 2x Steuerkreuz hoch
      2. hier dann für Typ / Ausgabe einstellen, was man haben möchte, ich hab den Loop für Datei + Konsole als Typ, da der Dateiname immer gleich ist ;) ... mit GRÜN bestatigen = is aktiv
      3. per telnet/ssh einloggen und eingeben einfach eingeben : tail -f /media/hdd/dvbapp2_debug_loop.log ... Beenden mit CTRL+C
      4. so hab ich bei Tests immer den aktuellen Log :D im Fenster, den ich auch kopieren/speichern etc. kann.
      5. ich hab mir dafür auch im .profile von root ein alias angelegt ^^ ... da ist natürlich Vorsicht geboten, ein Fehler im root profile ... und du bist "draußen" :huh: ... wohl dem, der bei solchen Experiementen ne Sicherung hat ;)
      hope it helps :D
      Dateien
      • debug VTI.png

        (17,72 kB, 15 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von gordon55 ()