Hallo,
evtl kann mir hier Jemand weiterhelfen, wie die Plugingeschichte genau funktioniert.
Ich habe ein Plugin geschrieben, welches die Daten vom Tado Heizungssteuerungssystem ausliest. Mir ist aber total unverständlich wie ich jetzt zb. den Temperaturwert an das Item bringe. Ich schlage mich jetzt seit 2 Wochen damit rum und bekomme immer wieder andere Fehlermeldungen.
Unten stehendes ist jetzt sicherlich nicht schön ( bin halt kein Programmierer) aber wenn ich den Code so ausführe, bekomme ich einen Jsonstring zurueck und mit:
tt = jsonData['insideTemp'] steht auch der Temperaturwert in tt
Beim Start von smarthome.py -d gibt es beim einlesen des Plugins keinerlei Fehlermeldungen. Es wird auch alle 30 Sekunden ausgeführt.
Nun zu meiner Verständnisfrage:
Wie komme ich an den Wert oder anders , wie kommt das Item an den Wert? Ich hab das auch schon ueber eine logik probiert aber dort kommen dann untenstehende Fehlermeldungen. Die Fehlermeldung ist nur ein Beispiel. Ändere ich etwas kommte wieder eine andere Fehlermeldung.
Es wäre gut wenn ich verstehen könnte wie die Kommunikation dort abläuft
Ich sage schonmal viele herzlichen dank und evtl kann mir Jemand den fehlenden Schubser geben. Und ja , da stehen an manchen Stellen bestimmt noch Einträge, die letztendlich nicht gebraucht werden
Plugincode:
Plugin.conf:
Item.conf
evtl kann mir hier Jemand weiterhelfen, wie die Plugingeschichte genau funktioniert.
Ich habe ein Plugin geschrieben, welches die Daten vom Tado Heizungssteuerungssystem ausliest. Mir ist aber total unverständlich wie ich jetzt zb. den Temperaturwert an das Item bringe. Ich schlage mich jetzt seit 2 Wochen damit rum und bekomme immer wieder andere Fehlermeldungen.
Unten stehendes ist jetzt sicherlich nicht schön ( bin halt kein Programmierer) aber wenn ich den Code so ausführe, bekomme ich einen Jsonstring zurueck und mit:
tt = jsonData['insideTemp'] steht auch der Temperaturwert in tt
Beim Start von smarthome.py -d gibt es beim einlesen des Plugins keinerlei Fehlermeldungen. Es wird auch alle 30 Sekunden ausgeführt.
Nun zu meiner Verständnisfrage:
Wie komme ich an den Wert oder anders , wie kommt das Item an den Wert? Ich hab das auch schon ueber eine logik probiert aber dort kommen dann untenstehende Fehlermeldungen. Die Fehlermeldung ist nur ein Beispiel. Ändere ich etwas kommte wieder eine andere Fehlermeldung.
Es wäre gut wenn ich verstehen könnte wie die Kommunikation dort abläuft
Ich sage schonmal viele herzlichen dank und evtl kann mir Jemand den fehlenden Schubser geben. Und ja , da stehen an manchen Stellen bestimmt noch Einträge, die letztendlich nicht gebraucht werden
Plugincode:
Code:
#!/usr/bin/env python3
import logging
import time
import urllib.request
import urllib.parse
import json
logger = logging.getLogger('tado')
class tado():
def __init__(self, smarthome):
self._sh = smarthome
def parse_item(self, item):
return None
def parse_logic(self, logic):
return None
def read_data(self):
params = urllib.parse.urlencode({'username': 'user', 'password': 'passwort'})
f = urllib.request.urlopen("https://my.tado.com/mobile/1.5/getCurrentState?%s" % params)
data = (f.read().decode('utf-8'))
jsonData = json.loads(data)
tt = jsonData['insideTemp']
def temperatur(self, temperatur):
temperatur = self.tt
return ()
def parse_logic(self, logic):
pass
def run(self):
self.alive = True
def stop(self):
self.alive = False
Code:
[tado]
class_name = tado
class_path = plugins.tado
Code:
[Tado]
name = Tado
[[Temperatur]]
name = Temperatur
type = num
visu_acl = r
sqlite = yes
enforce_updates = true
eval = sh.Tado.Temperatur()
cycle = 30
Code:
#!/usr/bin/env python
# vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab
#########################################################################
#
# logics/tado.py
#
temperatur = sh.tado.temperatur('tt')
#if "insideTemp" in temperatur:
sh.tado.temperatur('tt')
Code:
2015-01-05 14:16:00,079 ERROR Tado Logic: Tado, File: /usr/smarthome/plugins/tado/__init__.py, Line: 53, Method: temperatur, Exception: 'tado' object has no attribute 'tt' -- scheduler.py:_task:334
Traceback (most recent call last):
File "/usr/smarthome/lib/scheduler.py", line 327, in _task
exec(obj.bytecode)
File "/usr/smarthome/logics/tado.py", line 7, in <module>
temperatur = sh.tado.temperatur('tt')
File "/usr/smarthome/plugins/tado/__init__.py", line 53, in temperatur
temperatur = self.tt
AttributeError: 'tado' object has no attribute 'tt'


Kommentar