3 Commits
0.1.0 ... main

2 changed files with 16 additions and 2 deletions

View File

@ -26,6 +26,15 @@ CREATE TABLE measurement_t (
SELECT create_hypertable('measurement_t', 'time');
CREATE TABLE voltage_t (
time TIMESTAMP WITHOUT TIME ZONE NOT NULL,
device_name VARCHAR(16) NOT NULL,
voltage INTEGER
);
SELECT create_hypertable('voltage_t', 'time');
insert into device_t (device_id, label) values('eui-43fa12f400006c88', 'badesee');
insert into sensor_t (address, label, index, device)
values (13258914387362694952, '0,5m ', 0, 1),
@ -36,3 +45,4 @@ insert into sensor_t (address, label, index, device)
create user preprocessor password 'geheim';
grant select on device_t, sensor_t to preprocessor;
grant insert on measurement_t to preprocessor;
grant insert on voltage_t to preprocessor;

View File

@ -69,6 +69,8 @@ class DbOp(object):
conn = self.__getConn()
with conn:
with conn.cursor() as cur:
cur.execute("insert into voltage_t (time, device_name, voltage) values (now(), %(dname)s, %(voltage)s)",
{ 'dname': measurement['label'], 'voltage': measurement['u_bat']})
for entry in measurement['measurements']:
cur.execute("insert into measurement_t (time, device_name, sensor_name, temperature) values (now(), %(dname)s, %(sname)s, %(tempc)s)",
{ 'dname': measurement['label'], 'sname': entry['label'], 'tempc': entry['value'] })
@ -103,15 +105,17 @@ def mqttOnMessageCallback(client, userdata, message):
sendSetupMessage = True
num_of_sensors = len(device['sensors'])
sensors = { x['address']:[x['index'], x['label']] for x in device['sensors']}
logger.debug(f"{sensors=}, {num_of_sensors=}")
frame = base64.b64decode(parse_payload['uplink_message']['frm_payload'])
status = struct.unpack('<H', frame[0:2])[0]
u_bat = struct.unpack('<H', frame[2:2])[0]
u_bat = struct.unpack('<H', frame[2:4])[0]
logger.debug(f"{frame=}, {status=}, {u_bat=}")
logger.info(f"Regular message received from {device_id}, {device['label']}")
measurement = {
'label': device['label'],
'u_bat': u_bat,
'time': parse_payload['received_at'],
'measurements': []
}