From 67ebe9e05e819c1e8c5da5a0519101ec41088163 Mon Sep 17 00:00:00 2001 From: Patrick Ade <21adpa1bif@hft-stuttgart.de> Date: Sat, 19 Apr 2025 19:25:06 +0200 Subject: [PATCH] preparation for integration in web project --- .env | 9 --- .../lib/mqtt_influx_backend/InfluxDBWriter.py | 20 ----- .../mqtt_influx_backend/MQTTClientHandler.py | 42 ----------- build/lib/mqtt_influx_backend/Main.py | 26 ------- build/lib/mqtt_to_influx.py | 73 ------------------- console.txt => mqtt/console.txt | 0 pyproject.toml => mqtt/pyproject.toml | 0 {src => mqtt/src}/__init__.py | 0 .../src}/mqtt_influx_backend/__init__.py | 0 .../mqtt_influx_backend/influxDBWriter.py | 0 .../src}/mqtt_influx_backend/jsonhandler.py | 0 .../mqtt_influx_backend/loggingFactory.py | 0 .../mqtt_influx_backend/mQTTClientHandler.py | 0 .../src}/mqtt_influx_backend/mac_to_room.json | 0 {src => mqtt/src}/mqtt_influx_backend/main.py | 0 uv.lock => mqtt/uv.lock | 0 mqtt_influx_backend.egg-info/PKG-INFO | 9 --- mqtt_influx_backend.egg-info/SOURCES.txt | 7 -- .../dependency_links.txt | 1 - mqtt_influx_backend.egg-info/requires.txt | 3 - mqtt_influx_backend.egg-info/top_level.txt | 1 - src/mqtt_influx_backend.egg-info/PKG-INFO | 8 -- src/mqtt_influx_backend.egg-info/SOURCES.txt | 10 --- .../dependency_links.txt | 1 - src/mqtt_influx_backend.egg-info/requires.txt | 2 - .../top_level.txt | 1 - 26 files changed, 213 deletions(-) delete mode 100644 .env delete mode 100644 build/lib/mqtt_influx_backend/InfluxDBWriter.py delete mode 100644 build/lib/mqtt_influx_backend/MQTTClientHandler.py delete mode 100644 build/lib/mqtt_influx_backend/Main.py delete mode 100644 build/lib/mqtt_to_influx.py rename console.txt => mqtt/console.txt (100%) rename pyproject.toml => mqtt/pyproject.toml (100%) rename {src => mqtt/src}/__init__.py (100%) rename {src => mqtt/src}/mqtt_influx_backend/__init__.py (100%) rename {src => mqtt/src}/mqtt_influx_backend/influxDBWriter.py (100%) rename {src => mqtt/src}/mqtt_influx_backend/jsonhandler.py (100%) rename {src => mqtt/src}/mqtt_influx_backend/loggingFactory.py (100%) rename {src => mqtt/src}/mqtt_influx_backend/mQTTClientHandler.py (100%) rename {src => mqtt/src}/mqtt_influx_backend/mac_to_room.json (100%) rename {src => mqtt/src}/mqtt_influx_backend/main.py (100%) rename uv.lock => mqtt/uv.lock (100%) delete mode 100644 mqtt_influx_backend.egg-info/PKG-INFO delete mode 100644 mqtt_influx_backend.egg-info/SOURCES.txt delete mode 100644 mqtt_influx_backend.egg-info/dependency_links.txt delete mode 100644 mqtt_influx_backend.egg-info/requires.txt delete mode 100644 mqtt_influx_backend.egg-info/top_level.txt delete mode 100644 src/mqtt_influx_backend.egg-info/PKG-INFO delete mode 100644 src/mqtt_influx_backend.egg-info/SOURCES.txt delete mode 100644 src/mqtt_influx_backend.egg-info/dependency_links.txt delete mode 100644 src/mqtt_influx_backend.egg-info/requires.txt delete mode 100644 src/mqtt_influx_backend.egg-info/top_level.txt diff --git a/.env b/.env deleted file mode 100644 index 5d8dad8..0000000 --- a/.env +++ /dev/null @@ -1,9 +0,0 @@ -# InfluxDB config -INFLUXDB_URL=http://localhost:8086 -INFLUXDB_ORG=docs -INFLUXDB_BUCKET=co2-test -INFLUXDB_TOKEN=jTTnLJmL5w2Z1IlkKJzkwDreWJ62HdDWT5_RS0J3Rbm28AxPkUZfU_sIPaG3aoLQ5MklO_Gn9y23HtU38yR0Nw== - -# (Optional) MQTT config, falls du das auch variabel machen willst -MQTT_BROKER_URL="172.20.10.12" -MQTT_TOPIC="co2/#" diff --git a/build/lib/mqtt_influx_backend/InfluxDBWriter.py b/build/lib/mqtt_influx_backend/InfluxDBWriter.py deleted file mode 100644 index 398a7f4..0000000 --- a/build/lib/mqtt_influx_backend/InfluxDBWriter.py +++ /dev/null @@ -1,20 +0,0 @@ -from influxdb_client import InfluxDBClient, Point, WritePrecision -from influxdb_client.client.write_api import SYNCHRONOUS - -class InfluxDBWriter: - def __init__(self, url: str, token: str, org: str, bucket: str): - self.client = InfluxDBClient(url=url, token=token, org=org) - self.write_api = self.client.write_api(write_options=SYNCHRONOUS) - self.bucket = bucket - self.org = org - - def write_point(self, measurement: str, tags: dict, fields: dict, timestamp=None): - point = Point(measurement) - for k, v in tags.items(): - point.tag(k, v) - for k, v in fields.items(): - point.field(k, v) - if timestamp: - point.time(timestamp, WritePrecision.NS) - - self.write_api.write(bucket=self.bucket, org=self.org, record=point) diff --git a/build/lib/mqtt_influx_backend/MQTTClientHandler.py b/build/lib/mqtt_influx_backend/MQTTClientHandler.py deleted file mode 100644 index 2772fee..0000000 --- a/build/lib/mqtt_influx_backend/MQTTClientHandler.py +++ /dev/null @@ -1,42 +0,0 @@ -import json -from datetime import datetime -import paho.mqtt.client as mqtt -from mqtt_influx_backend import InfluxDBWriter - -class MQTTClientHandler: - def __init__(self, broker_url: str, topic: str, influx_writer: InfluxDBWriter): - self.broker_url = broker_url - self.topic = topic - self.influx_writer = influx_writer - self.client = mqtt.Client() - self.client.on_connect = self.on_connect - self.client.on_message = self.on_message - - def on_connect(self, client, userdata, flags, rc): - print("Connected with result code " + str(rc)) - client.subscribe(self.topic) - - def on_message(self, client, userdata, msg): - utfMgs = msg.payload.decode("utf-8") - #dictionary = json.loads(utfMgs) - print(utfMgs) - print(utfMgs) - print(utfMgs) - data = utfMgs - try: - - value = float(data.get("co2")) - - self.influx_writer.write_point( - measurement="temperature", - tags={"topic": msg.topic}, - fields={"value": value}, - timestamp=datetime.utcnow() - ) - print("Wrote to InfluxDB:", value) - except Exception as e: - print("Error processing message:", e) - - def start(self): - self.client.connect(self.broker_url) - self.client.loop_forever() diff --git a/build/lib/mqtt_influx_backend/Main.py b/build/lib/mqtt_influx_backend/Main.py deleted file mode 100644 index 4202370..0000000 --- a/build/lib/mqtt_influx_backend/Main.py +++ /dev/null @@ -1,26 +0,0 @@ -from dotenv import load_dotenv -import os - -from mqtt_influx_backend.MQTTClientHandler import MQTTClientHandler -from mqtt_influx_backend.InfluxDBWriter import InfluxDBWriter - -load_dotenv() - -def main(): - influx_writer = InfluxDBWriter( - url=os.getenv("INFLUXDB_URL"), - token=os.getenv("INFLUXDB_TOKEN"), - org=os.getenv("INFLUXDB_ORG"), - bucket=os.getenv("INFLUXDB_BUCKET") - ) - - mqtt_handler = MQTTClientHandler( - broker_url=os.getenv("MQTT_BROKER_URL"), - topic=os.getenv("MQTT_TOPIC"), - influx_writer=influx_writer - ) - - mqtt_handler.start() - -if __name__ == "__main__": - main() diff --git a/build/lib/mqtt_to_influx.py b/build/lib/mqtt_to_influx.py deleted file mode 100644 index 5046090..0000000 --- a/build/lib/mqtt_to_influx.py +++ /dev/null @@ -1,73 +0,0 @@ -import json -from datetime import datetime - -import influxdb_client, os, time -from influxdb_client import InfluxDBClient, Point, WritePrecision -from influxdb_client.client.write_api import SYNCHRONOUS - -# InfluxDB config -INFLUXDB_URL = os.environ.get("INFLUXDB_URL") -INFLUXDB_TOKEN = os.environ.get("INFLUXDB_TOKEN") -INFLUXDB_ORG = os.environ.get("INFLUXDB_ORG") -INFLUXDB_BUCKET = os.environ.get("INFLUXDB_BUCKET") - -write_client = influxdb_client.InfluxDBClient(url=INFLUXDB_URL, token=INFLUXDB_TOKEN, org=INFLUXDB_ORG) - -bucket="co2-test" - -write_api = write_client.write_api(write_options=SYNCHRONOUS) - -# MQTT config -MQTT_BROKER_URL = os.environ.get("MQTT_BROKER_URL") -MQTT_PUBLISH_TOPIC = os.environ.get("MQTT_TOPIC") - -for value in range(5): - point = ( - Point("measurement1") - .tag("mac-adress", "22:de:aa:21::a2") - .field("ppm", value) - ) - write_api.write(bucket=bucket, org=INFLUXDB_ORG, record=point) - time.sleep(1) # separate points by 1 second - - - - -''' -def on_connect(client, userdata, flags, rc): - print("Connected with result code " + str(rc)) - client.subscribe(MQTT_PUBLISH_TOPIC) - -def on_message(client, userdata, msg): - print(msg.topic + " " + str(msg.payload)) - - try: - # Decode JSON payload (z. B. {"value": 22.5, "unit": "C"}) - data = json.loads(msg.payload.decode()) - value = float(data.get("value")) - - # Create data point - point = Point("temperature") \ - .tag("topic", msg.topic) \ - .field("value", value) \ - .time(datetime.utcnow()) - - # Write to InfluxDB - write_api.write(bucket=INFLUXDB_BUCKET, org=INFLUXDB_ORG, record=point) - print("Wrote to InfluxDB:", point) - - except Exception as e: - print("Error processing message:", e) -''' - - -# Start MQTT client -''' -mqttc = mqtt.Client() -mqttc.on_connect = on_connect -mqttc.on_message = on_message - -mqttc.connect(MQTT_BROKER_URL) -mqttc.loop_forever() -''' - diff --git a/console.txt b/mqtt/console.txt similarity index 100% rename from console.txt rename to mqtt/console.txt diff --git a/pyproject.toml b/mqtt/pyproject.toml similarity index 100% rename from pyproject.toml rename to mqtt/pyproject.toml diff --git a/src/__init__.py b/mqtt/src/__init__.py similarity index 100% rename from src/__init__.py rename to mqtt/src/__init__.py diff --git a/src/mqtt_influx_backend/__init__.py b/mqtt/src/mqtt_influx_backend/__init__.py similarity index 100% rename from src/mqtt_influx_backend/__init__.py rename to mqtt/src/mqtt_influx_backend/__init__.py diff --git a/src/mqtt_influx_backend/influxDBWriter.py b/mqtt/src/mqtt_influx_backend/influxDBWriter.py similarity index 100% rename from src/mqtt_influx_backend/influxDBWriter.py rename to mqtt/src/mqtt_influx_backend/influxDBWriter.py diff --git a/src/mqtt_influx_backend/jsonhandler.py b/mqtt/src/mqtt_influx_backend/jsonhandler.py similarity index 100% rename from src/mqtt_influx_backend/jsonhandler.py rename to mqtt/src/mqtt_influx_backend/jsonhandler.py diff --git a/src/mqtt_influx_backend/loggingFactory.py b/mqtt/src/mqtt_influx_backend/loggingFactory.py similarity index 100% rename from src/mqtt_influx_backend/loggingFactory.py rename to mqtt/src/mqtt_influx_backend/loggingFactory.py diff --git a/src/mqtt_influx_backend/mQTTClientHandler.py b/mqtt/src/mqtt_influx_backend/mQTTClientHandler.py similarity index 100% rename from src/mqtt_influx_backend/mQTTClientHandler.py rename to mqtt/src/mqtt_influx_backend/mQTTClientHandler.py diff --git a/src/mqtt_influx_backend/mac_to_room.json b/mqtt/src/mqtt_influx_backend/mac_to_room.json similarity index 100% rename from src/mqtt_influx_backend/mac_to_room.json rename to mqtt/src/mqtt_influx_backend/mac_to_room.json diff --git a/src/mqtt_influx_backend/main.py b/mqtt/src/mqtt_influx_backend/main.py similarity index 100% rename from src/mqtt_influx_backend/main.py rename to mqtt/src/mqtt_influx_backend/main.py diff --git a/uv.lock b/mqtt/uv.lock similarity index 100% rename from uv.lock rename to mqtt/uv.lock diff --git a/mqtt_influx_backend.egg-info/PKG-INFO b/mqtt_influx_backend.egg-info/PKG-INFO deleted file mode 100644 index f6c854a..0000000 --- a/mqtt_influx_backend.egg-info/PKG-INFO +++ /dev/null @@ -1,9 +0,0 @@ -Metadata-Version: 2.4 -Name: mqtt-influx-backend -Version: 0.1.0 -Summary: MQTT subscriber that stores data in InfluxDB -Author-email: Dein Name <deine.email@example.com> -Requires-Python: >=3.8 -Requires-Dist: influxdb-client -Requires-Dist: paho-mqtt -Requires-Dist: python-dotenv diff --git a/mqtt_influx_backend.egg-info/SOURCES.txt b/mqtt_influx_backend.egg-info/SOURCES.txt deleted file mode 100644 index 92ee43a..0000000 --- a/mqtt_influx_backend.egg-info/SOURCES.txt +++ /dev/null @@ -1,7 +0,0 @@ -mqtt_to_influx.py -pyproject.toml -mqtt_influx_backend.egg-info/PKG-INFO -mqtt_influx_backend.egg-info/SOURCES.txt -mqtt_influx_backend.egg-info/dependency_links.txt -mqtt_influx_backend.egg-info/requires.txt -mqtt_influx_backend.egg-info/top_level.txt \ No newline at end of file diff --git a/mqtt_influx_backend.egg-info/dependency_links.txt b/mqtt_influx_backend.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/mqtt_influx_backend.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/mqtt_influx_backend.egg-info/requires.txt b/mqtt_influx_backend.egg-info/requires.txt deleted file mode 100644 index 71b4ba3..0000000 --- a/mqtt_influx_backend.egg-info/requires.txt +++ /dev/null @@ -1,3 +0,0 @@ -influxdb-client -paho-mqtt -python-dotenv diff --git a/mqtt_influx_backend.egg-info/top_level.txt b/mqtt_influx_backend.egg-info/top_level.txt deleted file mode 100644 index e657adf..0000000 --- a/mqtt_influx_backend.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -mqtt_to_influx diff --git a/src/mqtt_influx_backend.egg-info/PKG-INFO b/src/mqtt_influx_backend.egg-info/PKG-INFO deleted file mode 100644 index fecd44b..0000000 --- a/src/mqtt_influx_backend.egg-info/PKG-INFO +++ /dev/null @@ -1,8 +0,0 @@ -Metadata-Version: 2.4 -Name: mqtt-influx-backend -Version: 0.1.0 -Summary: Backend to write MQTT sensor data to InfluxDB -Requires-Python: >=3.10 -Description-Content-Type: text/markdown -Requires-Dist: paho-mqtt -Requires-Dist: influxdb-client diff --git a/src/mqtt_influx_backend.egg-info/SOURCES.txt b/src/mqtt_influx_backend.egg-info/SOURCES.txt deleted file mode 100644 index 01700c4..0000000 --- a/src/mqtt_influx_backend.egg-info/SOURCES.txt +++ /dev/null @@ -1,10 +0,0 @@ -pyproject.toml -src/mqtt_influx_backend/InfluxDBWriter.py -src/mqtt_influx_backend/MQTTClientHandler.py -src/mqtt_influx_backend/Main.py -src/mqtt_influx_backend/__init__.py -src/mqtt_influx_backend.egg-info/PKG-INFO -src/mqtt_influx_backend.egg-info/SOURCES.txt -src/mqtt_influx_backend.egg-info/dependency_links.txt -src/mqtt_influx_backend.egg-info/requires.txt -src/mqtt_influx_backend.egg-info/top_level.txt \ No newline at end of file diff --git a/src/mqtt_influx_backend.egg-info/dependency_links.txt b/src/mqtt_influx_backend.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/src/mqtt_influx_backend.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/mqtt_influx_backend.egg-info/requires.txt b/src/mqtt_influx_backend.egg-info/requires.txt deleted file mode 100644 index 04cfe98..0000000 --- a/src/mqtt_influx_backend.egg-info/requires.txt +++ /dev/null @@ -1,2 +0,0 @@ -paho-mqtt -influxdb-client diff --git a/src/mqtt_influx_backend.egg-info/top_level.txt b/src/mqtt_influx_backend.egg-info/top_level.txt deleted file mode 100644 index 90227a0..0000000 --- a/src/mqtt_influx_backend.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -mqtt_influx_backend -- GitLab