Netz — Dashboard · Kurzanleitung
════════════════════════════════════════════════════════════════════════
NETZBRETT-V1 · 17.08.2026

Was es beantwortet
──────────────────
  Die zwei Fragen, die im Turnier wirklich gestellt werden:
    · Ist das Gerät erreichbar?
    · Wie komme ich drauf?

Einrichten
──────────
  1. Ordner netz/ ins Web-Verzeichnis kopieren — unter Abyss oder auf den
     CAPT-Server. Braucht nur PHP.
  2. Der Ordner muss für den Webserver BESCHREIBBAR sein (geraete.json).
  3. Im Browser öffnen.

  Kein JEM, keine Datenbank, keine Anmeldung, kein Internet nötig.

Die Dateien
───────────
  index.php     das Dashboard
  setup.php     Geräte wählen, GLPI-Import, Netz-Scan
  lib.php       Prüfung, Scan, Geräteverwaltung
  glpi.php      GLPI-Anbindung
  pruefen.php   Endpunkt für das Dashboard
  geraete.json  die Geräteliste
  glpi-zugang.json  Zugangsdaten für GLPI

  Alles in einem Ordner — ein Kopiervorgang genügt.

Die Kachel
──────────
  Zeile 1   Name der Hardware, in voller Länge
  Zeile 2   Funktion — Matte 3, Regie, Wiegen … mit Knopf zum Ändern
  Zeile 3   Adresse und Zustand
  danach    Klartext, die geprüften Dienste, Remote- und Web-Knopf

  Das × oben rechts legt ein Gerät BEISEITE — es wird nicht mehr geprüft
  und nicht mehr angezeigt, ist aber nicht gelöscht. Über das Häkchen
  „beiseitegelegte" oben kommt es zurück. Endgültig entfernen geht nur
  im Setup, mit Rückfrage.

Warum Ports statt Ping
──────────────────────
  Ein Ping beweist nur, dass ein Netzwerkstapel antwortet. Ein RTMP-Server
  mit totem Dienst antwortet weiter auf Ping und leuchtet grün — während
  der Stream steht. Ein offener Port 1935 heißt dagegen: der Dienst LÄUFT.

  Drei Zustände statt zwei:
    [OK]         alle eingetragenen Dienste antworten
    [TEILWEISE]  erreichbar, aber nicht alles läuft   ← der wichtige Fall
    [WEG]        keine Antwort

  Nebeneffekt: braucht kein exec(), nur fsockopen. Ob Abyss exec() erlaubt,
  ist damit egal.

Mehrere Adressen je Gerät
─────────────────────────
  Mehr als die Hälfte der Geräte in GLPI hat mehrere: Halle und altes Netz,
  LAN und WLAN, dazu virtuelle Adapter. Der RTMP-Server hat fünf.

  Welche gerade gilt, wird NICHT geraten — es werden alle geprüft, und die
  antwortende ist die richtige. Das kostet praktisch nichts, weil ohnehin
  alles gleichzeitig läuft: 13 Geräte mit je einer Adresse brauchen 1,20 s,
  dieselben mit je fünf 1,20 s.

  Auf der Kachel steht die Adresse, die geantwortet hat. Ist es eine andere
  als die eingetragene, sagt der Text es dazu — „über 192.168.9.62". Das
  kleine +2 daneben heißt: es gibt zwei weitere. Die Erklärkarte listet
  jede einzeln mit ihrem Befund.

  Auch der Remote-Verweis nimmt die antwortende Adresse, nicht die tote.

  Beim Netzwechsel heißt das: alte und neue Adresse beide eintragen, und
  das Dashboard zeigt von selbst, welche gerade greift.

  Einzige Ausnahme beim Einlesen aus GLPI: 169.254er werden weggelassen.
  Die vergibt ein Rechner sich selbst, wenn kein DHCP antwortet — sie
  können nichts erreichen.

