#!/usr/bin/env python3 import ssl import websocket import json import os import psycopg2 class Loriot(): def __init__(self): ws = websocket.WebSocket() def connect(self): tokenurl = os.environ['LORIOT_URL'] self.ws = websocket.create_connection(tokenurl, sslopt={"cert_reqs": ssl.CERT_NONE}) def listen(self): while True: result = self.ws.recv() print(result) jdata = self.jsonToDict(result) eui = self.devEUI(jdata) self.insert_json("loriot", result, deveui=eui) # payload = self.get_payload(jdata) def jsonToDict(self, data): return json.loads(data) def devEUI(self, data): return data['EUI'] def get_payload(self, data): return "" # return data['EUI'] def insert_json(self, provider, data, payload='', deveui=''): try: conn = psycopg2.connect("dbname=lorawan") cursor = conn.cursor() cursor.execute("insert into packets values (DEFAULT, DEFAULT, %s, %s, %s, %s)", (provider, data, payload, deveui)) cursor.connection.commit() conn.close() except Exception as e: print("DB Insert failed: %s" % e) if __name__ == '__main__': l = Loriot() l.connect() l.listen()