Beiträge von TheDOC

    "spartanische Dreamville Homepage" - PFFFT. :winking_face:


    Nur zur Info: Ich benutze die Box ja auch privat. Und sobald mir die Sache einigermaßen stabil vorkommt und keine gravierenden Mängel bei mir im Privatbetrieb auftreten, drück ich kurz auf den Dreamville-Update-Knopf. Und bald ist es glaub ich wieder soweit. :winking_face:


    Zu der Kritik, dass Dream das machen sollte: Ich finde es gut, dass es von Dream nur stabile (streitbarer Begriff ;)) Images gibt. Diese Images werden normalerweise von Horden von Betatestern getestet und für supertoll befunden. Ich weiß auch sonst keinen Hersteller (na gut, einige fallen mir schon ein ;)), der Beta-Firmware unter's Volk schmeißt für seine Hardware.


    Naja, die meisten sehen auch durch's CVS, die Dreamville-Updates/-Images oder durch diverse andere Images, dass wir fleißig am entwickeln sind und die Box langsam wirklich benutzbar wird.


    Dreamville ist fast vollständig automatisiert, da geht also keine Entwicklungszeit drauf bei, also keine Angst. :winking_face:

    Python ist supereinfach. Es gibt glaub ich mindestens genausoviele Funktionen wie in PHP. Man muss sie nur finden. :winking_face:


    Zu den Plugins:
    Grundsätzlich liegen die Plugins in /usr/lib/enigma2/python/Plugins. Dort dann halt entsprechend den vorhandenen Unterverzeichnissen ein Verzeichnis für das neue Plugin anlegen. In dem Verzeichnisse müssen sein:
    __init__.py (kann leer sein. wird aber benötigt, da Python das Verzeichnis sonst nicht als Modul erkennt)
    plugin.py (das Hauptskript für jedes Plugin)


    plugin.py muss endhalten:


    Der Filemanager ruft dann, wenn man auf den Menüpunkt "File-Manager" im Plugin-Menü geht, die Funktion "main" auf. Die muss so aussehen:


    Code
    def main(session, **kwargs): # **kwargs einfach ignorieren, s.o. *** 
      <code...>


    Der session-Parameter enthält dann die Session, welche man z.B. zum Erstellen von Screen braucht.


    Will man dann in <code> einen Screen aufrufen, macht man das so:


    Code
    session.open(<screen>)


    So ein Screen ist eigentlich immer recht einheitlich aufgebaut, Beispiel Filemanager:



    skin = ... definiert einen lokalen Skin in diesem Plugin. Die Syntax entspricht der in skin.xml, bis auf den Screen-Namen, der wird hier nicht benötigt. Dann haben wir die Konstruktor-Methode __init__, welche dann den Screen-Konstruktor mit gleichen Parametern aufruft, da FileManager von Skin abgeleitet ist. Die Widgets, die wir im Skin definiert haben, sind noch leer. Diese werden dann in den nächsten Zeilen mit Funktion gefüllt:


    Code
    self["pixmap"] = Pixmap() <-- das erstellt zum Beispiel ein Bild
    self["list"] = FileList("/", matchingPattern = "^.*\.(png|avi|mp3|mpeg|ts)") <-- das eine in der gleichen Datei definierte FileListe.


    Als nächstes wird noch angegeben, was bei Tastendrücken passieren soll. Dafür sind die Actionmaps da.


    Code
    self["actions"] = NumberActionMap(["WizardActions", "InputActions"] <-- wir benutzen aus der keymap.xml-Datei die Abschnitte "WizardActions" und "InputAction"


    Für die in der keymap.xml definierten Tastendrücke wird dann im folgenden angegeben, welche Methode der Klasse bei welchem Tastendruck aufgerufen werden soll. Also z.B. "ok": self.ok ruft die Methode 'ok' auf, wenn man auf die Taste, die in der Keymap.xml als Action "ok" hat, gedrückt wird.


    Das nur als kurze Einführung. Wenn was nicht läuft, poste einfach mal die Sourcen und die Fehlermeldungen, dann kann ich sicher helfen. :smiling_face:



    Edit by tmbinc: ***-änderungen hinzugefügt

    Also: Wenn die Plugins nicht auftauchen, dann kann das mehrere Ursachen haben. Am einfachsten kann man ein Plugin neu installieren, indem man es mit Rot entfernt und mit Grün dann einfach nochmal installiert. Das hilft in 90% der Fälle schon. Ursache bisher unbekannt. :confused_face: Was ich auch mal hatte, dass IPKG die Plugins auf eine eingeschobene CF-Karte installiert hat und die damit im falschen Verzeichnis gelandet sind...


    Es gibt Plugins, die tauchen nicht in der Liste auf (z.b. das Webplugin). Da werde ich mir nochmal was intuitiveres zu einfallen lassen müssen. Wenn man Rot drückt, sieht man aber alle installierten Plugins. :smiling_face:


    Das Webinterface geht mangels Twisted noch nicht (und wenn Twisted aktiv ist, hat man noch paar Bugs (z.B. kann man die Box dann nicht mehr runterfahren per Menü)).


    Mp3 und Mpeg2 (also != .ts) abspielen geht leider immernoch nicht. Vermisse ich aber auch. :winking_face:

    Dreamville-Updates bringen im Moment eh nix, weil ich im Moment nicht upaten kann. Auf einer Box habe ich noch arge Probleme mit dem Softwareupdate und solange da der Fehler nicht gefunden wurde, sind mir die Pakete nicht stabil genug, um veröffentlicht zu werden. Kann sich nur noch um Tage handeln. :winking_face:

    Also ich würde den Rest einfach ignorieren. Einfach den Sat einstellen, dann die LNB-Nummer und die Stored Position, die halt dein Rotor gespeichert hat. Dann alles übernehmen.


    Du solltest ein aktuelles E2 draufhaben (von den Dreamville-Paketen z.B.), in alten war noch ein Bug im Advanced Setup.

    Hallo,


    so, die Dreamville-Pakete gehen nun wieder. Auf http://dm7025.dreamville.de gibt es nun einen vollständigen Paketfeed mit allerneusten Treibern (mit denen Videotext-Reinsertion und ein experimentelles Timeshifting geht etc.) und aktuellem Enigma2.


    Als Warnung vorweg: Es kann schiefgehen! :winking_face:


    Was ihr tun müsst:
    Einfach von http://dm7025.dreamville.de/images/ ein Image ziehen. Dann auf der Box Menü -> Spiele/Erweiterungen -> Softwareupdate -> Image-Aktualisierung machen und dann den Anweisungen folgen (Settings sichern und so, wenn ihr nach dem Update nicht neu scannen wollt).


    Wenn ihr das einmal erfolgreich gemacht habt, könnt ihr wieder das Update-Plugin benutzen, um neue Versionen zu bekommen.


    Bitte gebt mir eine Rückmeldung, ob es funktioniert.


    So far,
    TheDOC

    Einfach das /etc/enigma2 Verzeichnis komplett backuppen, dann neues Image einspielen und alle daten zurückspielen. Dann per Telnet auf die Box und "killall enigma2" eingeben. Dann sollte Enigma 2 neu starten (kann ein paar Sekündchen dauern) und die alten Einstellungen sollten wieder verfügbar sein.