logging to dedicated file per sensor disableable in config

master
agp8x 2015-08-30 16:54:39 +02:00
parent d2745fa37c
commit a237de8940
4 changed files with 41 additions and 34 deletions

View File

@ -45,11 +45,11 @@ class Logger(object):
# common function to write value to file # # common function to write value to file #
########################################## ##########################################
def write_value(self, value, sensor): def write_value(self, value, sensor):
# TODO: replace with self.datalog if settings.legacy_record:
valuename = self.records + "/" + sensor + "_" + preptime() valuename = self.records + "/" + sensor + "_" + preptime()
valuelog=open(valuename, 'a') valuelog=open(valuename, 'a')
valuelog.write(str(value) + ';' + str( int(time.time()) ) + "\n") valuelog.write(str(value) + ';' + str( int(time.time()) ) + "\n")
valuelog.close() valuelog.close()
self.datalog.info('%s;%s;%s',value, int(time.time()), sensor) self.datalog.info('%s;%s;%s',value, int(time.time()), sensor)
########################################## ##########################################

View File

@ -5,32 +5,35 @@ Python (2/3), Bash, Tinkerforge
## Setup ## Setup
1. Konfiguration mittels `config.json` anpassen (Vorlage: `config.sample.json`) 1. Konfiguration mittels `config.json` anpassen (Vorlage: `config.sample.json`)
* *hosts*: * Notwendig:
* Ein Eintrag pro brickd-Host mit: * *hosts*:
* *host*: Hostname/IP + Port * Ein Eintrag pro brickd-Host mit:
* *sensors*: Auflistung der Sensoren mit: Name, UID, SensorType * *host*: Hostname/IP + Port
* *sensor_properties*: * *sensors*: Auflistung der Sensoren mit: Name, UID, SensorType
* Pro SensorType: * *sensor_properties*:
* Callbackzeit * Pro SensorType:
* Divisor * Callbackzeit
* Einheit * Divisor
* *tempmaxdiff*: Maximaler Unterschied zwischen zwei *SensorType.temp*-Callbacks des gleichen Sensors * Einheit
* *prev_temps_default*: Hilfswert für Berechnung von *tempmaxdiff* * Optional:
* *logs*: Ordner für Logs * *tempmaxdiff*: Maximaler Unterschied zwischen zwei *SensorType.temp*-Callbacks des gleichen Sensors
* *locks*: Ordner für Locks * *prev_temps_default*: Hilfswert für Berechnung von *tempmaxdiff*
* *records*: Ordner für aktuelle Aufzeichnungen * *logs*: Ordner für Logs
* *arch*: Ordner für Archiv der Aufzeichnungen * *locks*: Ordner für Locks
* *lockname*: Lock für Hauptprogramm * *records*: Ordner für aktuelle Aufzeichnungen
* *logname*: Logdatei für Hauptprogramm * *arch*: Ordner für Archiv der Aufzeichnungen
* *exceptionlog*: Logdatei für Exceptions bei Verbindungsaufbau * *lockname*: Lock für Hauptprogramm
* *recordlog*: Logdatei für neue, einheitliche Aufzeichnungen * *logname*: Logdatei für Hauptprogramm
* *movelog*: Logdatei für Archivierung * *exceptionlog*: Logdatei für Exceptions bei Verbindungsaufbau
* *movelock*: Datei zur Feststellung der letzten Archivierung * *recordlog*: Logdatei für neue, einheitliche Aufzeichnungen
* *waitDelay*: Wartezeit zwischen Verbindungsversuchen * *movelog*: Logdatei für Archivierung
* *loglevel*: Loglevel für Hauptprogramm * *movelock*: Datei zur Feststellung der letzten Archivierung
* *datalog*: Loglevel für Aufzeichnungen (warn, error,critical verhindern Aufzeichnung) * *waitDelay*: Wartezeit zwischen Verbindungsversuchen
* *dataecho*: Loglevel für Wiedergabe der Aufzeichnungen (warn, error,critical verhindern Wiedergabe) * *loglevel*: Loglevel für Hauptprogramm
2. Tinkerforge-python-bindings installieren * *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 3. `main.py` starten, um Aufzeichnung zu starten
* Aufzeichnung des aktuellen Tages werden in *records* gespeichert * Aufzeichnung des aktuellen Tages werden in *records* gespeichert

View File

@ -7,7 +7,9 @@
}, },
"sensors":{ "sensors":{
"iram": ["c8w", "SensorType.iram"], "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, "waitDelay" : 10,
"loglevel": "info", "loglevel": "info",
"datalog": "info", "datalog": "info",
"dataecho": "info" "dataecho": "info",
"legacy_record": false
} }

View File

@ -48,7 +48,8 @@ DEFAULTS ={
"tempSensors":0, "tempSensors":0,
"loglevel": "info", "loglevel": "info",
"datalog": "info", "datalog": "info",
"dataecho": "info" "dataecho": "info",
"legacy_record": True
} }
class Settings(dict): class Settings(dict):
def __getattr__(self,name): def __getattr__(self,name):