-
-
Notifications
You must be signed in to change notification settings - Fork 33
Description
Why
I'm in an area that doesn't have a robust MeshCore community (yet) and the Meshtastic community is hit or miss. Thus I run multiple nodes (for the various protocols) and was going to work on expanding the support for MeshMonitor's support for MeshCore to run in a separate Docker container, but I had an idea. The app is great (especially the pass through capability), but it would fantastic if it was a nexus of the different protocols, all under a single UI. So, I thought I'd put this idea out there and see what folks thought of it.
MeshMonitor currently has strong Meshtastic support and partial MeshCore support, but they’re implemented as separate silos. That makes cross-protocol features hard and doesn’t scale well as more protocols are added.
Proposal (high-level)
Introduce a Connector Framework that wraps existing protocol managers and normalizes outputs (nodes/messages/channels/events) into a common model.
Core pieces:
ConnectorAdapterinterface per protocol (Meshtastic, MeshCore, future Reticulum/BitChat)ConnectorRegistryto manage lifecycle, routing, and unified queries/eventsconnectorstable plusconnector_idon existing data tables (backward-compatible migration)- Connector-aware API (
/api/v2/connectors, unified nodes/messages endpoints) - Connector management UI (add/edit/enable/disable/reorder, status, dynamic config schema)
Rollout plan
-
Phase 1 (Foundation)
Connector interface/registry, DB migration, Meshtastic adapter, MeshCore adapter, connector CRUD/status API, basic UI -
Phase 2 (Unified frontend)
Unified map/messages/nodes/dashboard with connector filters, color/icon tagging, unread counts -
Phase 3 (Reticulum)
Python bridge + adapter + deployment support -
Phase 4 (BitChat)
Nostr-based adapter first, optional BLE direct later -
Phase 5 (Relay engine)
Rule-based inter-protocol forwarding with loop prevention/rate limits
Guardrails
- No big-bang rewrite of
meshtasticManageras a prerequisite; start with thin adapters around existing code - Preserve backward compatibility by auto-creating a default Meshtastic connector from existing env config
- Keep protocol-specific capabilities optional (graceful UI degradation where features don’t exist)
Feedback requested
- Should connector-aware APIs be
/api/v2or incremental/api/v1extension? - Is multi-instance Meshtastic a hard requirement in Phase 1, or can it be phased?
- Preferred DB direction: unified tables with
connector_id+protocol_dataJSON vs protocol-specific tables? - Protocol priority after Phase 1: Reticulum first, BitChat later?
If this direction is acceptable, I’ll split implementation into incremental PRs by phase to keep review manageable.