Hallo zusammen,
ich suche nach einer Möglichkeit Werte, die ich mittels python Skript aus einer MySQL-Datenbank ausgelesen und z.T. Weiterverarbeitet habe an smarthome zu übergeben (Zum Verständnis: es handelt sich um Stromaufnahme und Wärmeerzeugung). Diese Werte sollten alle 30 Minuten aktualisiert werden (Kürzeres Intervall möglich, In dem Bereich aber wenig sinnvoll).
Ich denke ich muss eine items.conf anlegen die in etwa so aussehen wird:
Wie kann ich aber die Werte aus meinem Auswerteskript nun an die Items binden und aktualisieren? Kann ich das mit einer Logic machen, und wie muss diese aufgebaut sein. Hier noch das Skript zum Auslesen der Datenbank.
Vielen Dank für die Hilfe!
Stefan
ich suche nach einer Möglichkeit Werte, die ich mittels python Skript aus einer MySQL-Datenbank ausgelesen und z.T. Weiterverarbeitet habe an smarthome zu übergeben (Zum Verständnis: es handelt sich um Stromaufnahme und Wärmeerzeugung). Diese Werte sollten alle 30 Minuten aktualisiert werden (Kürzeres Intervall möglich, In dem Bereich aber wenig sinnvoll).
Ich denke ich muss eine items.conf anlegen die in etwa so aussehen wird:
Code:
[Zaehlerstaende] [[wphtakt]] name = aktueller Zählerstand WP HT type = num [[wpntakt]] name = aktueller Zählerstand WP NT type = num [[wphtbw]] name = Zählerstand WP HT vor einer Woche type = num . . .
Code:
#! /usr/bin/python from datetime import datetime from time import * import time import MySQLdb #channel id = 3 ist Waermepumpe HT id = 4 Waermepumpe NT #Variablendefinition dt = datetime.now() lt = localtime() year, month, day = lt[0:3] dtyearbegin = datetime(year, 1, 1) utakt = time.mktime(dt.timetuple()) * 1000 utminusweek = utakt - (7 * 86400000) utminusmonth = utakt - (30 * 86400000) utminusyear = utakt - (365 * 86400000) utyearbegin = time.mktime(dtyearbegin.timetuple()) * 1000 UTYearBegin = str(utyearbegin) UTminusWeek = str(utminusweek) UTminusMonth = str(utminusmonth) UTminusYear = str(utminusyear) UTakt = str(utakt) print("UTminusYear:" , UTminusYear) print("UTYearBegin:" , UTYearBegin) connection = MySQLdb.connect( host="127.0.0.1", db="database", user="user", passwd="passwd" ) cursor = connection.cursor() #Stromzaehler WP zu den Zeitpunkten jetzt, vor einer Woche, Vor einem Monat, Jahresbeginn auslesen cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTminusMonth + """ and channel_id = 4 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPNTutminusmonth = value cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTminusWeek + """ and channel_id = 4 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPNTutminusweek = value cursor.execute("""SELECT * FROM `data` where `timestamp` < """ + UTakt + """ and channel_id = 4 order by `timestamp` desc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPNTutakt = value cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTminusYear + """ and channel_id = 4 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPNTutminusyear = value cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTYearBegin + """ and channel_id = 4 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPNTutyearbegin = value cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTminusMonth + """ and channel_id = 3 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPHTutminusmonth = value cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTminusWeek + """ and channel_id = 3 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPHTutminusweek = value cursor.execute("""SELECT * FROM `data` where `timestamp` < """ + UTakt + """ and channel_id = 3 order by `timestamp` desc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPHTutakt = value cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTminusYear + """ and channel_id = 3 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPHTutminusyear = value cursor.execute("""SELECT * FROM `data` where `timestamp` > """ + UTYearBegin + """ and channel_id = 3 order by `timestamp` asc limit 1""") ergebnis = cursor.fetchone() id, channel_id, timestamp, value = ergebnis[0:4] WPHTutyearbegin = value
Vielen Dank für die Hilfe!
Stefan
Kommentar