95 lines
4.3 KiB
Markdown
95 lines
4.3 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
pip install meshtastic-mqtt-json
|
|
```
|
|
|
|
## usage
|
|
```bash
|
|
python meshtastic_mqtt_json [options]
|
|
```
|
|
|
|
```python
|
|
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
|
|
```bash
|
|
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.
|
|
|
|
___
|
|
|
|
###### Mirrors for this repository: [acid.vegas](https://git.acid.vegas/meshtastic_mqtt_json) • [SuperNETs](https://git.supernets.org/acidvegas/meshtastic_mqtt_json) • [GitHub](https://github.com/acidvegas/meshtastic_mqtt_json) • [GitLab](https://gitlab.com/acidvegas/meshtastic_mqtt_json) • [Codeberg](https://codeberg.org/acidvegas/meshtastic_mqtt_json)
|