From a237de8940a2618fd0bf8d7eaf20913095fc5d0d Mon Sep 17 00:00:00 2001 From: agp8x Date: Sun, 30 Aug 2015 16:54:39 +0200 Subject: [PATCH] logging to dedicated file per sensor disableable in config --- Logger.py | 10 ++++----- README.md | 55 ++++++++++++++++++++++++---------------------- config.sample.json | 7 ++++-- settings.py | 3 ++- 4 files changed, 41 insertions(+), 34 deletions(-) diff --git a/Logger.py b/Logger.py index 2e6690a..80b42d7 100644 --- a/Logger.py +++ b/Logger.py @@ -45,11 +45,11 @@ class Logger(object): # common function to write value to file # ########################################## def write_value(self, value, sensor): - # TODO: replace with self.datalog - valuename = self.records + "/" + sensor + "_" + preptime() - valuelog=open(valuename, 'a') - valuelog.write(str(value) + ';' + str( int(time.time()) ) + "\n") - valuelog.close() + if settings.legacy_record: + valuename = self.records + "/" + sensor + "_" + preptime() + valuelog=open(valuename, 'a') + valuelog.write(str(value) + ';' + str( int(time.time()) ) + "\n") + valuelog.close() self.datalog.info('%s;%s;%s',value, int(time.time()), sensor) ########################################## diff --git a/README.md b/README.md index 82a3399..6bec45d 100644 --- a/README.md +++ b/README.md @@ -5,32 +5,35 @@ Python (2/3), Bash, Tinkerforge ## Setup 1. Konfiguration mittels `config.json` anpassen (Vorlage: `config.sample.json`) - * *hosts*: - * Ein Eintrag pro brickd-Host mit: - * *host*: Hostname/IP + Port - * *sensors*: Auflistung der Sensoren mit: Name, UID, SensorType - * *sensor_properties*: - * Pro SensorType: - * Callbackzeit - * Divisor - * Einheit - * *tempmaxdiff*: Maximaler Unterschied zwischen zwei *SensorType.temp*-Callbacks des gleichen Sensors - * *prev_temps_default*: Hilfswert für Berechnung von *tempmaxdiff* - * *logs*: Ordner für Logs - * *locks*: Ordner für Locks - * *records*: Ordner für aktuelle Aufzeichnungen - * *arch*: Ordner für Archiv der Aufzeichnungen - * *lockname*: Lock für Hauptprogramm - * *logname*: Logdatei für Hauptprogramm - * *exceptionlog*: Logdatei für Exceptions bei Verbindungsaufbau - * *recordlog*: Logdatei für neue, einheitliche Aufzeichnungen - * *movelog*: Logdatei für Archivierung - * *movelock*: Datei zur Feststellung der letzten Archivierung - * *waitDelay*: Wartezeit zwischen Verbindungsversuchen - * *loglevel*: Loglevel für Hauptprogramm - * *datalog*: Loglevel für Aufzeichnungen (warn, error,critical verhindern Aufzeichnung) - * *dataecho*: Loglevel für Wiedergabe der Aufzeichnungen (warn, error,critical verhindern Wiedergabe) -2. Tinkerforge-python-bindings installieren + * Notwendig: + * *hosts*: + * Ein Eintrag pro brickd-Host mit: + * *host*: Hostname/IP + Port + * *sensors*: Auflistung der Sensoren mit: Name, UID, SensorType + * *sensor_properties*: + * Pro SensorType: + * Callbackzeit + * Divisor + * Einheit + * Optional: + * *tempmaxdiff*: Maximaler Unterschied zwischen zwei *SensorType.temp*-Callbacks des gleichen Sensors + * *prev_temps_default*: Hilfswert für Berechnung von *tempmaxdiff* + * *logs*: Ordner für Logs + * *locks*: Ordner für Locks + * *records*: Ordner für aktuelle Aufzeichnungen + * *arch*: Ordner für Archiv der Aufzeichnungen + * *lockname*: Lock für Hauptprogramm + * *logname*: Logdatei für Hauptprogramm + * *exceptionlog*: Logdatei für Exceptions bei Verbindungsaufbau + * *recordlog*: Logdatei für neue, einheitliche Aufzeichnungen + * *movelog*: Logdatei für Archivierung + * *movelock*: Datei zur Feststellung der letzten Archivierung + * *waitDelay*: Wartezeit zwischen Verbindungsversuchen + * *loglevel*: Loglevel für Hauptprogramm + * *datalog*: Loglevel für Aufzeichnungen (warn, error,critical verhindern Aufzeichnung) + * *dataecho*: Loglevel für Wiedergabe der Aufzeichnungen (warn, error,critical verhindern Wiedergabe) + * *legacy_record*: Speichern von Aufzeichnungen in einzelne Dateien pro Sensor (true, false) +2. Tinkerforge-Python-Bindings installieren 3. `main.py` starten, um Aufzeichnung zu starten * Aufzeichnung des aktuellen Tages werden in *records* gespeichert diff --git a/config.sample.json b/config.sample.json index f70b16d..828d49a 100644 --- a/config.sample.json +++ b/config.sample.json @@ -7,7 +7,9 @@ }, "sensors":{ "iram": ["c8w", "SensorType.iram"], - "irob": ["c8w", "SensorType.irob"] + "irob": ["c8w", "SensorType.irob"], + "temp3": ["8ms", "SensorType.temp"], + "luftfeuchtigkeit_sauna": ["9V5", "SensorType.humi"] } } }, @@ -36,5 +38,6 @@ "waitDelay" : 10, "loglevel": "info", "datalog": "info", - "dataecho": "info" + "dataecho": "info", + "legacy_record": false } diff --git a/settings.py b/settings.py index dbdf46c..ea1ae29 100644 --- a/settings.py +++ b/settings.py @@ -48,7 +48,8 @@ DEFAULTS ={ "tempSensors":0, "loglevel": "info", "datalog": "info", - "dataecho": "info" + "dataecho": "info", + "legacy_record": True } class Settings(dict): def __getattr__(self,name):