Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
co2ampel2
Web
Commits
d319744c
Commit
d319744c
authored
Apr 12, 2025
by
Gezer
Browse files
Initial Commit
parent
2da637e7
Changes
22
Show whitespace changes
Inline
Side-by-side
src/mqtt_influx_backend/MQTTClientHandler.py
0 → 100644
View file @
d319744c
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
):
print
(
"hallo bin in der methofe"
)
try
:
data
=
json
.
loads
(
msg
.
payload
.
decode
())
value
=
float
(
data
.
get
(
"value"
))
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
()
src/mqtt_influx_backend/Main.py
0 → 100644
View file @
d319744c
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
()
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment