meshtastic-mqtt-json/README.md

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)