Skip to content

Commit 10fe8fe

Browse files
authored
MQTT Datalogger
1 parent 208e3c8 commit 10fe8fe

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

MQTT/MQTT_DataLogger.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Code Not Tested Yet !!!
2+
3+
import paho.mqtt.client as mqtt
4+
import sqlite3
5+
from time import time
6+
7+
MQTT_HOST = '192.168.0.184'
8+
MQTT_PORT = 1883
9+
MQTT_CLIENT_ID = 'Python MQTT client'
10+
MQTT_USER = 'YOUR MQTT USER'
11+
MQTT_PASSWORD = 'YOUR MQTT USER PASSWORD'
12+
TOPIC = 'home/#'
13+
14+
DATABASE_FILE = 'mqtt.db'
15+
16+
17+
def on_connect(mqtt_client, user_data, flags, conn_result):
18+
mqtt_client.subscribe(TOPIC)
19+
20+
21+
def on_message(mqtt_client, user_data, message):
22+
payload = message.payload.decode('utf-8')
23+
24+
db_conn = user_data['db_conn']
25+
sql = 'INSERT INTO sensors_data (topic, payload, created_at) VALUES (?, ?, ?)'
26+
cursor = db_conn.cursor()
27+
cursor.execute(sql, (message.topic, payload, int(time())))
28+
db_conn.commit()
29+
cursor.close()
30+
31+
32+
def main():
33+
db_conn = sqlite3.connect(DATABASE_FILE)
34+
sql = """
35+
CREATE TABLE IF NOT EXISTS sensors_data (
36+
id INTEGER PRIMARY KEY AUTOINCREMENT,
37+
topic TEXT NOT NULL,
38+
payload TEXT NOT NULL,
39+
created_at INTEGER NOT NULL
40+
)
41+
"""
42+
cursor = db_conn.cursor()
43+
cursor.execute(sql)
44+
cursor.close()
45+
46+
mqtt_client = mqtt.Client(MQTT_CLIENT_ID)
47+
mqtt_client.username_pw_set(MQTT_USER, MQTT_PASSWORD)
48+
mqtt_client.user_data_set({'db_conn': db_conn})
49+
50+
mqtt_client.on_connect = on_connect
51+
mqtt_client.on_message = on_message
52+
53+
mqtt_client.connect(MQTT_HOST, MQTT_PORT)
54+
mqtt_client.loop_forever()
55+
56+
57+
main()

0 commit comments

Comments
 (0)