Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
co2ampel2
MQTT_TO_INFLUXDB
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