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:
Alles anzeigen
Alles anzeigen
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
- reading from device 'Flur' (b603a856d7006ce2f9f7c6032d3d8521be594afc7dd5ef62b1111111111111)
- id : b603a856d7006ce2f9f7c6032d3d8521be594afc7dd5ef62b1111111111111
- parameters
- airSwingVertical : Down
- temperature : 30.0
- power : Off
- eco : Auto
- temperatureInside : 20
- temperatureOutside : 6
- airSwingHorizontal : Mid
- mode : Heat
- fanSpeed : High
Python-Quellcode
- # -*- coding: iso-8859-1 -*-
- from Components.ActionMap import *
- from Components.Label import Label
- from Plugins.Plugin import PluginDescriptor
- from Screens.Screen import Screen
- from Tools.Directories import fileExists
- #Konstante mit dem Dateinamen
- DATAFILE = "/tmp/d1.txt"
- #die main-Funktion für den Aufruf des Plugins
- def main(session,**kwargs):
- session.open(dhtScreen)
- class dhtScreen(Screen):
- skin = """
- <screen position="center,center" size="600,100" title="dht22">
- <widget name="temp" position="0,0" size="600,25" font="Regular;18" foregroundColor="#f0f0f0" transparent="1" />
- <widget name="tempmin" position="0,25" size="600,25" font="Regular;18" foregroundColor="#f0f0f0" transparent="1" />
- <widget name="tempmax" position="0,50" size="600,25" font="Regular;18" foregroundColor="#f0f0f0" transparent="1" />
- </screen>
- """
- def __init__(self, session):
- #self.skin den obigen skin zuweisen (nicht zwingend notwendig)
- self.skin = dhtScreen.skin
- self.session = session
- #Screen initialisieren
- Screen.__init__(self, session)
- #Funktionen den einzelnen FB-Tasten zuweisen
- self['OkCancelActions'] = ActionMap(['OkCancelActions'],
- {
- "ok": self.readFile,
- "cancel": self.close,
- }, -1)
- #Labels für die Anzeige der Werte
- self['temperature'] = Label()
- self['power'] = Label()
- self['eco'] = Label()
- #Aufruf der Funktion zum Lesen der Daten
- self.readFile()
- #die Funktion zum Lesen der Daten
- def readFile(self):
- #zuerst mal prüfen, ob das File überhaupt existiert
- if fileExists(DATAFILE):
- #Einlesen des Files
- inputfile = file(DATAFILE, "r")
- #Liste, um die Werte zu speichern
- self.lines = []
- self.valueList = []
- #jede Zeile des Files einem Element zuweisen --> [line1, line2, ...]
- self.lines = inputfile.readlines()
- #loopen über das Ergebnis
- for i in range(len(self.lines)):
- #Daten auseinandernehmen
- elements = self.lines[i].strip("\n").split(":")
- #Falls mehrere Lines enthalten sind, dann muss hier noch weitere Logik rein
- #Abfrage, ob 3 Elemente enthalten sind
- if len(elements) > 20:
- #Zuweisen der Texte
- self['temperature'].setText(elements[6])
- self['power'].setText(elements[8])
- self['eco'].setText(elements[10])
- print self['temperature'].value
- print self['power'].value
- print self['eco'].value
- inputfile.close()
- def Plugins(**kwargs):
- return [PluginDescriptor(name='DHT22', description='DHT22', where = [PluginDescriptor.WHERE_PLUGINMENU], fnc=main)]