|
@@ -0,0 +1,86 @@
|
|
|
+from adeireader import ADEIReader
|
|
|
+import sqlite3
|
|
|
+
|
|
|
+config = DAL('sqlite://config.storage.sqlite',pool_size=1,check_reserved=['all'])
|
|
|
+
|
|
|
+config.define_table('adei_server',
|
|
|
+ Field('id', 'primary'),
|
|
|
+ Field('server_key', unique=True),
|
|
|
+ Field('db_host'),
|
|
|
+ Field('db_server'),
|
|
|
+ Field('db_name'))
|
|
|
+
|
|
|
+config.define_table('adei_group',
|
|
|
+ Field('id', 'primary'),
|
|
|
+ Field('group_key', unique=True),
|
|
|
+ Field('db_group'),
|
|
|
+ Field('group_name'),
|
|
|
+ Field('server_id', "reference adei_server"))
|
|
|
+
|
|
|
+config.define_table('adei_sensor',
|
|
|
+ Field('id', 'primary'),
|
|
|
+ Field('sensor_key', unique=True),
|
|
|
+ Field('sensor_mask', 'integer'),
|
|
|
+ Field('sensor_uid'),
|
|
|
+ Field('sensor_name'),
|
|
|
+ Field('group_id', 'reference adei_group'),
|
|
|
+ Field('server_id', 'reference adei_server'))
|
|
|
+
|
|
|
+def fetch_group_and_sensor(sk):
|
|
|
+ group_keys = [ s['group_key'] for s in config().select(config.adei_group.group_key) ]
|
|
|
+ sensor_keys = [ s['sensor_key'] for s in config().select(config.adei_sensor.sensor_key) ]
|
|
|
+ ar = session.adei_readers[sk]
|
|
|
+ sid = config.adei_server( server_key=sk ).id
|
|
|
+ for g in ar.query_group():
|
|
|
+ print g
|
|
|
+ gk = sk + '__' + g['db_group']
|
|
|
+ db_group = g['db_group']
|
|
|
+ group_name = g['name']
|
|
|
+ try:
|
|
|
+ config.adei_group.insert(
|
|
|
+ group_key = gk,
|
|
|
+ db_group = db_group,
|
|
|
+ group_name = group_name,
|
|
|
+ server_id = sid,
|
|
|
+ server_key = sk)
|
|
|
+ except:
|
|
|
+ print 'record in adei_group already'
|
|
|
+ pass
|
|
|
+ gid = config.adei_group( group_key=gk ).id
|
|
|
+ for s in ar.query_sensor(db_group):
|
|
|
+ print s
|
|
|
+ sensor_mask = s['value']
|
|
|
+ sensor_key = gk+'__'+sensor_mask
|
|
|
+ try:
|
|
|
+ sensor_uid = s['uid']
|
|
|
+ except:
|
|
|
+ sensor_uid = ''
|
|
|
+ try:
|
|
|
+ config.adei_sensor.insert(
|
|
|
+ sensor_mask=sensor_mask,
|
|
|
+ sensor_key=sensor_key,
|
|
|
+ sensor_uid=sensor_uid,
|
|
|
+ sensor_name=s['name'],
|
|
|
+ server_id = sid,
|
|
|
+ group_id = gid)
|
|
|
+ except:
|
|
|
+ print 'record in adei_server already'
|
|
|
+ pass
|
|
|
+
|
|
|
+
|
|
|
+server_keys = [ s['server_key'] for s in config().select(config.adei_server.server_key) ]
|
|
|
+
|
|
|
+if 'adei_readers' not in session.keys():
|
|
|
+ session.adei_readers = {}
|
|
|
+
|
|
|
+for s in adei_servers:
|
|
|
+ if s['server_key'] not in server_keys:
|
|
|
+ config.adei_server.insert(**s)
|
|
|
+ fetch_group_and_sensor(s['server_key'])
|
|
|
+ if s['server_key'] not in session.adei_readers.keys():
|
|
|
+ ar = ADEIReader(s['db_host'], s['db_server'], s['db_name'])
|
|
|
+ session.adei_readers[s['server_key']] = ar
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|