MeshDash-SQL ist eine webbasierte Client-Anwendung zur Anzeige und Verwaltung von Nachrichten
auf Geräten mit der Firmware MeshCom.
Die Datenverarbeitung und -speicherung erfolgt über SQLite3, daher der Zusatz "SQL".
MeshDash ist bewusst als PHP-basierte Web-Appliance gebaut.
Installation und Betrieb sollen ohne Linux-Kenntnisse über
die Weboberfläche möglich sein. Darum werden Hintergrundprozesse,
Zeitsteuerung, Updates, Backups und Diagnose innerhalb des PHP/Apache-Kontexts verwaltet.
Dieses Projekt basiert ursprünglich auf der Arbeit von DL4QB.
Mit seiner tatkräftigen Unterstützung wurde daraus dieses Projekt entwickelt.
Es handelt sich um ein Freizeit-Hobbyprojekt, das die Anwendung und Bedienung von MeshCom
auf eine webbasierte Plattform bringen soll.
MeshDash-SQL wurde primär für den Einsatz auf einem Raspberry Pi mit Linux entwickelt.
Es ist aber auch auf jedem Debian-OS in einer VM bis einschließlich Trixie und sogar Docker lauffähig.
Unter Windows ist MeshDash auch lauffähig mit etwas fundierten kenntnissen über Apache/PHP.
Benötigt werden u.a. die PHP-Module: socket, sqlite3, curl, zip und unzip.
Zu MeshDash auf Docker gibt es im letzten Abschnitt weitere Infos.
Ab v1.10.84 ist PHP >= 8.x Voraussetzung!
- Echtzeit-Anzeige der Nachrichten
- Speicherung und Archivierung der Daten mittels SQLite3-Datenbank
- Anlage individuelle Filtergruppen
- Ausführung von Skripten via Keywords
- Remote Mheard-Abfragen
- Soundbenachrichtigungen für eigene Nachrichten
- Update über die Weboberfläche inkl. Download
- Restore-Funktion eines zuvor angelegten Backups
- Senden von Befehlen an den Node
- Sensorabfragen mit Schwellwertbenachrichtigung
- Senden von Nachrichten über eine Send-Queue mit festen Intervallen.
Dies gewährleistet, das aufeinanderfolgende Nachrichten mit einem
eingestellten Zeitabstand gesendet werden, um Sendekollisionen zu vermeiden. - Anzeige via Byte-Counter über die verbleibende Anzahl von Zeichen pro Nachricht.
- Auswahl gängiger Emoji über ein DropDown zum Einfügen in die Nachricht.
- Zusätzliche Kennzeichnung neuer Nachrichten mit Hintergrundfarbe und Sound.
- Suchfunktion nach Auswahlkriterien über die gesamte Nachrichtendatenbank möglich.
- Grafische Anzeige der lokalen MHEARD mit Open-Street-Map
- Darstellung der Nachrichten im Bubble-Style
- HF-Reichweitentest zur Analyse der Funkabdeckung + Remote-Aktivierung der Bake via OTP
- Upload von Sound-/Skripten für Benachrichtigungen und Keyword-Aktionen
- Dyn. erweiterbare Call-/Keyword-Definitionen (keine Feldbegrenzung mehr)
- Unterstützung der Anzeige auf mobilen Geräten Smartphone/Tablett
- Call-basierte Notizfunktion
- Mehrsprachenunterstützung (DE/EN/FR/ES/NL/IT)
- MeshDash mit Dark-Mode-Ansicht
- UDP-Datagramm Weiterleitung
- MeshDash in Docker-Umgebung
- Sensordaten-Diagramm
- NINA-API integriert (derzeit nur Abfragen)
Sollten Probleme auftreten, bitte im GitHub-Issue-Bereich melden – falls das Problem
noch nicht dort beschrieben ist.
Es gibt außerdem eine Telegram-Gruppe zu MeshDash.
Den Link zur Einladung senden wir auf Anfrage gerne zu.
Die aktuellen Releases von MeshDash findest du auf der GitHub-Seite unter dem Reiter „Releases“:
https://github.com/dh5dan/meshdash/releases
Dort stehen jeweils die aktuellen Versionen als ZIP-Dateien zum Download bereit.
🔴 Wichtiger Hinweis für neue Benutzer:
Die Dateien befinden sich unter Assets – bitte darauf klicken, um die Liste auszuklappen!
Die aktuelle Version kann direkt über MeshDash geladen werden, um auf dem neuesten Stand zu bleiben.
Für die Installation sind nur folgende Dateien relevant:
Hier mal ein Beispiel:
- meshdash-sql_Vx.xx.xx.zip - Das Hauptprogramm
- install.sh - Installationsskript (bei Neuinstallation)
- update_5d.sh - Update-Skript - (optional, da Webupdate möglich)
- Manual-MeshDas-SQL.pdf - Ausführliches Benutzerhandbuch
- Optional eine Autostart-Funktion von MeshDash (kein einmaliger Browseraufruf mehr nötig).
MeshDash-SQL bietet die Möglichkeit, zuvor erstellte Backups wiederherzustellen.
So kannst du bei Problemen oder nach einem Update den vorherigen Zustand einfach zurückspielen.
Wichtig:
Die Datensicherheit ist nur gewährleistet, wenn auch die Datenbank mitgesichert wurde.
Der Restore erfolgt über das Webinterface oder manuell, je nach Bedarf.

