feat: MeshCore Companion-Port als eigenständiger Bereich im Dashboard #21

Open
ppfeiffer wants to merge 1 commit from feature/meshcore-integration into main
Owner

Beschreibung

Implementierung des MeshCore Companion-Port als vollständig getrennten Bereich im MeshDD-Dashboard.

Schließt Issue #20.

Geplanter Umfang

Siehe Issue #20 für die vollständige Spezifikation. Diese Branch umfasst:

Backend

  • meshbot/meshcore_client.py – neues Modul (MeshCore TCP-Verbindung, asyncio)
  • meshbot/database.py – neue Tabellen: mc_contacts, mc_channels, mc_messages, mc_rf_stats, mc_trace_results
  • meshbot/webserver.py – neue /api/meshcore/*-Endpunkte
  • meshbot/nina.pymc_send_callback + meshcore:-Block in nina.yaml
  • meshbot/traffic.pymc_send_callback + meshcore:-Block in config.yaml
  • meshbot/scheduler.pymc_send_callback + meshcore:-Block pro Job
  • config/config.yaml + config/config.example.yamlmeshcore:-Sektion
  • requirements.txtmeshcore, cayennelpp
  • main.pyMeshCoreClient instanziieren

Frontend (alle neu)

  • Übersicht /meshcore
  • Nodes /meshcore/nodes
  • Karte /meshcore/map (Leaflet, Typ-Icons, Trace-Overlay)
  • Direktnachrichten /meshcore/messages
  • Kanal-Verwaltung /meshcore/channels (inkl. Flood Scope + Path Hash Mode Override)
  • Kanal-Verlauf /meshcore/channels/{key}
  • RF-Statistiken /meshcore/rf-stats
  • Pfad-Trace /meshcore/trace
  • Radio-Config /meshcore/config (Frequenz-Presets EU/US/AU, Path Hash Mode, Flood Scope, Loop Detection)
  • Scheduler /meshcore/scheduler
  • NINA /meshcore/nina
  • Verkehr /meshcore/traffic
  • static/js/app.js – Sidebar-Erweiterung

Technische Eckpunkte

  • Protokoll: Custom Binary (kein Protobuf), TCP-Port 5000, meshcore PyPI-Bibliothek
  • Kanäle: SHA-256-Key-Ableitung aus Name, on_radio-Flag, Flood-Scope- und Path-Hash-Mode-Override pro Kanal
  • Path Hash Mode: 0/1/2 (1/2/3 Byte Hash), global + per-Kanal-Override, nur ab fw_ver >= 10
  • Flood Scope: SHA-256-basierte Region-Strings, global + per-Kanal-Override
  • Frequenz-Presets: EU (869.525/62.5kHz/SF8), US (910.525/62.5kHz/SF7), CH, AU, Legacy EU
  • Keine Zusammenführung mit Meshtastic-Daten – vollständig getrennte Pipelines und UI
## Beschreibung Implementierung des MeshCore Companion-Port als vollständig getrennten Bereich im MeshDD-Dashboard. Schließt Issue #20. ## Geplanter Umfang Siehe Issue #20 für die vollständige Spezifikation. Diese Branch umfasst: ### Backend - [ ] `meshbot/meshcore_client.py` – neues Modul (MeshCore TCP-Verbindung, asyncio) - [ ] `meshbot/database.py` – neue Tabellen: `mc_contacts`, `mc_channels`, `mc_messages`, `mc_rf_stats`, `mc_trace_results` - [ ] `meshbot/webserver.py` – neue `/api/meshcore/*`-Endpunkte - [ ] `meshbot/nina.py` – `mc_send_callback` + `meshcore:`-Block in `nina.yaml` - [ ] `meshbot/traffic.py` – `mc_send_callback` + `meshcore:`-Block in `config.yaml` - [ ] `meshbot/scheduler.py` – `mc_send_callback` + `meshcore:`-Block pro Job - [ ] `config/config.yaml` + `config/config.example.yaml` – `meshcore:`-Sektion - [ ] `requirements.txt` – `meshcore`, `cayennelpp` - [ ] `main.py` – `MeshCoreClient` instanziieren ### Frontend (alle neu) - [ ] Übersicht `/meshcore` - [ ] Nodes `/meshcore/nodes` - [ ] Karte `/meshcore/map` (Leaflet, Typ-Icons, Trace-Overlay) - [ ] Direktnachrichten `/meshcore/messages` - [ ] Kanal-Verwaltung `/meshcore/channels` (inkl. Flood Scope + Path Hash Mode Override) - [ ] Kanal-Verlauf `/meshcore/channels/{key}` - [ ] RF-Statistiken `/meshcore/rf-stats` - [ ] Pfad-Trace `/meshcore/trace` - [ ] Radio-Config `/meshcore/config` (Frequenz-Presets EU/US/AU, Path Hash Mode, Flood Scope, Loop Detection) - [ ] Scheduler `/meshcore/scheduler` - [ ] NINA `/meshcore/nina` - [ ] Verkehr `/meshcore/traffic` - [ ] `static/js/app.js` – Sidebar-Erweiterung ## Technische Eckpunkte - Protokoll: Custom Binary (kein Protobuf), TCP-Port 5000, `meshcore` PyPI-Bibliothek - Kanäle: SHA-256-Key-Ableitung aus Name, `on_radio`-Flag, Flood-Scope- und Path-Hash-Mode-Override pro Kanal - Path Hash Mode: 0/1/2 (1/2/3 Byte Hash), global + per-Kanal-Override, nur ab fw_ver >= 10 - Flood Scope: SHA-256-basierte Region-Strings, global + per-Kanal-Override - Frequenz-Presets: EU (869.525/62.5kHz/SF8), US (910.525/62.5kHz/SF7), CH, AU, Legacy EU - Keine Zusammenführung mit Meshtastic-Daten – vollständig getrennte Pipelines und UI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/meshcore-integration:feature/meshcore-integration
git switch feature/meshcore-integration

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feature/meshcore-integration
git switch feature/meshcore-integration
git rebase main
git switch main
git merge --ff-only feature/meshcore-integration
git switch feature/meshcore-integration
git rebase main
git switch main
git merge --no-ff feature/meshcore-integration
git switch main
git merge --squash feature/meshcore-integration
git switch main
git merge --ff-only feature/meshcore-integration
git switch main
git merge feature/meshcore-integration
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ppfeiffer/MeshDD-Bot!21
No description provided.