Zum Inhalt springen

Routing und Signalweg

Aus MegBes Wiki

Routing und Signalweg

[Bearbeiten]

Zweck

[Bearbeiten]

Diese Seite beschreibt den Weg eines Steuerbefehls vom Bediengerät bis zur Medienstation. Sie dient zugleich als Reihenfolge für die Fehlersuche: Jede Stufe muss erreichbar sein und den Befehl korrekt an die nächste Stufe übergeben.

Signalweg

[Bearbeiten]
Web-Frontend oder App
         ↓ HTTPS
megbes-external im projektspezifischen Container
         ↓ HTTP oder HTTPS über die konfigurierte Adresse
Router beziehungsweise FRITZ!Box am Ausstellungsort
         ↓ Portweiterleitung
megbes-internal auf dem lokalen Server
         ↓ UDP im lokalen Ausstellungsnetz
Medienstation oder UDP-zu-GPIO-Umsetzer

1. Web-Frontend oder App

[Bearbeiten]

Die Bedienoberfläche erzeugt eine Anforderung mit Stationsnummer und einem oder mehreren projektspezifischen Befehlen. Je nach Projekt ist vorher eine Anmeldung, Ticketprüfung oder direkte Berechtigung erforderlich.

2. megbes-external

[Bearbeiten]

`megbes-external` prüft die projektbezogene Authentifizierung und leitet zulässige Anforderungen an den in der Konfiguration hinterlegten internen Server weiter. Pro Kunde beziehungsweise Projekt läuft ein eigener Container. Die konkrete Domain, Containerbezeichnung und Konfiguration gehören auf die jeweilige Projektseite.

3. Öffentlicher Übergang zum Ausstellungsnetz

[Bearbeiten]

Die Zieladresse des internen Servers wird projektspezifisch konfiguriert. Bei wechselnder öffentlicher IP-Adresse kann eine DynDNS-Adresse verwendet werden. Der Router muss den vorgesehenen externen Port an die feste lokale Adresse und den Dienst-Port von `megbes-internal` weiterleiten.

4. megbes-internal

[Bearbeiten]

`megbes-internal` nimmt die weitergeleitete Anforderung entgegen. Je nach Projekt wird die Verbindung mit Headern oder einem Client-Zertifikat abgesichert. Anschließend zerlegt die Anwendung die Kombinationen aus Stationsnummer und Befehl und übergibt sie an den UDP-Sender.

5. UDP im Ausstellungsnetz

[Bearbeiten]

Aus der Stationsnummer wird mit dem projektspezifischen lokalen Subnetz die Zieladresse gebildet. Der Befehl wird als UDP-Nutzlast an den konfigurierten Port der Station gesendet. Subnetz und UDP-Port dürfen nicht ungeprüft von einem anderen Projekt übernommen werden.

6. Medienstation

[Bearbeiten]

Die Medienstation verarbeitet den vereinbarten Befehl. Mögliche Empfänger sind BrightSign-Player, PCs, Raspberry Pis oder andere UDP-fähige Geräte. Bei stationsgesteuerten Projekten sendet die Station zusätzlich Zustandsmeldungen zurück; siehe Client-Feedback und Stationsmeldungen.

Fehlersuche entlang des Signalwegs

[Bearbeiten]
  1. Prüfen, ob das Web-Frontend geladen wird und die Anforderung tatsächlich absendet.
  2. Im Log von `megbes-external` prüfen, ob die Anforderung angenommen oder wegen Authentifizierung beziehungsweise Stationsbelegung abgelehnt wurde.
  3. Prüfen, ob die konfigurierte Adresse des internen Servers aufgelöst wird und von außen erreichbar ist.
  4. DynDNS-Eintrag, öffentliche IP-Adresse und Portweiterleitung am Router vergleichen.
  5. Im Log von `megbes-internal` prüfen, ob der Aufruf ankommt und ein UDP-Signal erzeugt wird.
  6. Lokale IP-Adresse, Subnetz, Zielstation und UDP-Port prüfen.
  7. Auf der Medienstation kontrollieren, ob der UDP-Empfänger läuft und der konkrete Befehl unterstützt wird.

Typische Fehlerbilder

[Bearbeiten]
Beobachtung Wahrscheinlicher Bereich Nächster sicherer Prüfschritt
Web-Frontend ist nicht erreichbar Domain, Container oder `megbes-external` Containerstatus und externes Anwendungslog prüfen. Anmeldung funktioniert, Steuerung jedoch nicht Verbindung zwischen externer und interner Ebene Zieladresse, DNS-Auflösung und Log von `megbes-external` prüfen. Interner Server ist von außen nicht erreichbar DynDNS, Router oder Portweiterleitung Öffentliche IP-Adresse und Routerregel abgleichen. Aufruf erreicht `megbes-internal`, Station reagiert nicht lokales Netz, UDP-Ziel oder Stationssoftware Stations-IP und UDP-Port prüfen; anschließend Empfang auf der Station testen. Einzelne Befehle funktionieren nicht projektspezifisches Befehlsformat Befehl mit der Projektkonfiguration und der Stationssoftware vergleichen. Station bleibt als belegt angezeigt fehlende oder falsche Zustandsmeldung Rückkanal nach Client-Feedback und Stationsmeldungen prüfen.

Dokumentation je Projekt

[Bearbeiten]

Auf der Projektseite sind mindestens die verwendete externe Domain, die Art der Erreichbarkeit des internen Servers, die Portzuordnung, das lokale Subnetz, der UDP-Port, die Betriebsart und der installierte Release zu dokumentieren. Passwörter, Tokens, private Schlüssel und geheime Headerwerte gehören nicht ins Wiki.