Python based MQTT to SQLite3 logger
Project description
MQTT to SQLite Logger
Table of Contents
Description
mqtt-logger
allows for asynchronous data logging of MQTT messages to a SQLite database. It also allows for the playback of previously recorded MQTT messages.
Installation
To install mqtt-logger
you can simply use pip
.
pip install mqtt-logger
Example Usage
Recording MQTT Messages
This example records messages to the test/#
topic using a public MQTT broker. It will record for 10 seconds. If you are using a private broker, you may need to set the username
and password
parameters.
Example recorder taken from examples/10s_recording.py
import mqtt_logger
import os
import time
# Initalise mqtt recorder object
rec = mqtt_logger.Recorder(
sqlite_database_path=os.path.join(os.path.dirname(__file__), "MQTT_log.db"),
topics=["test/#"],
broker_address="broker.hivemq.com",
verbose=True,
## Uncomment for TLS connection
# port=8883,
# use_tls=True,
# tls_insecure=False,
## Uncomment for username and password
# username="username",
# password="password",
)
# Start the logger, wait 10 seconds and stop the logger
rec.start()
time.sleep(10)
rec.stop()
Playback Recorded MQTT Messages
This example plays back previously recorded MQTT messages from mqtt_logger.Recorder
. If you are using a private
broker, you may need to set the username
and password
parameters.
Example recorder taken from examples/10s_playback.py
import mqtt_logger
import os
# Initalise playback object
playback = mqtt_logger.Playback(
sqlite_database_path=os.path.join(os.path.dirname(__file__), "MQTT_log.db"),
broker_address="broker.hivemq.com",
verbose=True,
)
# Start playback at 2x speed (twice as fast)
playback.play(speed=2)
Database
The SQLite database has two tables called LOG
and RUN
. The LOG
table contains the messages that are being logged. The RUN
table contains the information about the current run of the program.
LOG
Table
ROW NAME | DESCRIPTION |
---|---|
ID | Unique number assigned to each message (ascending int) |
RUN_ID | ID of the current run (ascending int) |
UNIX_TIME | Time when the message was received |
TOPIC | MQTT topic |
MESSAGE | MQTT message received |
RUN
Table
ROW NAME | DESCRIPTION |
---|---|
ID | Unique number assigned to run (ascending int) |
START_UNIX_TIME | Time when logger was started |
END_UNIX_TIME | Time when logger was stopped |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mqtt_logger-0.3.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c45b33e4cec4ed8576c067da6ed36fb52cfba06589f6225493eb0896f2aed72 |
|
MD5 | 66639ca3c35bc2f8c378590a67da8eab |
|
BLAKE2b-256 | 60734fcab986dbfc789106d4eb20146648f63b6e419ec2fd75133c17afe367fd |