Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

OE2.5 - Renderer kompilieren

  • Ich mir ein paar uralt free Renderer von Vali ( YOURSKINUserFile.py ) im OE2.0 "umgebogen" um mir ein paar Zusatzinfos in der Infobar anzeigen zu lassen, u.a. Luftfeuchtigkeit und Temperatur im Keller mit einem Raspberry Pi und einem AM2302/DHT22 Sensor gemessen. Der Renderer hat im OE2.0 einwandfrei funktioniert. Jetzt wollte ich ihn mir auf der DM900 anpassen, jedoch wird bei einem Enigma2 Neustart keine neue .pyo erzeugt.


    Schiebe ich die DHT22Hum.py auf eine Box mit OE2.0 nach /usr/lib/enigma2/python/Components/Renderer wird die DHT22Hum.pyo beim Enigma2 Neustart kompilliert und funktioniert dann auch auf der DM900. Was hat sich zwischen OE2.0 und OE2.5 geändert, dass das Kompilieren der .pyo nicht mehr funktoniert bzw. was muss ich anpassen?


    Ich weiß, schön sieht anders aus ... :D


    im der Datei dht22.log stehen Humidity und Temperature in dem Format:
    57.10% 17.50°C


    Humidity und Temperature lese ich dann mit zwei Renderen aus, damit ich die beiden Werte besser in der Infobar unterbringe


    /usr/lib/enigma2/python/Components/Renderer/DHT22Hum.py

  • Moin, es scheint so das in diesem Ordner keine *.pyo kompiliert werden, ich habe mal ne andere .py rein kopiert, geht auch nicht. (DM900)
    Andersrum, also die DHT22Hum.py umbenannt in plugin.py und in einem Plugin-Ordner, wird es kompiliert.

  • Ich mir ein paar uralt free Renderer von Vali ( YOURSKINUserFile.py ) im OE2.0 "umgebogen" um mir ein paar Zusatzinfos in der Infobar anzeigen zu lassen, u.a. Luftfeuchtigkeit und Temperatur im Keller mit einem Raspberry Pi und einem AM2302/DHT22 Sensor gemessen. Der Renderer hat im OE2.0 einwandfrei funktioniert. Jetzt wollte ich ihn mir auf der DM900 anpassen, jedoch wird bei einem Enigma2 Neustart keine neue .pyo erzeugt.


    Wenn keine pyo erzeugt wird ist das meistens ein Anzeichen, dass es einen Fehler während der Kompilierung gab. Ein Enigma2-Log während des Startvorgangs würde da vermutlich weiterhelfen.


    Moin, es scheint so das in diesem Ordner keine *.pyo kompiliert werden, ich habe mal ne andere .py rein kopiert, geht auch nicht. (DM900)


    Es werden nur Dateien kompiliert, wenn die Klassen darinnen auch tatsächlich irgendwo verwendet werden oder wenn diese von anderen Dateien referenziert wurden. Also einfach mal eine Python Datei da abzulegen bewirkt keine automatische Kompilierung.

  • Wenn keine pyo erzeugt wird ist das meistens ein Anzeichen, dass es einen Fehler während der Kompilierung gab. Ein Enigma2-Log während des Startvorgangs würde da vermutlich weiterhelfen.


    Moin, aber ein Fehler kann ja nicht drin sein, es wurde ja als "plugin" /im Ordner /Extensions kompiliert. Ja klar war das dann nicht ausführbar, ist ja auch ein Render.

  • Ich kann Dir das so nicht sagen...Du wirst irgendwas vermutlich falsch machen, im Plugin Verzeichnis kann man einen Renderer ja eh nicht ausführen, sprich da kann nichts im Skin angezeigt werden.
    Vielleicht hast Du auch im Skin was falsch gemacht, so dass diese Datei gar nicht genommen wird? Es gibt viele Möglichkeiten, und solange Du da nicht mehr Infos lieferst bleibt das ein Rätselraten ;)


    Kompiliert werden übrigens Python-Dateien in Extensions immer, weil Enigma2 direkt, sofern eine init-Datei vorliegt, darauf eine Referenz macht, dadurch wird das kompiliert...aber wie gesagt: im Skin solltest Du so eigentlich nichts sehen...

  • Nee, da haben wir uns missverstanden, ich meint das sich der Render im Pluginordner kömpilieren lässt, und somit im Code kein Fehler sein sollte.

  • Wir haben uns nicht missverstanden. Ich habe begriffen, was Du geschrieben hast :)


    Vielleicht hast Du auch im Skin was falsch gemacht, so dass diese Datei gar nicht genommen wird? Es gibt viele Möglichkeiten, und solange Du da nicht mehr Infos lieferst bleibt das ein Rätselraten

  • Jepp!


    \\Edit
    Koepi hat nur "unterstützend" eingegeriffen (thanks for that)


    die /usr/lib/enigma2/python/Components/Renderer/DHT22Hum.py wird unter OE2.0 beim E2-Neustart kompiliert, unter OE2.5 nicht. Funktioniert aber, wenn ich dann .pyo nach dem kompilieren von der DM800SE auf die DM900 ins Renderer Verzeichnis schiebe und in der (Nuke.HD) skin.xml aufrufe.


    Und ja, den Renderer habe ich in der skin.xml zum Zeitpunkt des E2 Neustarts noch nicht eingebaut bzw. wieder entfernt, weil mir beim E2 Neustart E2 wg. dem Skin Error gecrasht ist, weil die .pyo nicht erzeugt wurde ...


    Kann sein, dass ich beim 1. Versuch einen Fehler eingebaut hatte, aber ich kann es heute abend ja nochmal versuchen. Also den Aufruf den Renders in der skin.xml lassen, die .pyo löschen und E2 neu starten. Mal sehen was passiert ...

  • Wenn keine pyo erzeugt wird ist das meistens ein Anzeichen, dass es einen Fehler während der Kompilierung gab. Ein Enigma2-Log während des Startvorgangs würde da vermutlich weiterhelfen.



    Es werden nur Dateien kompiliert, wenn die Klassen darinnen auch tatsächlich irgendwo verwendet werden oder wenn diese von anderen Dateien referenziert wurden. Also einfach mal eine Python Datei da abzulegen bewirkt keine automatische Kompilierung.


    Du hattest (wieder mal ;-) ) recht


    die .pyo gelöscht und den Aufruf des Renderer in der skin.xml belassen und E2 neu gestartet. Die .pyo wurde kompiliert und die gewünschte Anzeige in der Infobar passt auch.


    Gestern war ich mir nahezu sicher, dass die .pyo im OE2.0 damals ohne Aufruf in der skin.xml kompiliert wurde. Also erst mal testen ob der code passt ohne einen Dauer-GS zu erhalten weil der Aufruf im skin knallt. Aber jetzt bin ich mir nicht mehr so sicher ...


    Jedenfalls wieder etwas dazu gelernt