logging to dedicated file per sensor disableable in config
parent
d2745fa37c
commit
a237de8940
10
Logger.py
10
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)
|
||||
|
||||
##########################################
|
||||
|
|
|
|||
55
README.md
55
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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue