# 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)
Raw data
{
"_id": null,
"home_page": "https://github.com/acidvegas/meshtastic_mqtt_json",
"name": "meshtastic-mqtt-json",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "acidvegas",
"author_email": "acid.vegas@acid.vegas",
"download_url": "https://files.pythonhosted.org/packages/43/4c/b0e6578210ff2782cab57aabfd65996d656ec4a3b2a678a62d9b5c7ab7be/meshtastic_mqtt_json-1.0.10.tar.gz",
"platform": null,
"description": "# Meshtastic MQTT Parser\n\nA 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.\n\n## Overview\n\nThis 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.\n\n## Features\n\n- Connects to any Meshtastic MQTT broker\n- Decrypts encrypted messages\n- Parses all standard Meshtastic message types\n- Outputs clean JSON format\n- Message type filtering support\n- Simple command-line interface\n\n## Installation\n\nInstall from PyPI:\n\n```bash\npip install meshtastic-mqtt-json\n```\n\n## usage\n```bash\npython meshtastic_mqtt_json [options]\n```\n\n```python\nfrom meshtastic_mqtt_json import MeshtasticMQTT\nclient = MeshtasticMQTT()\nclient.connect(broker='mqtt.meshtastic.org', port=1883, root='msh/US/2/e/', channel='LongFast', username='meshdev', password='large4cats', key='AQ==')\n```\n\n### Command Line Options\n| Option | Description | Default |\n| ------------ | ------------------------------|---------------------- |\n| `--broker` | MQTT broker address | `mqtt.meshtastic.org` |\n| `--port` | MQTT broker port | `1883` | \n| `--root` | Root topic | `msh/US/2/e/` |\n| `--channel` | Channel name | `LongFast` |\n| `--username` | MQTT username | `meshdev` |\n| `--password` | MQTT password | `large4cats` |\n| `--key` | Encryption key | `AQ==` |\n| `--filter` | Filter specific message types | |\n\n### Filter Example\n```bash\npython meshtastic_mqtt_json.py --filter \"NODEINFO,POSITION,TEXT_MESSAGE\"\n```\n\n\n## Supported Message Types\n\nThe library supports parsing of the following Meshtastic message types:\n| Message Type | Description |\n| ------------------------------- | ----------------------------- |\n| **ADMIN_APP** | Administrative messages |\n| **ATAK_FORWARDER** | ATAK forwarding messages |\n| **ATAK_PLUGIN** | ATAK plugin messages |\n| **AUDIO_APP** | Audio messages |\n| **DETECTION_SENSOR_APP** | Sensor detection data |\n| **IP_TUNNEL_APP** | IP tunneling messages |\n| **NEIGHBORINFO_APP** | Neighbor information |\n| **NODEINFO_APP** | Node information and details |\n| **PAXCOUNTER_APP** | People counter data |\n| **POSITION_APP** | GPS position updates |\n| **PRIVATE_APP** | Private messages |\n| **RANGE_TEST_APP** | Range testing data |\n| **REMOTE_HARDWARE_APP** | Remote hardware control |\n| **REPLY_APP** | Reply messages |\n| **ROUTING_APP** | Routing information |\n| **SERIAL_APP** | Serial communication |\n| **SIMULATOR_APP** | Simulator messages |\n| **STORE_FORWARD_APP** | Store and forward messages |\n| **TELEMETRY_APP** | Device telemetry data |\n| **TEXT_MESSAGE_APP** | Plain text messages |\n| **TEXT_MESSAGE_COMPRESSED_APP** | Compressed text messages |\n| **TRACEROUTE_APP** | Network route tracing |\n| **WAYPOINT_APP** | Waypoint information |\n| **ZPS_APP** | Zone/Position System messages |\n\n\n## Roadmap\n- [ ] Add support for custom node ID & names for the client\n- [ ] Add support for custom MQTT servers besides the official Meshtastic server\n- [ ] Create a PyPi package for easy import into other projects\n- [ ] Create an examples folder with use cases for the library, such as an IRC relay, cli chat, logging, etc.\n\n___\n\n###### Mirrors for this repository: [acid.vegas](https://git.acid.vegas/meshtastic_mqtt_json) \u2022 [SuperNETs](https://git.supernets.org/acidvegas/meshtastic_mqtt_json) \u2022 [GitHub](https://github.com/acidvegas/meshtastic_mqtt_json) \u2022 [GitLab](https://gitlab.com/acidvegas/meshtastic_mqtt_json) \u2022 [Codeberg](https://codeberg.org/acidvegas/meshtastic_mqtt_json)\n",
"bugtrack_url": null,
"license": null,
"summary": "A lightweight Python library for parsing Meshtastic MQTT messages",
"version": "1.0.10",
"project_urls": {
"Bug Tracker": "https://github.com/acidvegas/meshtastic_mqtt_json/issues",
"Documentation": "https://github.com/acidvegas/meshtastic_mqtt_json#readme",
"Homepage": "https://github.com/acidvegas/meshtastic_mqtt_json",
"Source Code": "https://github.com/acidvegas/meshtastic_mqtt_json"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "57122e6173538347b9a57bc317fb4abcfbc4fa5cd46d00d0b6329da043a88e51",
"md5": "93f249fdccfad87c95933273fb246ffa",
"sha256": "4c86e072df0ef89a84892e5d743b7d03137969fb8899241789befbf8ad346868"
},
"downloads": -1,
"filename": "meshtastic_mqtt_json-1.0.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "93f249fdccfad87c95933273fb246ffa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 8129,
"upload_time": "2025-01-04T05:51:56",
"upload_time_iso_8601": "2025-01-04T05:51:56.093532Z",
"url": "https://files.pythonhosted.org/packages/57/12/2e6173538347b9a57bc317fb4abcfbc4fa5cd46d00d0b6329da043a88e51/meshtastic_mqtt_json-1.0.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "434cb0e6578210ff2782cab57aabfd65996d656ec4a3b2a678a62d9b5c7ab7be",
"md5": "0df2da5803d248400a0578f6ff48af5e",
"sha256": "583d2898311223c9f6153480bdda17815a334d2633c1783829a23fbdab788577"
},
"downloads": -1,
"filename": "meshtastic_mqtt_json-1.0.10.tar.gz",
"has_sig": false,
"md5_digest": "0df2da5803d248400a0578f6ff48af5e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 9128,
"upload_time": "2025-01-04T05:51:59",
"upload_time_iso_8601": "2025-01-04T05:51:59.624822Z",
"url": "https://files.pythonhosted.org/packages/43/4c/b0e6578210ff2782cab57aabfd65996d656ec4a3b2a678a62d9b5c7ab7be/meshtastic_mqtt_json-1.0.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-04 05:51:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "acidvegas",
"github_project": "meshtastic_mqtt_json",
"github_not_found": true,
"lcname": "meshtastic-mqtt-json"
}