Remote bei den Handys
─────────────────────
  Android lässt sich über rustdesk://<Adresse> in der Regel NICHT erreichen;
  dort zählt die Kennung. Trag sie in GLPI ein — in irgendein Textfeld,
  gesucht wird in allen: Kommentar, Inventarnummer, Kontakt, Seriennummer.

  Wichtig ist nur das Wort davor:
      rustdesk: 987 654 321
      rustdesk=123456789
      RustDesk#1122334455

  Leerzeichen und Bindestriche sind erlaubt — die App zeigt die Kennung
  in Dreiergruppen an, und genau so lässt sie sich kopieren. Ohne das Wort
  „rustdesk" wird nichts erkannt, damit keine Seriennummer verwechselt wird.

Geschwindigkeit
───────────────
  Alle Geräte werden gleichzeitig geprüft. 13 Geräte in 1,2 Sekunden statt
  15,6 nacheinander. Beiseitegelegte werden übersprungen.

Geräte eintragen — drei Wege
────────────────────────────
  1. AUS HOSTS (Knopf im Dashboard)
     Übernimmt Name und Adresse aus der hosts-Datei. Da ihr sie ohnehin mit
     Hostman pflegt, ist das Pflege ohne zusätzliche Pflege. Vorhandene
     bleiben unangetastet, mehrfaches Einlesen doppelt nichts.

  2. AUS GLPI (Setup)
     Zugang einmal hinterlegen: Adresse der Schnittstelle, App-Token,
     Benutzer-Token. Dann „Geräte holen", auswählen, übernehmen.

     GLPI wird NUR auf Knopfdruck gefragt, nie im Betrieb — der Server steht
     im Rechenzentrum und ist aus der Halle womöglich nicht erreichbar.

     Zwei Regeln schützen die Daten:
       · Geräte OHNE GLPI-Kennung werden beim Import nie angefasst. Der
         Hallen-Router, den du vor Ort einträgst, ist unantastbar.
       · Bei GLPI-Geräten werden nur Name, Adresse und MAC aufgefrischt.
         Funktion, Ports und Notizen bleiben stehen.

     Steht im GLPI-Kommentar eine Zeile „rustdesk:123456789", wird sie als
     Remote-Kennung übernommen. Sonst genügt die Adresse.

  3. VON HAND (Setup)
     Name, Funktion, Adresse, Gruppe. Die Ports werden je Gruppe
     vorgeschlagen.

Netz scannen
────────────
  Findet Geräte, die in keiner Liste stehen — die wichtigste Auskunft in
  einer fremden Halle: was hängt hier drin, das ich nicht kenne?

  Gesucht wird auf Port 80, 445, 22 und 554; bei den Gefundenen zusätzlich
  auf 3389, 8080, 1935 und 139. Daraus wird eine Vermutung abgeleitet
  (RTSP → Kamera, 445+3389 → Windows-Rechner).

  Ein Gerät, das keinen dieser Ports anbietet, bleibt unsichtbar — das ist
  keine Fehlfunktion.

  Bei 254 Adressen dauert es rund zehn Sekunden. Bricht der Webserver
  vorher ab, sagt das Dashboard es und schlägt einen kleineren Bereich vor.

Remote
──────
  Der Knopf je Gerät erzeugt rustdesk://<adresse> — der Direktmodus im
  eigenen Netz. Keine Pflege nötig, der Verweis folgt der Adresse.

Was NICHT drin ist
──────────────────
  · Verlauf und Datenbank — ein Dashboard zeigt JETZT, nicht gestern.
  · Meldung an das JEM — das ist eine lokale Aufgabe.
  · Durchsatzmessung — die gehört auf den betroffenen Rechner. Vom
    CAPT-Server gemessen sagt sie nichts über den Laptop an Matte 3.
  · SNMP-Auswertung des MikroTik — kommt, sobald er eine Adresse hat.
    Siehe MIKROTIK-EINRICHTEN.txt.
