start to use ids

master
ademant 2019-09-03 18:54:38 +02:00
parent 9a4fb7247d
commit ba2660b3dd
3 changed files with 48 additions and 10 deletions

10
id.json
View File

@ -1,4 +1,4 @@
"id":{
{"id":{
"110":{"varname":"temperatur","sensor":"CPU","i2c":0},
"111":{"varname":"temperatur","sensor":"bme280","i2c":0},
"112":{"varname":"humidity","sensor":"bme280","i2c":0},
@ -56,5 +56,11 @@
"1B4":{"varname":"stromherd","sensor":"manuell","i2c":0},
"1C1":{"varname":"km","sensor":"berlingo","i2c":0},
"1C2":{"varname":"diesel","sensor":"berlingo","i2c":0},
"1C3":{"varname":"preis","sensor":"berlingo","i2c":0}
"1C3":{"varname":"preis","sensor":"berlingo","i2c":0},
"1D0":{"varname":"temperatur","sensor":"w1therm","i2c":0},
"1D1":{"varname":"temperatur","sensor":"w1therm","i2c":1},
"1D2":{"varname":"temperatur","sensor":"w1therm","i2c":2},
"1D3":{"varname":"temperatur","sensor":"w1therm","i2c":3},
"1D4":{"varname":"temperatur","sensor":"w1therm","i2c":4}
}
}

View File

@ -7,6 +7,8 @@ from serial import Serial
import os, time,socket,sys,json,random,sds011
from meas_data import meas_data
sensor="sds011"
pathname = os.path.dirname(sys.argv[0])
abspath=os.path.abspath(pathname)
@ -18,6 +20,14 @@ except:
log_conf=json.load(cf)
cf.close()
idf=open(abspath+"/id.json","r")
idlist=json.load(idf)["id"]
sens_id={}
for ids in idlist:
if "sensor" in idlist[ids]:
if idlist[ids]["sensor"]==sensor:
sens_id[ids]=idlist[ids]
idf.close()
parameter={"device":socket.gethostname(),"mean_count":2,"ring_length":30,"wait":0.1,"cycle":20,"check_last":2,"gpg_keyid":"","usbport":"/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0","meascount":5,"meassleep":30}
for n in parameter:
@ -25,20 +35,27 @@ for n in parameter:
parameter[n]=log_conf[n]
bsds=False
if "sds011" in log_conf:
if sensor in log_conf:
bsds=True
for n in parameter:
if n in log_conf['sds011']:
parameter[n]=log_conf['sds011'][n]
if n in log_conf[sensor]:
parameter[n]=log_conf[sensor][n]
try:
sensor=sds011.SDS011(parameter['usbport'],use_query_mode=True)
except:
bsds=False
else:
pm25=meas_data(var_name="pm25",ring_length=parameter['ring_length'],device=parameter['device'],sensor="SDS011",store_dir="/home/pi/log/",digits=3,check_last=parameter['check_last'])
pm25.set_sql(host="localhost",port=8080,min_wait=parameter['wait'])
pm10=meas_data(var_name="pm10",ring_length=parameter['ring_length'],device=parameter['device'],sensor="SDS011",store_dir="/home/pi/log/",digits=3,check_last=parameter['check_last'])
pm10.set_sql(host="localhost",port=8080,min_wait=parameter['wait'])
bpm25=False
bpm10=False
for ids in sens_id:
if sens_id[ids]['varname']=="pm25":
bpm25=True
pm25=meas_data(var_name="pm25",ring_length=parameter['ring_length'],device=parameter['device'],sensorid=sens_id[ids],store_dir="/home/pi/log/",digits=3,check_last=parameter['check_last'])
pm25.set_sql(host="localhost",port=8080,min_wait=parameter['wait'])
if sens_id[ids]['varname']=="pm10":
bpm10=True
pm10=meas_data(var_name="pm10",ring_length=parameter['ring_length'],device=parameter['device'],sensorid=sens_id[ids],store_dir="/home/pi/log/",digits=3,check_last=parameter['check_last'])
pm10.set_sql(host="localhost",port=8080,min_wait=parameter['wait'])
bmqtt=False
if "mqtt" in log_conf:

View File

@ -12,7 +12,7 @@ gpg=gnupg.GPG()
_STRINGREMOVE=str.maketrans(dict.fromkeys("/:;\\{}(){]%&"))
class meas_data:
def __init__(self,var_name,ring_length=100,sigma=2,device=socket.gethostname(),sensor="CPU",i2c=0,store_dir="/home/pi/data",multiplicator=1,digits=5,check_last=0,mac=0,sql_min_wait=5,rsa_key="",check_last_shrinking=0.99,mean_count=5,store_each_cycle=False):
def __init__(self,var_name,ring_length=100,sigma=2,device=socket.gethostname(),sensor="CPU",i2c=0,store_dir="/home/pi/data",multiplicator=1,digits=5,check_last=0,mac=0,sql_min_wait=5,rsa_key="",check_last_shrinking=0.99,mean_count=5,store_each_cycle=False,sens_id={'varname':"",'sensor':"CPU",'i2c':0}):
self.set_varname(var_name)
self.value=[]
self.act_value=0
@ -45,6 +45,7 @@ class meas_data:
self.set_check_last(check_last,check_last_shrinking)
self.set_i2c(i2c)
self.set_multiplicator(multiplicator)
self.set_sensid(sens_id)
self.mqtt_broker=""
self.mqtt_port=1883
self.mqtt_topic=""
@ -56,6 +57,15 @@ class meas_data:
self.sql_out=""
self.json_out={"hash":self.hash,"signature":"","payload":{"device":self.device,"varname":self.var_name,"i2c":self.i2c,"sensor":self.sensor,"mac":self.mac,"measures":{}}}
self.set_file_log(store_dir)
def set_sensid(self,sens_id):
if "varname" in sens_id:
self.set_varname(sens_id["varname"])
if "sensor" in sens_id:
self.set_sensor(sens_id["sensor"])
if "i2c" in sens_id:
self.set_i2c(sens_id["i2c"])
if "channel" in sens_id:
self.set_channel(sens_id["channel"])
def set_store_cycle(self,store_each_cycle):
self.bstoreeach=False
if isinstance(store_each_cycle,bool):
@ -91,6 +101,11 @@ class meas_data:
self.i2c=i2c
else:
self.i2c=0
def set_channel(self,channel):
if (isinstance(channel,(int,float)) and not isinstance(channel,bool)):
self.channel=channel
else:
self.channel=0
def set_varname(self,var_name):
tvn=var_name.translate(_STRINGREMOVE)
if len(tvn)==0: