github Yeraze/meshmonitor v1.10.0
Version 1.10.0: TCP Streaming Architecture

latest releases: v2.19.0, v2.18.9, v2.18.8...
one month ago

๐Ÿš€ Version 1.10.0: TCP Streaming Architecture

This is a major architectural upgrade that replaces HTTP polling with native TCP streaming for significantly improved performance and reliability.

โšก Major Changes

TCP Streaming Protocol

MeshMonitor now connects directly to Meshtastic devices using their native TCP streaming protocol (port 4403), replacing the previous HTTP polling implementation.

Benefits:

  • ๐ŸŽฏ ~90% bandwidth reduction - No HTTP overhead
  • โšก Instant message delivery - Event-driven, not polling-based
  • ๐Ÿ“‰ Lower latency - TCP push model vs 2-second poll interval
  • ๐Ÿ”„ More reliable - Automatic reconnection with exponential backoff
  • ๐Ÿ’ป Lower CPU usage - Event-driven vs continuous polling

Implementation Details

  • Event-driven architecture using Node.js EventEmitter
  • 4-byte frame protocol: [0x94][0xc3][LENGTH_MSB][LENGTH_LSB][PROTOBUF_PAYLOAD]
  • Automatic reconnection: 1s โ†’ 2s โ†’ 4s โ†’ 8s โ†’ 16s โ†’ 30s (max 10 attempts)
  • Robust frame parsing with corruption recovery
  • All 147 tests passing

Integration Options

The TCP implementation enables multiple connection scenarios:

1. Direct TCP (WiFi/Ethernet nodes) โœ…

MeshMonitor โ†’ TCP:4403 โ†’ Meshtastic Node

2. meshtasticd Proxy (BLE/Serial nodes) โœ…

MeshMonitor โ†’ TCP:4403 โ†’ meshtasticd โ†’ BLE/Serial โ†’ Meshtastic Device

3. HomeAssistant Integration โœ…

MeshMonitor โ†’ TCP:4403 โ†’ HomeAssistant โ†’ Meshtastic

4. Custom Proxies โœ…
Any proxy implementing the Meshtastic TCP protocol is compatible.

๐Ÿ“š Documentation Updates

Comprehensive documentation overhaul for the TCP refactor:

  • โœ… New "Getting Started" section with copy-paste deployment commands
  • โœ… meshtasticd integration instructions for BLE/Serial devices
  • โœ… TCP protocol technical details and frame format documentation
  • โœ… Updated architecture diagrams and explanations
  • โœ… Integration scenarios documented
  • โœ… Historical context preserved in MESHTASTICD_ANALYSIS.md

๐Ÿ”ง Configuration Changes

Updated Environment Variables

# Old (HTTP - removed)
MESHTASTIC_USE_TLS=false

# New (TCP)
MESHTASTIC_TCP_PORT=4403  # Default port for Meshtastic TCP

Backward Compatible

Existing MESHTASTIC_NODE_IP configuration works unchanged. Simply update your environment to use the new TCP port variable.

๐Ÿ“ฆ Docker Deployment

Pre-built images available on GitHub Container Registry:

docker pull ghcr.io/yeraze/meshmonitor:1.10.0

# Or use latest
docker pull ghcr.io/yeraze/meshmonitor:latest

Quick start:

export MESHTASTIC_NODE_IP=192.168.1.100
export MESHTASTIC_TCP_PORT=4403
docker compose up -d

๐Ÿ”Œ meshtasticd Integration

Connect to BLE or Serial devices via meshtasticd:

# For BLE devices
meshtasticd --ble-device "Meshtastic_1234"

# For Serial devices  
meshtasticd --serial-port /dev/ttyUSB0

# Point MeshMonitor to meshtasticd
export MESHTASTIC_NODE_IP=localhost
docker compose up -d

๐Ÿงช Testing

  • โœ… All 147 automated tests passing
  • โœ… Production validated with 140+ node mesh network
  • โœ… 24+ hours stable operation
  • โœ… No regressions in existing features

๐Ÿ“ Pull Requests

  • #67 - TCP streaming implementation
  • #68 - Documentation updates

๐Ÿ™ Acknowledgments

This refactor was analyzed, implemented, and documented with Claude Code.


Full Changelog: v1.9.3...v1.10.0

๐Ÿš€ MeshMonitor v1.10.0

๐Ÿ“ฆ Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:v1.10.0

๐Ÿงช Testing

โœ… All tests passed
โœ… TypeScript checks passed
โœ… Docker images built for linux/amd64, linux/arm64, linux/arm/v7

๐Ÿ“‹ Changes

See commit history for detailed changes.

Don't miss a new meshmonitor release

NewReleases is sending notifications on new releases.