Das Layout zeigt Nachrichten nun als Sprechblasen, ähnlich wie bei Messenger-Apps,
was für eine bessere Übersicht und ein moderneres Design sorgt.

Die frühere Kurzanleitung.pdf wurde durch eine umfassende Anleitung ersetzt: die Manual-Mesh-Dash-SQL.pdf.
Diese enthält:
- Eine Installationsanleitung mit den wichtigsten Schritten zur Einrichtung von MeshDash.
- Ein detailliertes Benutzerhandbuch mit Screenshots der Weboberfläche und Erläuterungen zu den Menüpunkten.
- Einen Troubleshooting-Guide mit Tipps zur Fehleranalyse.
Das Manual unterstützt dabei, MeshDash schnell zu installieren und effektiv zu nutzen.
Es wird regelmäßig aktualisiert.
MeshDash unterstützt nun ab V 1.10.70 auch die Dark-Mode-Ansicht
Aktivierung des Dark-Mode in den Basiseinstellungen

Hier mit ausgeklappter Favoritenliste.
Diese kann individuell an die eigenen Bedürfnisse angepasst werden.

Komplette Kommandoliste mit Funktionsbeschreibung

MeshDash ist nun in 6 Sprachen verfügbar:
Deutsch, Englisch, Französisch Spanisch, Niederländisch und Italienisch.
Die Übersetzungen wurde mithilfe einer KI erstellt und können ggf. noch unvollständig sein.
In Meshdash besteht jedoch die Möglichkeit, diese Übersetzungen individuell anzupassen.
Ideal zur Fehleranalyse als Screenshot.
Hier können außerdem unkompliziert Logdateien heruntergeladen werden,
die zusätzliche hilfreiche Informationen liefern.
Die Byte-Anzeige berücksichtigt das UTF-8-Format,
da UTF-8-Zeichen mehr als 1 Byte belegen können.
Die maximale Textlänge ist aktuell auf 150 Zeichen begrenzt.
Über ein Drop-Down-Menü kann aus einer Auswahl gängiger Emojis gewählt werden.

Über das Lupen-Symbol wird der Suchdialog geöffnet, in dem verschiedene Suchkriterien ausgewählt werden können.

Ein Klick auf ein Datumsfeld öffnet einen Datums- und Zeit-Dialog zur einfachen Auswahl.

Die Hintergrundfarbe der Tabs sowie Soundbenachrichtigungen lassen sich individuell pro Tab-Gruppe einstellen.

Wir können über Intervall-Baken nun auch einen HF-Reichweitentest ausführen.
Einstellbar sind Intervallzeiten/Stop-Count sowie ein Freitext.
Gesendet wird im Präfix der Counter wie auch die eingestellte Intervallzeit.
Die Bake kann auch aus der Ferne über ein OTP (One-Time-Password) gestartet werden.
![]()
Die Anzeige ist auch als Fullsize-Map verfügbar.
Ein-/Ausblenden von Verbindungen oder aller indirekten Nodes (via Repeater).
Filtermöglichkeit über das Datum (nur in Fullsize-Map).
Eine Legende über die Bedeutung der farblichen Node-Icons.
PopUp zu jedem Icon/Verbindung mit weiteren Informationen sofern verfügbar.
Seit Version 1.10.98 ist die NINA-API in MeshDash integriert.
Aktuell werden ausschließlich Abfragen der einzelnen Warnkategorien unterstützt.
Die zuletzt verwendete ARS-Eingabe wird gespeichert.
Hinweis zum amtlichen Regionalschlüssel (12 Stellen):
Die NINA-API stellt Daten ausschließlich auf Kreisebene bereit.
Bei manueller Eingabe wird der ARS automatisch mit Nullen auf 12 Stellen ergänzt.

