Meine Wohnung wird z.Z. renoviert. Der Estrich ist gerade rein gekommen und ich habe Temperatursensoren per OneWire im Estrich.
Ich habe im Moment noch keinen KNX Bus, der funktioniert, mit dem ich loggen könnte. Das Einzige was ich benötige ist eine vorübergehende Kontrolle der Temperaturwerte. Deshalb möchte ich das Script recht einfach halten.
Ich benötige ein Script, welches stündlich eine Datei erstellt (mit Uhrzeit im Namen), die Temperaturwerte rein schreibt (zusammen mit entweder der KNX Bus Adresse oder der Temperatursensor ID), und diese Datei speichert.
Bisher habe ich folgendes:
Für /usr/local/smarthome/items habe ich eine Datei erstellt: beaglebone.conf:
Dann gibt es eine Datei in /usr/local/smarthome/logics namens tempwatch.py, was die eigentliche Logik enthält
Was bisher erst einmal die Temperatur schreiben sollte. Da fehlt also noch die Adresse die geschrieben werden soll.
Ausserdem in der /usr/local/smarthome/etc/logic.conf folgender Eintrag damit die Logik ausgeführt wird
Im Moment ist cycle auf 1 gestellt, zm Testen dass es klappt. Wird dann auf 60 gestellt für die Stündliche ausgabe.
Um die Logik zu starten bin ich nun in /usr/local/smarthome/bin und habe smarthome.py -s zum Stoppen, sowie smarthome.py --start zum Starten des Smarthome.py Prozesses ausgeführt.
Leider werden keine Dateien erstellt. Ein Blick auf smarthome.py -f (zum Lesen der Ausgaben des Prozesses) hat mir als Anfänger natürlich auch nicht weiter geholfen.
Vielleicht weiss ja jemand was ich falsch mache, und wie ich meinen Code ändern muss um die oben genannte Aufgabe zu lösen, nämlich meine Temperaturen zu loggen.
Noch einmal als Erinnerung. Die Lösung ist keinesfalls langfristig gedacht, sondern lediglich für die nächsten Tage als Kontrolle. Sonst würde ich natürlich ein besseres Logging in Betracht ziehen und nicht einfach Dateien erstellen. Ich möchte es so einfach wie möglich halten und lediglich die Daten zur Kontrolle speichern und denke dass diese Lösung mit eine der Einfachsten ist.
Vielen Dank
Ich habe im Moment noch keinen KNX Bus, der funktioniert, mit dem ich loggen könnte. Das Einzige was ich benötige ist eine vorübergehende Kontrolle der Temperaturwerte. Deshalb möchte ich das Script recht einfach halten.
Ich benötige ein Script, welches stündlich eine Datei erstellt (mit Uhrzeit im Namen), die Temperaturwerte rein schreibt (zusammen mit entweder der KNX Bus Adresse oder der Temperatursensor ID), und diese Datei speichert.
Bisher habe ich folgendes:
Für /usr/local/smarthome/items habe ich eine Datei erstellt: beaglebone.conf:
Code:
[beaglebone] [[temperature]] type = num knx_dpt = 9 knx_send = 12/0/1 knx_reply = 12/0/1 ow_addr = 28.FFF33C... (Die Adresse des Temperatursensors) sqlite = yes #keine Ahnung wofür der Befehl ist um Ehrlich zu sein [[temp2]] #genau das gleiche mit einem anderen Sensor und anderer Gruppenadresse
Code:
import time #für die Zeit timestr = time.strftime("%d-%m-%Y_%H-%M-%S") filename = "/home/smarthome/tempwatch/tempwatch_"timestr+".txt" with open(filename,'w') as f: for item in sh.match_items('beaglebone.*'): f.write(item())
Ausserdem in der /usr/local/smarthome/etc/logic.conf folgender Eintrag damit die Logik ausgeführt wird
Code:
[tempwatch] filename = tempwatch.py crontab = init watch_item = beaglebone.* cycle = 1
Um die Logik zu starten bin ich nun in /usr/local/smarthome/bin und habe smarthome.py -s zum Stoppen, sowie smarthome.py --start zum Starten des Smarthome.py Prozesses ausgeführt.
Leider werden keine Dateien erstellt. Ein Blick auf smarthome.py -f (zum Lesen der Ausgaben des Prozesses) hat mir als Anfänger natürlich auch nicht weiter geholfen.
Vielleicht weiss ja jemand was ich falsch mache, und wie ich meinen Code ändern muss um die oben genannte Aufgabe zu lösen, nämlich meine Temperaturen zu loggen.
Noch einmal als Erinnerung. Die Lösung ist keinesfalls langfristig gedacht, sondern lediglich für die nächsten Tage als Kontrolle. Sonst würde ich natürlich ein besseres Logging in Betracht ziehen und nicht einfach Dateien erstellen. Ich möchte es so einfach wie möglich halten und lediglich die Daten zur Kontrolle speichern und denke dass diese Lösung mit eine der Einfachsten ist.
Vielen Dank
Kommentar