4.3 KiB
4.3 KiB
Meshtastic MQTT Parser
A lightweight Python library for parsing Meshtastic MQTT messages into JSON format. This tool makes it easy to build applications that interact with Meshtastic mesh networks via MQTT.
Overview
This library connects to a Meshtastic MQTT broker and decodes various message types into JSON format, making it simple to process Meshtastic mesh network data in your Python applications.
Features
- Connects to any Meshtastic MQTT broker
- Decrypts encrypted messages
- Parses all standard Meshtastic message types
- Outputs clean JSON format
- Message type filtering support
- Simple command-line interface
Installation
Install from PyPI:
pip install meshtastic-mqtt-json
usage
python meshtastic_mqtt_json [options]
from meshtastic_mqtt_json import MeshtasticMQTT
client = MeshtasticMQTT()
client.connect(broker='mqtt.meshtastic.org', port=1883, root='msh/US/2/e/', channel='LongFast', username='meshdev', password='large4cats', key='AQ==')
Command Line Options
Option | Description | Default |
---|---|---|
--broker |
MQTT broker address | mqtt.meshtastic.org |
--port |
MQTT broker port | 1883 |
--root |
Root topic | msh/US/2/e/ |
--channel |
Channel name | LongFast |
--username |
MQTT username | meshdev |
--password |
MQTT password | large4cats |
--key |
Encryption key | AQ== |
--filter |
Filter specific message types |
Filter Example
python meshtastic_mqtt_json.py --filter "NODEINFO,POSITION,TEXT_MESSAGE"
Supported Message Types
The library supports parsing of the following Meshtastic message types:
Message Type | Description |
---|---|
ADMIN_APP | Administrative messages |
ATAK_FORWARDER | ATAK forwarding messages |
ATAK_PLUGIN | ATAK plugin messages |
AUDIO_APP | Audio messages |
DETECTION_SENSOR_APP | Sensor detection data |
IP_TUNNEL_APP | IP tunneling messages |
NEIGHBORINFO_APP | Neighbor information |
NODEINFO_APP | Node information and details |
PAXCOUNTER_APP | People counter data |
POSITION_APP | GPS position updates |
PRIVATE_APP | Private messages |
RANGE_TEST_APP | Range testing data |
REMOTE_HARDWARE_APP | Remote hardware control |
REPLY_APP | Reply messages |
ROUTING_APP | Routing information |
SERIAL_APP | Serial communication |
SIMULATOR_APP | Simulator messages |
STORE_FORWARD_APP | Store and forward messages |
TELEMETRY_APP | Device telemetry data |
TEXT_MESSAGE_APP | Plain text messages |
TEXT_MESSAGE_COMPRESSED_APP | Compressed text messages |
TRACEROUTE_APP | Network route tracing |
WAYPOINT_APP | Waypoint information |
ZPS_APP | Zone/Position System messages |
Roadmap
- Add support for custom node ID & names for the client
- Add support for custom MQTT servers besides the official Meshtastic server
- Create a PyPi package for easy import into other projects
- Create an examples folder with use cases for the library, such as an IRC relay, cli chat, logging, etc.