Suche Syntaxfehler in Converter

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

    • Suche Syntaxfehler in Converter

      Hallo Bastler,

      ich versuche mir gerade einen kleinen Converter zu schreiben, aber die .py wird einfach nicht übersetzt beim starten der Box. Nun schaue ich schon 2h auf den Code und kann den Fehler einfach nicht finden. Also die .py liegt im Converter-Ordner. Zeilenende ist LF.


      Python-Quellcode

      1. # -*- coding: utf-8 -*-
      2. from Components.Converter.Converter import Converter
      3. from Components.Element import cached
      4. from twisted.web.client import getPage
      5. from xml.dom.minidom import parseString
      6. class VumaticC(Converter, object):
      7. def __init__(self, type):
      8. Converter.__init__(self, type)
      9. self.type = type
      10. global value
      11. @cached
      12. def getText(self):
      13. url = "http://192.168.2.4/config/xmlapi/state.cgi?datapoint_id=" + str(self.type) + "%22&format=xml"
      14. data = getPage(url,method = "GET").addCallback(self.GotData).addErrback(self.DataError)
      15. return str(value)
      16. text = property(getText)
      17. def GotData(self, data = None):
      18. if data is not None:
      19. dom = parseString(data)
      20. state = dom.getElementsByTagName("datapoint")
      21. for states in state:
      22. value = states.getAttribute("value")
      23. else:
      24. value = 0
      25. def DataError(self, error = None):
      26. pass
      Alles anzeigen
      Vielleicht kann mir ja jemand sagen was hier falsch sein soll.
      Danke für Eure Hilfe.
      Wer einfach Danke sagen und meine Projekte unterstützen möchte: Amazon-Gutschein an - thomas.siegel@ts-myinter.net - ist immer herzlich Willkommen!
      Projekte : VuMatic-Smarthome-Center, VWeather3, AdvancedEventLibrary, TVDbInfo
    • In so einem Falle vielleicht das VTI-Debug mal auf Datei stellen in einen GUI-Neustart.
      dann sollte in dem Debug-log evtl. auch ein Hinweis zu finden sein, wo's klemmt.

      was mir so grad auffällt : du hast die defs für "GotData" und "DataError" weit hinten definiert ... ich bin ja auch kein python Experte, aber hast du es schon mal probiert, diese beiden defs VOR dem "@cached" einzubauen ?
    • Hab die VuMaticC.py jetzt einfach mal in meinen Plugin-Ordner kopiert. Und siehe da sie wird sofort compiliert. Komisch. :think1:
      Jetzt hab ich die VuMaticC.pyo in den Converter-Ordner kopiert und nun haberts aber beim Skinnen.
      Kann das so überhaupt funktionieren?

      XML-Quellcode

      1. <widget backgroundColor="#0016222e" font="Normal;28" foregroundColor="foreground" halign="left" position="900,10" render="Label" size="300,35" source="global.CurrentTime" transparent="1">
      2. <convert type="VuMaticC">2053</convert>
      3. </widget>
      Wer einfach Danke sagen und meine Projekte unterstützen möchte: Amazon-Gutschein an - thomas.siegel@ts-myinter.net - ist immer herzlich Willkommen!
      Projekte : VuMatic-Smarthome-Center, VWeather3, AdvancedEventLibrary, TVDbInfo

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

    • Werd ich heute Abend mal versuchen. Könnte natürlich sein, dass man type als String übergeben muss.
      Wer einfach Danke sagen und meine Projekte unterstützen möchte: Amazon-Gutschein an - thomas.siegel@ts-myinter.net - ist immer herzlich Willkommen!
      Projekte : VuMatic-Smarthome-Center, VWeather3, AdvancedEventLibrary, TVDbInfo
    • Was mir als erstes auffällt ...

      tsiegel schrieb:

      Hab die VuMaticC.py

      <widget backgroundColor="#0016222e" font="Normal;28" foregroundColor="foreground" halign="left" position="900,10" render="Label" size="300,35" source="global.CurrentTime" transparent="1">
      <convert type="VuMaticC">2053</convert>
      </widget>
      und class VumaticC(Converter, object):

      passen einfach nicht zusammen.
      Richtig wäre:
      class VuMaticC(Converter, object):

      Bei diesem Groß/Kleinschreibungsfehler wird der Skin das erste mal verzweifeln.

      In getText wird str(value) dann scheitern, weil value noch nicht definiert ist.

      Dein "global value" in __init__ sagt mir, daß du die Variable global nutzen möchtest.
      Das geht nätürlich, muss aber in GotData und getText auch umgesetzt werden.
      value muss einfach nur irgendwo mal initilisiert werden, bevor es verwendet wird.

      Danach sollte der Skin bereits laufen.

      Ich habe value jetzt in jeder Routine eine eigenen Vorgabewert verpasst, damit man beim Testen sieht, wo der Wert herkommt.
      Der folgende Quelltest funktioniert auf meiner Box:


      Python-Quellcode

      1. from Components.Converter.Converter import Converter
      2. from Components.Element import cached
      3. from twisted.web.client import getPage
      4. from xml.dom.minidom import parseString
      5. class VuMaticC(Converter, object):
      6. def __init__(self, type):
      7. Converter.__init__(self, type)
      8. self.type = type
      9. global value
      10. value=-2
      11. @cached
      12. def getText(self):
      13. global value
      14. url = "http://192.168.2.4/config/xmlapi/state.cgi?datapoint_id=" + str(self.type) + "%22&format=xml"
      15. data = getPage(url,method = "GET").addCallback(self.GotData).addErrback(self.DataError)
      16. return str(value)
      17. text = property(getText)
      18. def GotData(self, data = None):
      19. global value
      20. if data is not None:
      21. value = -3
      22. dom = parseString(data)
      23. state = dom.getElementsByTagName("datapoint")
      24. for states in state:
      25. value = states.getAttribute("value")
      26. else:
      27. value = 0
      28. def DataError(self, error = None):
      29. global value
      30. value=-1
      Alles anzeigen
    • @n020222
      Auch von mir vielen vielen Dank. :thumbsup:
      Man sollte halt den Laptop auch mal zuklappen, wenn man die Buchstaben nicht mehr erkennt.
      Wer einfach Danke sagen und meine Projekte unterstützen möchte: Amazon-Gutschein an - thomas.siegel@ts-myinter.net - ist immer herzlich Willkommen!
      Projekte : VuMatic-Smarthome-Center, VWeather3, AdvancedEventLibrary, TVDbInfo