Dolibarr-Modul NetDiag — Netzwerk-Diagnose-Protokolle, JSON-API für die NetDiag-App
Find a file
Eduard Wisch d079431cdf Phase 5 abgeschlossen: Klarnamen, Parameter, Listen-Ampel, N+1, Standort
- Werkzeug-Klarnamen statt interner IDs: "IP-Scanner — 46 Geräte im Netz …"
  statt "[netzwerk] ipscan — …". Bewusst eine kurze Zuordnung in
  netdiagToolName() statt eines zweiten Satzes Sprachschlüssel — die
  kanonischen Namen stehen in der App, doppelte Pflege wäre eine Fehlerquelle.
  Enthält auch dhcpcheck/wifiscan: in der App gibt es sie nicht mehr, in der
  PRODUKTIONSDATENBANK stehen dazu aber noch Messungen (4 bzw. 2). Die
  Gegenprüfung hielt den Punkt für gegenstandslos, hatte dabei aber nur die
  Testdatenbank angesehen.

- Messparameter anzeigen (Prod-Messung #126): unter jeder Messung steht jetzt
  "Ziel: 192.168.1.1 · Dauer (s): 300" in Karte und PDF. Vorher stand das
  Ergebnis ohne Bezugspunkt da — man sah nicht, wogegen gemessen wurde.

- Listenseite: Ampel je Protokoll (schlechteste Einzelmessung) plus Anzahl,
  dazu ein Filter "nur mit Befund". Status 3 "nicht messbar" geht bewusst
  NICHT ins Maximum ein — er ist keine Aussage über das Kundennetz — sondern
  wird separat als "n.m." ausgewiesen. Im Browser geprüft: der Filter liefert
  ausschließlich Protokolle mit Warnung oder Fehler.

- N+1-Queries behoben: fetchAllByProtocol() las nur die rowids und setzte je
  Zeile ein eigenes fetch() ab. Jetzt eine Abfrage mit setVarsFromFetchObj(),
  zusätzlich mit Entity-Filter (fehlte bisher ganz). Nachgemessen über
  SHOW SESSION STATUS: 46 Geräte + 7 Messungen brauchen statt 55 Abfragen
  noch eine.

- Standort aus der Kundenadresse vorbelegen, wenn der Techniker nichts
  eingetragen hat; eine vorhandene Angabe wird nie überschrieben. Über die
  echte API geprüft.

Offen bleibt aus Phase 5 nur der Vergleich zweier Protokolle (Geräte-Diff
nach MAC) — eigenes Feature mit eigener Ansicht.
2026-08-16 11:09:28 +02:00
.forgejo/workflows Initiales Commit — Dolibarr-Modul NetDiag [deploy] 2026-05-19 12:12:11 +02:00
admin Initiales Commit — Dolibarr-Modul NetDiag [deploy] 2026-05-19 12:12:11 +02:00
api Phase 5 abgeschlossen: Klarnamen, Parameter, Listen-Ampel, N+1, Standort 2026-08-16 11:09:28 +02:00
class Phase 5 abgeschlossen: Klarnamen, Parameter, Listen-Ampel, N+1, Standort 2026-08-16 11:09:28 +02:00
core/modules Anmeldung ueber das zentrale Auth-Modul awlauth — v1.1.0 [deploy] 2026-08-14 18:23:29 +02:00
langs Phase 5 abgeschlossen: Klarnamen, Parameter, Listen-Ampel, N+1, Standort 2026-08-16 11:09:28 +02:00
lib Phase 5 abgeschlossen: Klarnamen, Parameter, Listen-Ampel, N+1, Standort 2026-08-16 11:09:28 +02:00
sql Phase 5: Kundendokument lesbar, Gerätemerkmale kommen endlich an 2026-08-15 18:54:01 +02:00
ChangeLog.md Anmeldung ueber das zentrale Auth-Modul awlauth — v1.1.0 [deploy] 2026-08-14 18:23:29 +02:00
netdiag_object_tab.php Initiales Commit — Dolibarr-Modul NetDiag [deploy] 2026-05-19 12:12:11 +02:00
netdiagindex.php Phase 5 abgeschlossen: Klarnamen, Parameter, Listen-Ampel, N+1, Standort 2026-08-16 11:09:28 +02:00
netdiagprotocol_card.php Phase 5 abgeschlossen: Klarnamen, Parameter, Listen-Ampel, N+1, Standort 2026-08-16 11:09:28 +02:00
README.md orders.php: Auftragsliste nach letzter Bearbeitung sortieren [deploy] 2026-05-19 22:05:09 +02:00

NetDiag — Netzwerk-Diagnose für Dolibarr

Dolibarr-Modul für die Ablage von Netzwerk-Diagnose-Protokollen. Erfasst per mobiler App (siehe Projekt NetzwerkDiagnose/app) gefundene Geräte, Ports und Messungen und hängt die Protokolle dauerhaft an Kunde und Auftrag.

Funktionen

  • Datenmodell: Protokoll → Geräte → Messungen (llx_netdiag_*)
  • Tab Netzwerk-Diagnose an Kunde (thirdparty) und Auftrag (commande)
  • JSON-API unter /custom/netdiag/api/ für die mobile App (JWT-Auth)
  • PDF-Protokoll, wird im Dokumentenarchiv (ECM) abgelegt
  • Rechtesystem: netdiag → protocol → read/write/delete
  • Mehrsprachig (de_DE, en_US)
  • QR-Code zum App-Download in der Modul-Einrichtung

Installation

  1. Verzeichnis netdiag/ nach htdocs/custom/ auf den Dolibarr-Server kopieren. Auf dem Produktivsystem übernimmt das die Forgejo-Pipeline (.forgejo/workflows/deploy.yml) — Commit mit [deploy] in der Message synct das Modul automatisch auf den Server.
  2. In Dolibarr: Einrichtung → Module → NetDiag aktivieren.
  3. Beim Aktivieren werden die Tabellen llx_netdiag_protocol, llx_netdiag_device, llx_netdiag_measurement angelegt und ein JWT-Schlüssel erzeugt.
  4. Benutzern das Recht NetDiag → Protokolle lesen/schreiben geben.

API-Endpunkte

Alle unter https://<dolibarr>/custom/netdiag/api/:

Endpunkt Methode Zweck
auth.php POST {login,password} Anmeldung → {token,expiresIn,user}
customers.php GET ?q= / ?id= Kundensuche / Kundendetail
orders.php GET ?open=1&q= / ?id= Auftragsliste / Auftragsdetail
protocols.php GET ?id= Protokoll mit Geräten + Messungen
protocols.php POST {action:"sync",protocol:{…}} Protokoll anlegen/aktualisieren (idempotent über clientUuid)
pdf.php GET ?id=&jwt= Protokoll-PDF streamen

Authentifizierung per Authorization: Bearer <token> oder ?jwt=<token>.

Einrichtung

Einrichtung → Module → NetDiag → Einstellungen:

  • Token-Gültigkeit (Sekunden)
  • App-Download-URL (APK) — wird als QR-Code angezeigt

Lizenz

GPLv3