Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13
  1. #1
    VIP Avatar von Fred Bogus Trumper
    Registriert seit
    Feb 2008
    Beiträge
    988
    Box(en):  DM900ultraHD  DM7020HD  DM800se 

    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 ...

    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
    Code:
    # -*- coding: utf-8 -*-
    #
    #    UserFile Renderer for Dreambox/Enigma-2
    #    Coded by Vali (c)2010
    #    Support: www.dreambox-tools.info
    #
    #
    #  This plugin is licensed under the Creative Commons 
    #  Attribution-NonCommercial-ShareAlike 3.0 Unported License.
    #  To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/
    #  or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
    #
    #  Alternatively, this plugin may be distributed and executed on hardware which
    #  is licensed by Dream Multimedia GmbH.
    #
    #
    #  This plugin is NOT free software. It is open source, you are allowed to
    #  modify it (if you keep the license), but it may not be commercially 
    #  distributed other than under the conditions noted above.
    #
    #
    #######################################################################
    #
    #  YOU HAVE TO SETUP USERFILENAME BY YOURSELF!!!! Line 38!
    #
    ######################################################################
    #
    #  modified by Fred Bogus Trumper 
    #
    
    
    from Components.VariableText import VariableText
    from enigma import eLabel
    from Renderer import Renderer
    from Tools.Directories import fileExists
    from os import popen, system
    from Components.config import config
    
    
    class DHT22Hum(Renderer, VariableText):
            def __init__(self):
                    Renderer.__init__(self)
                    VariableText.__init__(self)
                    self.USERFILE = "/media/RPi2/dht22.log"
            GUI_WIDGET = eLabel
    
            def changed(self, what):
                    if not self.suspended:
                            userLine = "n/a"
                            if fileExists(self.USERFILE):
                                    try:
                                            myuf = "tail -n 1 /media/RPi2/dht22.log|awk '{print $1}'"
                                            userLine = popen(myuf).readline()
                                    except:
                                            userLine = "ERR"
                            self.text = userLine
    
            def onShow(self):
                    self.suspended = False
                    self.changed(None)
    
            def onHide(self):
                    self.suspended = True
    Geändert von Fred Bogus Trumper (8. October 2017 um 21:01 Uhr)
    Gruß Fred

  2. #2
    VIP Avatar von koepi
    Registriert seit
    Dec 2011
    Ort
    Lünen
    Beiträge
    1.101
    Box(en):  DM900ultraHD  DM7080HD  DM800sev2 
    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.
    Gruß
    Koepi
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    Kein Support per PN (PrivaterNachricht), dafür ist das Board da.

  3. #3
    VIP Avatar von Fred Bogus Trumper
    Registriert seit
    Feb 2008
    Beiträge
    988
    Box(en):  DM900ultraHD  DM7020HD  DM800se 
    danke, auf die Idee bin ich nicht gekommen

    das ist zumindest ein workaround

    thx
    Gruß Fred

  4. #4
    Administrator Avatar von Dr.Best
    Registriert seit
    Sep 2005
    Beiträge
    12.865
    Box(en):  DM900ultraHD  DM525  DM520  DM820HD  DM7080HD  DM7020HD  DM500HD  DM800se  DM8000  DM800  DM7025  DM600  DM7020  DM7000  DM500+ 
    Zitat Zitat von Fred Bogus Trumper Beitrag anzeigen
    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.

    Zitat Zitat von koepi Beitrag anzeigen
    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.


  5. #5
    VIP Avatar von koepi
    Registriert seit
    Dec 2011
    Ort
    Lünen
    Beiträge
    1.101
    Box(en):  DM900ultraHD  DM7080HD  DM800sev2 
    Zitat Zitat von Dr.Best Beitrag anzeigen
    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.
    Gruß
    Koepi
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    Kein Support per PN (PrivaterNachricht), dafür ist das Board da.

  6. #6
    Administrator Avatar von Dr.Best
    Registriert seit
    Sep 2005
    Beiträge
    12.865
    Box(en):  DM900ultraHD  DM525  DM520  DM820HD  DM7080HD  DM7020HD  DM500HD  DM800se  DM8000  DM800  DM7025  DM600  DM7020  DM7000  DM500+ 
    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...


  7. #7
    VIP Avatar von koepi
    Registriert seit
    Dec 2011
    Ort
    Lünen
    Beiträge
    1.101
    Box(en):  DM900ultraHD  DM7080HD  DM800sev2 
    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.
    Gruß
    Koepi
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    Kein Support per PN (PrivaterNachricht), dafür ist das Board da.

  8. #8
    Administrator Avatar von Dr.Best
    Registriert seit
    Sep 2005
    Beiträge
    12.865
    Box(en):  DM900ultraHD  DM525  DM520  DM820HD  DM7080HD  DM7020HD  DM500HD  DM800se  DM8000  DM800  DM7025  DM600  DM7020  DM7000  DM500+ 
    Wir haben uns nicht missverstanden. Ich habe begriffen, was Du geschrieben hast

    Zitat Zitat von Dr.Best Beitrag anzeigen
    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


  9. #9
    VIP Avatar von koepi
    Registriert seit
    Dec 2011
    Ort
    Lünen
    Beiträge
    1.101
    Box(en):  DM900ultraHD  DM7080HD  DM800sev2 
    Mmmm, Eigendlich wollte ich Fred nur eine Hilfestellung geben, das er den Code halt auch so kompiliren kann.
    Gruß
    Koepi
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    Kein Support per PN (PrivaterNachricht), dafür ist das Board da.

  10. #10
    VIP Avatar von Fred Bogus Trumper
    Registriert seit
    Feb 2008
    Beiträge
    988
    Box(en):  DM900ultraHD  DM7020HD  DM800se 
    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 ...
    Geändert von Fred Bogus Trumper (9. October 2017 um 13:41 Uhr)
    Gruß Fred

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •