lorawan/python/loriot-receiver.py

44 lines
1.0 KiB
Python

#!/usr/bin/env python3
import ssl
import websocket
import json
import os
import psycopg2
import lorautil
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 = lorautil.jsonToDict(result)
eui = self.devEUI(jdata)
try:
payload = get_payload(jdata)
except Exception:
payload = ""
lorautil.db_insert_json("loriot", result, payload=payload, deveui=eui)
lorautil.db_notify("loriot", payload=payload, deveui=eui)
def devEUI(self, data):
return data['EUI']
def get_payload(self, data):
return bytes.fromhex(data['payload']).decode('utf-8')
if __name__ == '__main__':
l = Loriot()
l.connect()
l.listen()