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 #
|
# 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)
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
|
|
|
||||||
55
README.md
55
README.md
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue