pkgbuilds/schreiomat-receiver/schreiomat-receiver.py

45 lines
1.6 KiB
Python
Raw Normal View History

2024-01-16 22:10:54 +01:00
import os
import paho.mqtt.client as mqtt
from influxdb_client import InfluxDBClient
from influxdb_client import Point
from influxdb_client.client.write_api import SYNCHRONOUS
import json
import logging
logging.basicConfig(level=logging.DEBUG)
# mqttc = mqtt.Client("client-id")
# but note that the client id must be unique on the broker. Leaving the client
# id parameter empty will generate a random id for you.
mqttc = mqtt.Client()
influx_client = InfluxDBClient(url="http://localhost:8086", token="7KIKWL-7REcvJzNnDHKmvTDWqtJ_vflOfDXwncM78SI80xLEo2aXrjiLspCxPhVTiWFn4V6VWfAqedaxLJX9nQ==", org="sensors")
write_api = influx_client.write_api(write_options=SYNCHRONOUS)
def messageReceived(client, userdata, message):
print("received topic" + str(message.topic) + "with payload: " + str(message.payload) + "\n")
sensorId = message.topic.replace("schreiomat/","")
print("sensor id: " + sensorId)
print("sending")
result = ""
write_api.write("dac77b8b5d0fd121", "sensors", Point("soundlevel").tag("sensor", sensorId).field("dbA", float(message.payload)))
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
if (rc == 0):
print("(Success)")
else:
print("(Fail)")
# Subscribing in on_connect() means that if we lose the connection and
# reconnect then subscriptions will be renewed.
client.subscribe("schreiomat/#", 0)
mqttc.username_pw_set("knurps", "LEPEZ1ELYDUmjg")
mqttc.on_message = messageReceived
mqttc.on_connect = on_connect
mqttc.connect("ccc-p.org", 1883, 60)
mqttc.loop_forever()