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
File details
Details for the file mqtt_logger-0.3.6.tar.gz
.
File metadata
- Download URL: mqtt_logger-0.3.6.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.9.19 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f834f03fe570c7ab642bd475ff5509eb39140259eb4d73a6c5cb2e2ba3ca839d |
|
MD5 | 5af2f377f4f2f29dd178da2438805f14 |
|
BLAKE2b-256 | 3bdc9fb8e513fdd303aac1e8124e63eec69beb9c243e5c906c94636fe1bf3de4 |
File details
Details for the file mqtt_logger-0.3.6-py3-none-any.whl
.
File metadata
- Download URL: mqtt_logger-0.3.6-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.9.19 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c45b33e4cec4ed8576c067da6ed36fb52cfba06589f6225493eb0896f2aed72 |
|
MD5 | 66639ca3c35bc2f8c378590a67da8eab |
|
BLAKE2b-256 | 60734fcab986dbfc789106d4eb20146648f63b6e419ec2fd75133c17afe367fd |