Metadata-Version: 2.1
Name: meshtastic-mqtt-json
Version: 0.1.2
Summary: A lightweight Python library for parsing Meshtastic MQTT messages
Home-page: https://github.com/acidvegas/meshtastic_mqtt_json
Author: acidvegas
Author-email: acid.vegas@acid.vegas
Project-URL: Bug Tracker, https://github.com/acidvegas/meshtastic_mqtt_json/issues
Project-URL: Documentation, https://github.com/acidvegas/meshtastic_mqtt_json#readme
Project-URL: Source Code, https://github.com/acidvegas/meshtastic_mqtt_json
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Communications
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography
Requires-Dist: protobuf
Requires-Dist: meshtastic
Requires-Dist: paho-mqtt

# 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)
