# 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/64/1b/dae9cc91ee53eaf3737314ff98ccc21ba47625025ebf6de3568fa4ee0107/meshtastic_mqtt_json-1.0.4.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.4",
"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": "e291c5a9f6243ed769fa339ef4844967356778a352d2daa901c70546230a62c5",
"md5": "9bc52d0cdd74615eaca05b1a198b7bb9",
"sha256": "4dc1447a914d9e23a9ccf43c27c0b45f0ba184212d5ca842d7cf3093115711d9"
},
"downloads": -1,
"filename": "meshtastic_mqtt_json-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9bc52d0cdd74615eaca05b1a198b7bb9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 7501,
"upload_time": "2024-12-03T02:27:07",
"upload_time_iso_8601": "2024-12-03T02:27:07.111383Z",
"url": "https://files.pythonhosted.org/packages/e2/91/c5a9f6243ed769fa339ef4844967356778a352d2daa901c70546230a62c5/meshtastic_mqtt_json-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "641bdae9cc91ee53eaf3737314ff98ccc21ba47625025ebf6de3568fa4ee0107",
"md5": "dc170a2b40fd3c5121be4bb663d80510",
"sha256": "984284508dc5434f1cff7bfc101db6e556d2fa198fdc440f0d100a37753d8c11"
},
"downloads": -1,
"filename": "meshtastic_mqtt_json-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "dc170a2b40fd3c5121be4bb663d80510",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 8504,
"upload_time": "2024-12-03T02:27:09",
"upload_time_iso_8601": "2024-12-03T02:27:09.803932Z",
"url": "https://files.pythonhosted.org/packages/64/1b/dae9cc91ee53eaf3737314ff98ccc21ba47625025ebf6de3568fa4ee0107/meshtastic_mqtt_json-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-03 02:27:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "acidvegas",
"github_project": "meshtastic_mqtt_json",
"github_not_found": true,
"lcname": "meshtastic-mqtt-json"
}