feat: Deutsche Meshtastic Channel-Datenbank mit Unterseite /channels #19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Eine öffentlich einsehbare Datenbank bekannter deutscher Meshtastic-Kanäle mit Name, PSK, Modem-Preset, Region und Beschreibung. Admins können Einträge verwalten, alle können lesen.
Datenbankschema
Neue Tabelle
channels:idnamepskdefaultmodem_presetLONG_FAST,LONG_SLOW,MEDIUM_FASTregionDeutschland,Sachsen,Dresdendescriptionurlmeshtastic://URL (optional)websiteis_verifiedcreated_atAPI-Routen
/api/channels/api/channels/api/channels/{id}/api/channels/{id}Unterseite
/channelsÖffentlich zugänglich (kein Login nötig)
Frequenzberechnung (djb2-Hash)
Meshtastic berechnet den Frequenz-Slot deterministisch:
Berechnete Slots für EU_868 breit (863–870 MHz, 28 Slots)
⚠ Kollision:
LongSlowundMeshHHlanden beide auf Slot 26 → gleiche Frequenz, nur PSK trennt sie.Wichtiger Hinweis für EU_868 schmal (Standard DE, 869.4–869.65 MHz)
Im offiziellen deutschen ISM-Band ist nur ein einziger 250-kHz-Slot erlaubt →
numChannels = 1.Alle Kanäle senden auf 869.525 MHz – unabhängig vom Namen.
Die Kanalname-Trennung erfolgt in EU_868 ausschließlich über den PSK (Verschlüsselung).
Dieser Hinweis wird in der UI prominent über der Frequenzspalte angezeigt:
Seed-Daten (
config/channels_seed.yaml)Die Datei liegt bereits im Repository. Beim ersten Start werden bekannte Kanäle automatisch eingespielt:
Standardkanäle (verifiziert, PSK
AQ==): LongFast, LongSlow, MedFastCommunity-Kanäle (PSK zu ergänzen): MeshD, MeshDresden, MeshBerlin, MeshHH, MeshMUC, MeshRuhr, MeshSaxony
Sonderkanäle: Emergency (Slot 0), TAC (SHORT_FAST)
Implementierung
database.py: Tabellechannels, CRUD-Methoden, Seed-Import auschannels_seed.yamlwebserver.py: API-Routen, Seiten-Route/channelsstatic/channels.html+static/js/channels.js(inkl. djb2-Hash-Berechnung im Browser für Live-Frequenzanzeige)app.js: Sidebar-Eintrag (Public)Datenschutz-Hinweis
PSKs sind technisch öffentlich (wer den Kanal kennt, kennt den PSK), aber trotzdem standardmäßig maskiert dargestellt – bewusste Anzeige per Klick.