Auf Eddys Vorschlag. Der Android-Emulator hat keine WLAN-Hardware und liefert bei jedem Scan null Netze — Kanalgraph, Gruppierung, Kanalempfehlung und die Warnregeln ließen sich damit auf dem Gerät überhaupt nicht ansehen. Genau deshalb ging die erste Fassung der Diagramme unbemerkt unlesbar in den Einsatz. Schalter in den Einstellungen (Diagnose → WLAN-Demodaten). Ist er an, zeigt die Kanalanalyse eine realistische Beispielumgebung statt echter Messwerte. Die Daten decken bewusst die Grenzfälle ab: Mesh über zwei Bänder, mehrere Netze auf demselben Kanal, ein 40-MHz-Netz im 2,4-GHz-Band und ein DFS- sowie ein 160-MHz-Netz im 5-GHz-Band (lösen beide Warnregeln aus), Netze in allen drei UNII-Blöcken, ein Netz am Bandrand, ein offenes Netz ohne Standard-Angabe. Leichtes Rauschen je Scan, damit mehrere Momentaufnahmen einen Zeitverlauf mit sichtbarem Auf und Ab ergeben. Damit keine Demo je für eine echte Messung gehalten wird: - deutlich sichtbarer Hinweis im Kopf der Seite, solange der Modus an ist - Messungs-Label beginnt mit "DEMODATEN — " - result-JSON trägt demodaten:true; Dolibarr zeigt das in der Kartenansicht und im PDF als eigene Zeile (PDF besonders wichtig, das Dokument geht zum Kunden) Im Emulator durchgespielt: Schalter an -> Kanalanalyse zeigt alle Diagramme mit Netzen, 5-GHz-Band in drei lesbaren UNII-Blöcken, Fazit-Zeile und alle drei Warnhinweise korrekt. Momentaufnahme gespeichert, synchronisiert und in der Test-DB geprüft: Label und result-Flag korrekt als Demo markiert. Zweitnutzen: Vorführung beim Kunden, unabhängig davon was gerade in der Luft ist. |
||
|---|---|---|
| .forgejo/workflows | ||
| android | ||
| native-plugin | ||
| src | ||
| tools | ||
| .gitignore | ||
| capacitor.config.ts | ||
| package.json | ||
| README.md | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
NetDiag — Diagnose-App (Android)
Mobile Netzwerk-Diagnose-App. Erfasst vor Ort beim Kunden (Handy am WLAN oder
USB-C→RJ45-Adapter) Geräte, Ports und Messungen und hängt die Protokolle ans
Dolibarr-Modul netdiag an Kunde und Auftrag.
Stack
SvelteKit 2 · Svelte 5 · Tailwind 4 · Vite 7 · Capacitor 6 · SQLite-Offline
Entwicklung (Browser)
npm install
npm run dev # http://localhost:5175
Im Browser liefert ein Mock (src/lib/scanner.ts) Beispiel-Scandaten — die
Oberfläche lässt sich ohne Gerät entwickeln. API-Aufrufe gehen über den
Vite-Proxy an den Dolibarr-Testserver (192.168.155.11, siehe vite.config.ts).
Android-Build
npm run build
npx cap add android # einmalig
# android/ liegt komplett im Repo — cap sync kopiert nur die Web-Assets
npx cap sync android
npx cap open android
Release-APK über CI: Commit mit [apk] in der Message → Forgejo baut und lädt
die APK in die Package Registry (netdiag-apk). Siehe .forgejo/workflows/build.yml.
Architektur
src/lib/
api.ts JSON-API-Client (JWT, 401-Refresh, Timeout)
auth.svelte.ts Anmelde-Status
db.ts Offline-Speicher (SQLite nativ / localStorage Browser)
sync.svelte.ts Sync-Queue -> Dolibarr (idempotent über clientUuid)
scanner.ts Brücke zum nativen Plugin (+ Browser-Mock)
backButton.svelte.ts Hardware-Back (Single-Instance, KB #480/#549)
updater.ts APK-Auto-Update-Prüfung (KB #363)
tools/ erweiterbare Tool-Plattform
index.ts Registry — neues Tool hier eintragen
netzwerk/ IP-Scan, Port, Ping, IP-Konflikt, SNMP, Traceroute, Stress
internet/ Durchsatz-Test
telefonie/ (folgt: SIP, FreePBX, RTP)
src/routes/
login/ auftraege/ kunden/ protokoll/[id]/ einstellungen/
android/ natives Android-Projekt inkl. Kotlin-Plugin (einzige Quelle)
native-plugin/ nur noch Anleitung/Hinweise zum Plugin
Neues Tool hinzufügen
- Datei unter
src/lib/tools/<kategorie>/<id>.tsanlegen,Toolimplementieren. - In
src/lib/tools/index.tsimportieren und inTOOLSeintragen.
Kein Eingriff in App-Logik, Sync oder Datenbank — das Ergebnis ist generisches JSON. Braucht das Tool eine neue native Messroutine, eine Methode im Kotlin-Plugin ergänzen.
Bedienung
- Anmelden (Dolibarr-Zugang; auf dem Gerät zusätzlich Server-URL).
- Aufträge — aktive direkt sichtbar, abgeschlossene per Checkbox, Suche. Alternativ über Kunden suchen.
- Auftrag/Kunde antippen → Diagnose-Protokoll öffnet sich.
- Werkzeuge ausführen (IP-Scan füllt die Geräteliste, je Gerät weitere Tools).
- Abschließen & synchronisieren — Protokoll geht ans Dolibarr, PDF landet im ECM. Offline bleibt es lokal und synct automatisch bei Verbindung.