mirror of
https://github.com/dpup/meshstream.git
synced 2026-03-28 17:42:37 +01:00
607ae2b7ed6013960c17eb7deeed509ebea5f076
- Added DecodedPacket struct to simplify message hierarchy - Implemented separate decoding and formatting functions for each message type - Decoder extracts all relevant fields into a simplified structure - Formatters now operate directly on the decoded message types - Improved error handling during decoding and parsing - Added type-safety via interfaces for proper packet handling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Meshstream
A Go application that monitors the Meshtastic MQTT server and logs packets to the terminal.
Setup
- Clone this repository
- Install dependencies:
go mod tidy
Running
go run main.go
Decoding Meshtastic Packets
This project includes the Meshtastic protocol buffer definitions in the proto/ directory and a decoder for parsing MQTT packets. The application will automatically decode JSON messages and extract key information from binary messages.
Protocol Buffer Compilation
To regenerate the protocol buffer Go code:
make gen-proto
This will:
- Install the required protoc-gen-go compiler plugin in a local bin/ directory
- Generate Go code from the protocol buffer definitions
- Place the generated code in the proto/generated/ directory
Packet Decoding
The application currently decodes packets in these formats:
-
JSON messages (from topics containing '/json/')
- Extracts common fields like sender, receiver, and payload
- Pretty-prints the JSON content
-
Binary messages (from topics containing '/binary/')
- Shows basic topic information and a hex dump of the binary data
-
Text messages (from topics containing '/text/')
- Displays the plain text content
The decoder is implemented in the decoder package.
MQTT Configuration
- Broker: mqtt.bayme.sh
- Username: meshdev
- Password: large4cats
- Topic prefix: msh/US/CA/Motherlode
Languages
TypeScript
69.5%
Go
24.5%
HTML
1.8%
Makefile
1%
Dockerfile
1%
Other
2.2%