Die Suche der ARS-Region verfügt über eine Autovervollständigung,
die ab dem dritten eingegebenen Buchstaben aktiviert wird.
Die zugrunde liegende Datenbank basiert auf dem Stand vom 31.07.2021.

Die Erläuterungen zu den Warnkategorien werden über ein Pop-up angezeigt.
Durch Klick auf eine Warnkategorie öffnet sich die entsprechende Beschreibung.

Hier eine Beispielabfrage der Warnkategorie NINA für Rosenheim
inklusive der Warnkategorie MOWAS.

Sensordaten können nun grafisch als Diagramm dargestellt werden.
Es ist möglich MeshDash auch in einer Docker-Umgebung laufen zu lassen.
Ich habe dies experimentell mal auf einer Synology DS1522+ eingerichtet.
Zum Einsatz kommen 2 Image-Container: PHP + nginx (Webserver).
Version nginx: nginx:1.29.1-bookworm-perl (oder höher)
Version php : php:8.4.12-fpm-trixie (oder höher)
- html (für den Webinhalt)
- conf.d (für die nginx konfiguration)
- logs (Logfile des nginx Webserver. Optional aber vielleicht von Interesse)
Nginx: 8080:80 host:container/protokoll (tcp ist default)
PHP: 1799:1799/udp host:container/protokoll
- docker-compose.yml (baut den eigentlichen Docker Container mit allen Einstellungen)
- Dockerfile (baut ein Docker-PHP Image mit zusätzlichen Modulen socket,zip etc..)
- default.conf (Konfigurationsdatei für den nginx Webserver)
Je nach System kann der Name der "docker-compose.yml" anders heißen.
Synology nennt sie zwar "docker-compose.yml" speichert sie aber als "compose.yaml" ab.
Das "Dockerfile" welches die Information zum Bauen des PHP-Images beinhaltet,
liegt bei mir in einem Sub-verzeichnis "php-addon".
Man kann es aber auch auf einer Ebene (./) legen. Hier muss man dann aber bei
"build" den Pfad herausnehmen.
Die Quell-Pfade für Mountpoints müssen an die persönlichen lokalen
Gegebenheiten angepasst werden. Auch ist es wichtig die jeweiligen
Datei-/Verzeichnisrechte korrekt zu setzten, damit Docker auch schreiben/Lesen kann.
Das ist eines der meisten Ursachen, wenn etwas nicht wie erwartet funktioniert.
Seht diese Dateien als Hilfestellung/Template an, um euch besser orientieren zu können.
services:
web:
image: nginx:1.29.1-bookworm-perl
container_name: nginx
volumes:
- /volume1/backup/docker-syno/meshdash-sql/html:/usr/share/nginx/html # place your files for web here
- /volume1/docker/meshdash-sql/nginx/nginx-conf:/etc/nginx/conf.d # place provided nginx.conf here
- /volume1/backup/docker-syno/meshdash-sql/nginx/logs:/var/log/nginx
restart: unless-stopped
ports:
- 8080:80 # Port-Mapping external:internal
expose:
- 80
depends_on:
- php # Erst starten wenn PHP Up and ready ist
php:
build: ./php-addon # <- Ordner, in dem deine Dockerfile liegt
container_name: php
volumes:
- /volume1/backup/docker-syno/meshdash-sql/html:/usr/share/nginx/html # must be same path as above in nginx
restart: unless-stopped
working_dir: /usr/share/nginx/html
ports:
- "1799:1799/udp" # UDP für MeshDash
expose:
- 9000 # nur intern für nginx (optional)
Der Name "Dockerfile" ist Groß-/kleinschrift abhängig.
Das "D" muss hier großgeschrieben werden.
Die Datei liegt im Sub-Verzeichnis zur compose.yaml in /php-addon
hier werden die Module Sockets, Zip, Unzip und Netzwerk-Tools installiert,
welche MeshDash benötigt.
FROM php:8.4.12-fpm-trixie
# Installiere procps (für pgrep) + Sockets Extension + ggf. andere Basics
# procps für pgrep
RUN apt-get update && apt-get install -y procps net-tools libzip-dev unzip && rm -rf /var/lib/apt/lists/*
# PHP-Sockets installieren
RUN docker-php-ext-install sockets zip calendar
WORKDIR /usr/share/nginx/html
server {
listen 80;
server_name localhost;
client_max_body_size 50M;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}Alle aktuellen Features und gemeldeten Bugs sind im GitHub-Bereich ISSUES
dokumentiert und können dort verfolgt werden.

























