Plugin Entwicklung für DM Einsteiger

    • Plugin Entwicklung für DM Einsteiger

      Hi Leute,

      habe seit ein paar Tagen die DM8000 und möchte mich gerne in die Python Plugin Entwicklung einarbeiten.

      Hatte mir den VMWare Player incl. Stinky Linux aufgespielt und festgestellt, dass ich das CDK wohl nur benötige wenn ich in C was machen möchte?
      Leider habe ich bislang nicht den Einstiegfür die Pluginentwicklung im WEB gefunden.
      Es schaut für mich so aus, als ob das alles eher in Richtung C Entwicklung geht.

      Gibt es irgendwo eine Doku im WEB oder ein gutes Buch wo der Einsteig in die Pluginentwicklung mit Python erklärt wird?
      Folgende Punkte währen von Interesse:
      - Benötigtes oder Empfohlenes Environment (habe unter Java immer gerne mit Eclipse gearbeitet)
      - Einstieg in die Python Plugin Entwicklung mit Beispielen ('Hello World')
      - Erklärung des Enigma2 Frameworks (API's, Doku)

      Hab' in den letzten Jahren so ziemlich alles an Programmiersprachen programmiert.
      Von BASIC über Pascal nach C/C++, Assembler und Java. Ist leider aber schon einige Jahre her. Derzeit nur noch ein wenig ABAP (SAP) beruflich.
      Ich denke mal, Python werde ich da auch noch hinnbekommen, jedoch ohne vernünftige Doku ist das kaum (mit der mir zur Verfügung stehen Zeit) zu schaffen.

      Danke schon mal für Eure Hilfe.

      Gruß
      Stefan
      Dreambox 8000SSCC
      PanasonicTH-50PV71FA
      NETGEAR ReadyNAS Duo
      Logitec Harmony One
    • ..bloß leider sagt Dir ein Texteditor nicht, welche Files benötigt werden, wo Sie reinkommen und wofür sie gut sind. Die API Beschreibung im Texteditor läßt auch zu wünschen übrig ?(

      Danke aber für den Link ...
      Dreambox 8000SSCC
      PanasonicTH-50PV71FA
      NETGEAR ReadyNAS Duo
      Logitec Harmony One
    • Python ja, aber was muss ich tun um ein Plugin zu schreiben?
      Welche Files werden wofür benötigt?
      Was ist dem API von Enigma? Welche C Funktionen stehen zur Verfügung mit welchen Parametern?

      Ich stell mir das ganze wie mit Java vor. Einen Editor habe ich, Java kann ich auch. Um aber in Java was zu schreiben, was nicht eine reine Konsoleneingabe-/ausgabe macht, muss ich diverse Classlibs importieren. Aus diesen kann ich dann wiederum Klassen aufrufen. Um aber zu wissen welche Klassen, welche Parameter und Rückgabewerte haben, benötige ich eine Dokumentation.

      Ausserdem benötigt das Python Script sicherlich einen bestimmten Aufbau um als Plugin im Enigma eingebunden werden zu können. In den Beispielfiles stehen immer mehrere Files drin. Welches ist für welchen zweck und wie ist der generelle Aufbau?

      Makefile.am
      __init__.py
      maintainer.info
      plugin.py

      Ich weiss nicht, wie ich die Frage noch stellen soll, aber ich glaube nicht, dass es mit einem Texteditor (z.B. vi) und der Standard Python Doku möglich ist (ohne weitere Infos) ein Enigma Python Plugin zu schreiben. Falls doch, dann her mit den Infos ... 8o
      Dreambox 8000SSCC
      PanasonicTH-50PV71FA
      NETGEAR ReadyNAS Duo
      Logitec Harmony One
    • Original von a08574
      Ich weiss nicht, wie ich die Frage noch stellen soll, aber ich glaube nicht, dass es mit einem Texteditor (z.B. vi) und der Standard Python Doku möglich ist (ohne weitere Infos) ein Enigma Python Plugin zu schreiben. Falls doch, dann her mit den Infos ... 8o


      Doch doch, ein Texteditor reicht vollkommen aus... :)

      Es gibt keine Klassenbeschreibungen. Wenn Du ernsthaft was programmieren willst, musst Du erstmal den Source-Code von enigma2 und/oder deren Plugins studieren. Das ganze hat jetzt noch nix mit Python zu tun, sondern es geht noch rein um die Enigma2-API. LESEN LESEN LESEN ist hier gefragt. Und natürlich ein bisschen verstehen... :D

      Nun solltest Du noch Python lernen (am besten nebenbei, python ist nicht sehr schwer zu erlernen).

      Danach biste fit für Enigma2-Plugins. :)

      Ich bezweifel sehr stark, dass Dich jemand auf diesem Weg dorthin begleiten wird, da ist Eigeninitiative gefragt und Sourcen studieren...

      Was anderes ist es, wenn Du explizite Fragen hast, da würde ich und bestimmt auch andere gerne helfen. ;)

      Guten Rutsch!
      4 8 15 16 23 42
    • so, hab jetzt einiges an Doku gefunden.
      Im Source von Enigma im WEB-View gibt es ein paar zeilen, die es dem Einsteiger schon mal wesendlich erleichtern:
      git.opendreambox.org/?p=enigma…cbadba5a49c847cf1;hb=HEAD
      (/ doc / PLUGINS).

      Nun habe ich das wie im Beispiel gemacht. Im PluginBrowser erscheint das Demo jedoch nicht ?(
      Hab ein ipk erstellt (dream.reichholf.net/wiki/Howto:IPK_Pakete_erstellen), und nach der Intstallation steht das plugin.py auch an der richtihen Stelle:
      /usr/lib/enigma2/python/Plugins/DemoPlugins/<meinOrdner>/pluign.py

      Gehe ich nun aber in den Pluginbrowser auf der Box, sehe ich das Plugin nicht. Was fehlt noch?
      Bin für jeden Tipp dankbar.

      Ach ja, die Klassenbibiliothek gibt es unter dream.reichholf.net/pydoc/html/namespaces.html

      Gruß
      Stefan
      Dreambox 8000SSCC
      PanasonicTH-50PV71FA
      NETGEAR ReadyNAS Duo
      Logitec Harmony One
    • Wie sollen wir dir sagen was fehlt, wenn wir deinen Source gar nicht sehen.....

      Meine Glaskugel ist leider im Moment zur Reparatur. ?(
      Gruß
      Dumbo

      In einer irrsinnigen Welt vernünftig sein zu wollen, ist schon wieder ein Irrsinn für sich.
    • @Dumbo:
      Als Glaskugelersatz hatte ich den Link auf das DemoPlugin angehängt. Genauso schaut das plugin.py aus. :D

      @Dr. Best:
      Habe das GUI restartet. Beim PluginBrowseraufruf erhalte ich nun folgende Meldung:
      Einige Plugins sind nicht verfügbar:
      DemoPlugins/StefanDemo (no module named StefanDemo.plugin) ?(

      Ich habe den Ordner DemoPlugins, der unter /usr/lib/enigma2/python/Plugins liegt beigefügt.

      Danke für Eure Hilfe! :)

      Kann es evtl. auch an der Meldung liegen, die ich bekomme bei ipkg install:
      file_move: ERROR: failed to rename /autofs/sdb1//usr/lib/ipkg/status.tmp to /autofs/sdb1//usr/lib/ipkg/status: No such file or directory

      Hatte ich bislang nicht gedacht, da das Plugin an der 'richtigen Stelle steht'.
      Habe aber das gleiche Problem mit dem CrossEPG ( Zu blöd für CrossEPG ).
      Wenn ich CrossEPG installiere per telnet bekomme ich die gleiche Meldung. Installiere ich per GUI, installiert er mit der Meldung 0 Fehler. Gehe ich dann nochmal auf OfflineInstallation schaut das Icon nicht grün, sonder blau aus, als ob es nicht installiert währe.
      Dateien
      • DemoPlugins.zip

        (1,29 kB, 426 mal heruntergeladen, zuletzt: )
      Dreambox 8000SSCC
      PanasonicTH-50PV71FA
      NETGEAR ReadyNAS Duo
      Logitec Harmony One

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von a08574 ()

    • laut Enigma2 Doku:
      ...
      8 Let's write a plugin. We call it "OurSmallTest", and it should be a test
      9 plugin. Thus we choose "DemoPlugins" as a category. The category is just to
      10 organize plugins in the filesystem.
      ...
      ...
      54 A plugin can decide where it wants to be displayed. A possible example is
      55 the plugin menu out of the main menu.
      ...
      ...

      Ich hab es dann auch unter DemoPlugin gelassen. Nur das File __init__.py habe ich mit touch leer angelegt. Danach GUI restart und siehe da, das Plugin ist im Pluginbrowser zu sehen.

      Mühselig ernährt sich das Eichhörnchen... , es tut nur nichts auch keine Ausgabe von 'Hello World'. ?(

      Aber mit Spucke und Silikon wird das irgendwann hoffendlich was ....
      Dreambox 8000SSCC
      PanasonicTH-50PV71FA
      NETGEAR ReadyNAS Duo
      Logitec Harmony One

    • def main(session, **kwargs):
      print "Hello world!"


      hast du einen init 4 gemacht und e2 aus der konsole gestartet ?
      wenn nicht siehst du den print nicht :D
      » time to say goodbye «

      Konfuzius sagt:
      Erst wenn eine Mücke auf deinen Hoden landet wirst du lernen Probleme ohne Gewalt zu lösen.