Werte auslesen

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

    • Werte auslesen

      Hallo VUler,

      ich habe jetzt nach langer suche was gefunden was passen könnte aber ich bekomme immer ein Fehler in Zeile 69.
      Kann da mal jemand drüber gucken und evtl. ein tipp geben warum ich keine Werte angezeigt bekomme?`


      mein d1.txt sieht so aus:

      Quellcode

      1. reading from device 'Flur' (b603a856d7006ce2f9f7c6032d3d8521be594afc7dd5ef62b1111111111111)
      2. id : b603a856d7006ce2f9f7c6032d3d8521be594afc7dd5ef62b1111111111111
      3. parameters
      4. airSwingVertical : Down
      5. temperature : 30.0
      6. power : Off
      7. eco : Auto
      8. temperatureInside : 20
      9. temperatureOutside : 6
      10. airSwingHorizontal : Mid
      11. mode : Heat
      12. fanSpeed : High
      Alles anzeigen



      Python-Quellcode

      1. # -*- coding: iso-8859-1 -*-
      2. from Components.ActionMap import *
      3. from Components.Label import Label
      4. from Plugins.Plugin import PluginDescriptor
      5. from Screens.Screen import Screen
      6. from Tools.Directories import fileExists
      7. #Konstante mit dem Dateinamen
      8. DATAFILE = "/tmp/d1.txt"
      9. #die main-Funktion für den Aufruf des Plugins
      10. def main(session,**kwargs):
      11. session.open(dhtScreen)
      12. class dhtScreen(Screen):
      13. skin = """
      14. <screen position="center,center" size="600,100" title="dht22">
      15. <widget name="temp" position="0,0" size="600,25" font="Regular;18" foregroundColor="#f0f0f0" transparent="1" />
      16. <widget name="tempmin" position="0,25" size="600,25" font="Regular;18" foregroundColor="#f0f0f0" transparent="1" />
      17. <widget name="tempmax" position="0,50" size="600,25" font="Regular;18" foregroundColor="#f0f0f0" transparent="1" />
      18. </screen>
      19. """
      20. def __init__(self, session):
      21. #self.skin den obigen skin zuweisen (nicht zwingend notwendig)
      22. self.skin = dhtScreen.skin
      23. self.session = session
      24. #Screen initialisieren
      25. Screen.__init__(self, session)
      26. #Funktionen den einzelnen FB-Tasten zuweisen
      27. self['OkCancelActions'] = ActionMap(['OkCancelActions'],
      28. {
      29. "ok": self.readFile,
      30. "cancel": self.close,
      31. }, -1)
      32. #Labels für die Anzeige der Werte
      33. self['temperature'] = Label()
      34. self['power'] = Label()
      35. self['eco'] = Label()
      36. #Aufruf der Funktion zum Lesen der Daten
      37. self.readFile()
      38. #die Funktion zum Lesen der Daten
      39. def readFile(self):
      40. #zuerst mal prüfen, ob das File überhaupt existiert
      41. if fileExists(DATAFILE):
      42. #Einlesen des Files
      43. inputfile = file(DATAFILE, "r")
      44. #Liste, um die Werte zu speichern
      45. self.lines = []
      46. self.valueList = []
      47. #jede Zeile des Files einem Element zuweisen --> [line1, line2, ...]
      48. self.lines = inputfile.readlines()
      49. #loopen über das Ergebnis
      50. for i in range(len(self.lines)):
      51. #Daten auseinandernehmen
      52. elements = self.lines[i].strip("\n").split(":")
      53. #Falls mehrere Lines enthalten sind, dann muss hier noch weitere Logik rein
      54. #Abfrage, ob 3 Elemente enthalten sind
      55. if len(elements) > 20:
      56. #Zuweisen der Texte
      57. self['temperature'].setText(elements[6])
      58. self['power'].setText(elements[8])
      59. self['eco'].setText(elements[10])
      60. print self['temperature'].value
      61. print self['power'].value
      62. print self['eco'].value
      63. inputfile.close()
      64. def Plugins(**kwargs):
      65. return [PluginDescriptor(name='DHT22', description='DHT22', where = [PluginDescriptor.WHERE_PLUGINMENU], fnc=main)]
      Alles anzeigen
    • Das wird wohl ein Fehler bei der Einrücktiefe sein. Die Zeile 66 sollte genauso weit eingerückt sein wie Zeile 69.

      Angezeigt werden dir wohl aus zwei Gründen keine Werte: dein Text-File hat keine Zeile mit 20 Doppelpunkten, und deine Label sind im Screen nicht zugeordnet.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.