Skip to main content

Python based MQTT to SQLite3 logger

Project description

MQTT to SQLite Logger

PyPI version Unit Tests Upload Python Package codecov

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mqtt_logger-0.3.6.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

mqtt_logger-0.3.6-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

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

Hashes for mqtt_logger-0.3.6.tar.gz
Algorithm Hash digest
SHA256 f834f03fe570c7ab642bd475ff5509eb39140259eb4d73a6c5cb2e2ba3ca839d
MD5 5af2f377f4f2f29dd178da2438805f14
BLAKE2b-256 3bdc9fb8e513fdd303aac1e8124e63eec69beb9c243e5c906c94636fe1bf3de4

See more details on using hashes here.

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

Hashes for mqtt_logger-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7c45b33e4cec4ed8576c067da6ed36fb52cfba06589f6225493eb0896f2aed72
MD5 66639ca3c35bc2f8c378590a67da8eab
BLAKE2b-256 60734fcab986dbfc789106d4eb20146648f63b6e419ec2fd75133c17afe367fd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page