changed prev_temp from list to dict
parent
efe33c85b5
commit
52a9986c95
|
|
@ -1,3 +1,9 @@
|
|||
config.json
|
||||
ftpconfig.xml
|
||||
arch/
|
||||
locks/
|
||||
logs/
|
||||
records/
|
||||
bin/
|
||||
bin/*
|
||||
*~
|
||||
|
|
|
|||
23
Logger.py
23
Logger.py
|
|
@ -13,18 +13,26 @@ from settings import settings
|
|||
|
||||
class Logger(object):
|
||||
def __init__(self, log):
|
||||
self.temp_sensors = settings.tempSensors
|
||||
self.temp_prev_default = settings.prev_temps_default
|
||||
self.prev_temps = []
|
||||
for i in range(self.temp_sensors):
|
||||
self.prev_temps.append(self.temp_prev_default)
|
||||
self.prev_temps = self.__build_prev_temps__()
|
||||
self.temp_max_diff = settings.tempmaxdiff
|
||||
self.log = log
|
||||
self.records = settings.records
|
||||
self.dataecho = setup_data_echo()
|
||||
self.datalog = setup_data_log()
|
||||
|
||||
def temp_rise(self, old, new,sensor):
|
||||
def __build_prev_temps__(self):
|
||||
prev_temps={}
|
||||
hosts_name = "hosts"
|
||||
if hosts_name in settings:
|
||||
for i in settings[hosts_name]:
|
||||
for j in settings[hosts_name][i]['sensors']:
|
||||
if settings[hosts_name][i]['sensors'][j][1] == SensorType.temp:
|
||||
prev_temps[j]=self.temp_prev_default
|
||||
return prev_temps
|
||||
|
||||
def temp_rise(self, new, sensor):
|
||||
old = self.prev_temps[sensor]
|
||||
if(old == self.temp_prev_default):
|
||||
return True
|
||||
if(((old-new) > self.temp_max_diff) or ((new-old) > self.temp_max_diff)):
|
||||
|
|
@ -49,10 +57,9 @@ class Logger(object):
|
|||
##########################################
|
||||
def cb_generic(self,value, sensor, type, supress = False):
|
||||
if type == SensorType.temp:
|
||||
i = int(sensor[-1])-1 #sensor contains name, followed by int
|
||||
if self.temp_rise(self.prev_temps[i], value, sensor):
|
||||
if self.temp_rise(value, sensor):
|
||||
self.write_value(value, sensor)
|
||||
self.prev_temps[i] = value
|
||||
self.prev_temps[sensor] = value
|
||||
elif (type == SensorType.none):
|
||||
return
|
||||
else:
|
||||
|
|
|
|||
14
README.md
14
README.md
|
|
@ -32,13 +32,17 @@ Python (2/3), Bash, Tinkerforge
|
|||
* *dataecho*: Loglevel für Wiedergabe der Aufzeichnungen (warn, error,critical verhindern Wiedergabe)
|
||||
2. Tinkerforge-python-bindings installieren
|
||||
3. `main.py` starten, um Aufzeichnung zu starten
|
||||
* Aufzeichnung des aktuellen Tages werden in `records` gespeichert
|
||||
* Aufzeichnung des aktuellen Tages werden in *records* gespeichert
|
||||
|
||||
Optional: Upload der Aufzeichnungen mit SFTP an einem Server:
|
||||
Optional: Verschieben der Aufzeichnungen in ein Archiv:
|
||||
|
||||
4. Pfade, Urls und Benutzer in `ftpconfig.xml` anpassen (Vorlage: `ftpconfig.sample.xml`)
|
||||
4. `move.py` z.B. als Cronjob starten
|
||||
|
||||
Optional: Upload der Aufzeichnungen mit SFTP an einem Server (beinhaltet Archivierung mit `move.py`):
|
||||
|
||||
5. Pfade, Urls und Benutzer in `ftpconfig.xml` anpassen (Vorlage: `ftpconfig.sample.xml`)
|
||||
* (ftp.sh bzw move.py) Nach dem Upload und dem Tagesende werden die Aufzeichnungen nach `arch` verschoben
|
||||
5. Cronjob für Upload mit ftp.sh einrichten
|
||||
6. Cronjob für Upload mit `ftp.sh` einrichten
|
||||
|
||||
# TODOS
|
||||
* TODOS ausdenken
|
||||
* TODOS ausdenken
|
||||
|
|
|
|||
9
Setup.py
9
Setup.py
|
|
@ -1,6 +1,9 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from functools import partial
|
||||
import traceback
|
||||
|
||||
try:
|
||||
from tinkerforge.ip_connection import IPConnection
|
||||
from tinkerforge.bricklet_temperature import Temperature
|
||||
|
|
@ -10,9 +13,8 @@ try:
|
|||
from tinkerforge.bricklet_temperature_ir import BrickletTemperatureIR
|
||||
except ImportError:
|
||||
print("package 'tinkerforge' not installed, canceling")
|
||||
raise
|
||||
from functools import partial
|
||||
import traceback
|
||||
raise Exception("package 'tinkerforge' not installed, canceling")
|
||||
|
||||
from settings import SensorType
|
||||
from settings import settings
|
||||
|
||||
|
|
@ -40,6 +42,7 @@ class ConnectionSetup(object):
|
|||
connection.disconnect()
|
||||
|
||||
class SensorSetup(object):
|
||||
#TODO: port "getTYPE" to dict
|
||||
|
||||
def __init__(self, connection, sensors, cb_generic, log):
|
||||
self.connection = connection
|
||||
|
|
|
|||
10
settings.py
10
settings.py
|
|
@ -60,7 +60,7 @@ class Settings(dict):
|
|||
def __delattr__(self,name):
|
||||
del self[name]
|
||||
def load_json(filename="config.json"):
|
||||
values=json.load(open('set.json'), object_hook=Settings)
|
||||
values=json.load(open(filename), object_hook=Settings)
|
||||
sensors_name="hosts"
|
||||
if sensors_name in values:
|
||||
for host in values[sensors_name]:
|
||||
|
|
@ -111,14 +111,6 @@ def setup_data_echo():
|
|||
return log
|
||||
|
||||
settings=load_json()
|
||||
hosts_name = "hosts"
|
||||
if hosts_name in settings:
|
||||
tempSensors=0
|
||||
for i in settings[hosts_name]:
|
||||
for j in settings[hosts_name][i]['sensors']:
|
||||
if settings[hosts_name][i]['sensors'][j][1] == SensorType.temp:
|
||||
tempSensors+=1
|
||||
settings.tempSensors=tempSensors
|
||||
"""
|
||||
0: {
|
||||
"host": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue