Kameraprogramm herunterladen · macOS / Windows
Ausführliche PDF-Arbeitsanleitung · Installation, Kalibrierung und Betrieb
1. Zweck und Grenzen
Die lokale Kamerastation liest farbige Magnete auf einer kalibrierten 0–13-Skala. Als Bildquellen stehen Simulator, Bild-Upload und eine Reolink-Kamera über ihre lokale Kamera-API bereit. Die Reolink-Anbindung kann Bilder abrufen, die Kamera bewegen sowie Zoom, Fokus und gespeicherte Positionen bedienen. Die vorliegenden Hallenfotos erfordern eine Kalibrierung je Tafel; eine allgemeine automatische Tafelerkennung ist nicht zugesichert.
Standard ist die manuelle Bestätigung. Eine reine Erkennung ändert keinen Spielstand. Auch eine übertragene Kamerameldung ist nur die Meldung einer Mannschaftsseite und ersetzt keine Endergebnisbestätigung.
2. Installation und Start am Hallenrechner
Das Projektverzeichnis auf einen Mac oder Windows-Rechner mit Python 3.12 oder neuer kopieren. Im Terminal im Projektverzeichnis folgende Befehle verwenden:
python3 -m venv .venv-camera
# macOS:
.venv-camera/bin/python -m pip install -r requirements-camera.txt
.venv-camera/bin/python -m camera_station
# Windows (Python-Launcher):
py -3 -m venv .venv-camera
.venv-camera\Scripts\python -m pip install -r requirements-camera.txt
.venv-camera\Scripts\python -m camera_stationBeim Start eine lokale Stations-PIN mit mindestens acht Zeichen festlegen. Anschließend http://127.0.0.1:8765 auf demselben Rechner öffnen und entsperren. Diese PIN schützt nur den lokalen Bedienplatz; die Anmeldung am SBV-Portal bleibt unverändert. Der Dienst bindet ausschließlich an die lokale Loopback-Adresse. Mit Strg+C beenden.
Kamerazugang aus .env und passende Betriebsart
Im entpackten Paketordner starten. Die Station liest SBV_CAMERA_URL, SBV_CAMERA_USER und SBV_CAMERA_PASSWORD aus der lokalen .env. Fehlende Angaben werden beim Start abgefragt und anschließend gespeichert; das Passwort wird unsichtbar eingegeben. Andere Dateieinträge bleiben erhalten. Die nächste Anmeldung verwendet die gespeicherten Werte. Die Stations-PIN wird weiterhin separat abgefragt.
python -m camera_station: Simulator bzw. Bild-Upload.python -m camera_station --reolink-test: echte Kamera lokal prüfen, ohne Portalverbindung und ohne Turnierübertragung.python -m camera_station --reolink --setup-only: verbundener Einrichtungsmodus für QR-Einrichtung, Handybedienung und Beobachtungstest, ohne Ergebnisfreigaben oder Warteschlangenversand.python -m camera_station --reolink: verbundener Kamerabetrieb für ausdrücklich freigegebene Partien; lokale Bestätigung und Portalannahme bleiben getrennt.
Für die verbundenen Betriebsarten zuerst die Station im Portal autorisieren und den einmaligen Portal-Gerätezugang mit --pair im Schlüsselbund hinterlegen. Den Kopplungsstart danach beenden und im gewählten Kameramodus neu starten. Der Portal-Gerätezugang gehört nicht in die Kamera-.env. Für einen anderen Dateipfad --env-file angeben; eine im Startbefehl ausdrücklich genannte Kamera-URL hat Vorrang für diesen Start.
Die Befehle verwenden den Python aus der installierten Kameraumgebung: macOS .venv-camera/bin/python, Windows .venv-camera\Scripts\python.exe.
QR-Einrichtung und echte Tafelreferenzen
- Alle Bahn-QR-Blätter aufhängen. Bahn 1, letzte Bahn und K08 grob anfahren und ihre Suchbereiche übernehmen. K08 darf an einem frei sichtbaren Ort sitzen; seine Kennung bleibt K08.
- Alle QR-Positionen automatisch einrichten und jede bestätigte Ansicht prüfen. Der Bildabgleich mit der richtigen QR-Kennung führt die Feinjustierung aus; bei unklarer Kennung stoppen und den Suchbereich korrigieren.
- Danach Bahn für Bahn vorgehen: nur ihr QR-Blatt abnehmen, den echten Tafelausschnitt und die Farbskalen einrichten, die Positionsreferenz speichern und bekannte Spielstände prüfen. Erst dann die nächste Bahn bearbeiten. K08 bleibt hängen.
Die QR-Einrichtung liefert Kamerapositionen. Die echte Tafelreferenz erlaubt anschließend den Bildabgleich vor der Spielstandserkennung. Beide Schritte müssen zu derselben Tafel passen. Die örtliche Lesbarkeit, Schärfe, freie Sicht und Wiederholgenauigkeit vor dem Ergebnisbetrieb prüfen.
K08-Kontrolle und Nachjustierung an den Tafeln haben eigene Einstellungen. Die K08-Kontrolle kann vor jeder Ablesung, nach X Ablesungen, nach einem Zyklus oder im Zeitabstand erfolgen. Der Mindestabstand je Bahn betrifft zwei Ablesungen derselben Bahn. Bei Personenverdeckung keine Nachjustierung erzwingen.
3. Ohne Turnieränderungen testen
- Beim Start ohne Gerätezugang bleiben alle Erkennungen lokal. Im Simulator die Werte ändern oder Magnete verdecken.
- „Erneut prüfen“ wählen. Aktuelles Bild, ausgewertetes Bild und markierten Tafelausschnitt vergleichen.
- Mit „Bild hochladen“ JPEG, PNG oder HEIC wählen. Ein Upload ist ein Einzelbild, kein Livebild. Sein Zeitstempel bezeichnet den Upload, keine nachgewiesene Kamera-Aufnahmezeit. Für mehrere Tafeln im selben Foto weitere Tafeln anlegen und getrennte Ausschnitte kalibrieren. Bei fortgesetzter Prüfung werden die Tafeln der Reihe nach ausgewertet.
- Vor einem neuen Upload pausieren. Nach Kalibrierung erneut prüfen. Fehlende, verdeckte, doppelte oder zwischen zwei Zahlen liegende Magnete werden als unklar angezeigt.
4. Kalibrierung und Datenschutz
Unter „Tafel, Partie und Kalibrierung“ zunächst den Ausschnitt auf die Tafel begrenzen. Alle Koordinaten liegen zwischen 0 und 1. Anschließend je Heim/Gast die X-Position der Magnetspur, die Y-Position bei 0 und 13 Punkten und den Farbton einstellen (Grün ungefähr 140°, Gelb ungefähr 50°). Diese Koordinaten beziehen sich auf den Ausschnitt. Bei blassen Magneten kann die minimale Farbsättigung abgesenkt werden; dabei auf zusätzliche Fehlmarkierungen achten. Bei schrägen Tafeln die beiden Skalen getrennt einstellen. Die Zuordnung der Farben zu Heim/Gast muss vor Ort geprüft werden.
Reguläre Ergebnisbelege speichern den konfigurierten Tafelausschnitt lokal. Eine ausdrücklich angelegte Testbildsammlung kann zusätzlich die Gesamtszene enthalten. Für die gekoppelte Handybedienung überträgt die Station eine verkleinerte private Vorschau an das geschützte Portal; sie ist keine öffentliche Ergebnisansicht. Der Ganztagstest exportiert Tafelausschnitte und Ablesungen. Standardaufbewahrung sieben Tage, einstellbar auf 1–30 Tage. Nur wirklich notwendige Tafelausschnitte wählen. Das Hauptprogramm erhält Ereignisdaten und Beleg-Prüfsumme; Bildbelege verbleiben lokal.
5. Gerät autorisieren (Admin)
- Im Portal unter Turniere → Kamerakontrolle eine Station mit Namen, Heim/Gast-Seite und ausdrücklich erlaubten Partien anlegen. Fernsteuerung und automatische Freigabe sind getrennte Optionen.
- Den einmalig angezeigten Gerätezugang vertraulich übernehmen. Am Hallenrechner den Startbefehl um
--pairergänzen und den Zugang unsichtbar eingeben. - Der Zugang wird im macOS-Schlüsselbund beziehungsweise Windows-Anmeldeinformationsspeicher abgelegt. Ohne unterstützten nativen Speicher gibt es keine unverschlüsselte Ersatzablage.
- In der lokalen Tafelkonfiguration die richtige Partie auswählen. Runde, Bahn, Mannschaften und Seite sorgfältig prüfen. Der Spielstart erfolgt weiterhin durch die Mannschaften.
- Bei Verlust oder Wechsel des Rechners den alten Gerätezugang im Portal widerrufen und eine neue Station autorisieren.
Änderungen an Auslosung, Turnierkonfiguration oder Spielplan können die Gerätefreigabe ungültig machen. Dann neu autorisieren und zuordnen. Alte Ereignisse behalten ihre ursprüngliche Partie.
6. Ergebnisse prüfen und übertragen
Die Bestätigung bezieht sich auf genau das angezeigte ausgewertete Einzelbild. Heim/Gast prüfen, bei Bedarf korrigieren und den eigenen Namen eingeben. Der eingegebene Name ist eine lokale Selbstauskunft; die serverseitige Autorisierung erfolgt über die Geräteidentität. Bei Unsicherheit verwerfen oder neu prüfen. Eine Auswertung, die inzwischen ersetzt wurde, kann nicht bestätigt werden.
Nach Freigabe wird das Ereignis zuerst dauerhaft lokal vorgemerkt und dann über HTTPS übertragen. Erst „accepted“ in der Warteschlange bedeutet vom Hauptprogramm dauerhaft angenommen. Erkannte, bestätigte, korrigierte, verworfene und übertragene Zustände werden unterschieden und protokolliert. Uploads und Bilder älter als 60 Sekunden werden nicht automatisch übernommen. Der Server weist Ereignisse zurück, deren Aufnahme länger als 24 Stunden zurückliegt.
Automatik erfordert eine ausdrückliche Adminfreigabe und mindestens drei übereinstimmende neue Live-Einzelbilder mit hoher Erkennungssicherheit. Bei unklarem oder länger unverändertem Bild wird sie gesperrt. Erst nach einem Praxistest aktivieren.
7. Offline, Neustart und Konflikte
Bei Internetausfall bleibt die lokale Ansicht bedienbar. Freigegebene Ereignisse liegen im privaten Datenordner, standardmäßig ~/.sbv-camera, in einem getrennten Profil je Portal und Gerät. Dasselbe Profil und denselben Benutzer weiterverwenden. Darin liegen Tafelausschnitte und Protokolle; der Portal-Gerätezugang bleibt im nativen Schlüsselbund. Der Dienst versucht die Übertragung mit wachsendem Abstand bis zu zehnmal; anschließend kann derselbe Eintrag ausdrücklich erneut gesendet werden. Ein Browserneustart oder Dienstneustart löscht die Warteschlange nicht. Stations-PIN beim Dienstneustart neu festlegen.
Bei einem Versionskonflikt keine automatische Überschreibung: neueren Stand im Hauptprogramm prüfen. Weitere wartende Ereignisse dieser Partie werden ebenfalls zur Klärung gesperrt. Keine Einträge auf neue Partien umetikettieren oder eigenmächtig mit neuer Version versehen. Nach tatsächlicher Klärung im Hauptprogramm die betroffenen Einträge mit Namen und Begründung ausdrücklich „Als geklärt zurückstellen“. Danach aktuelle Zuordnung prüfen und eine neue Aufnahme freigeben. Die alten Ereignisse werden nicht verändert oder erneut gesendet und bleiben als Nachweis erhalten.
8. Fernsteuerung und technische Abnahme
Jury mit Bearbeitungsrecht kann autorisierte, aktuell verbundene Stationen pausieren, fortsetzen oder neu prüfen. Bewegungen erscheinen bei entsprechend fähigen Quellen; bei der Reolink-Anbindung werden begrenzte Richtungsschritte und ein bestätigter Stopp verwendet. Lokale Bedienung widerruft ausstehende Fernbefehle. Manuelle Bewegung pausiert die automatische Prüfung; danach ausdrücklich fortsetzen. Nicht abgeholte Fernbefehle verfallen nach acht Sekunden und werden nach Wiederverbindung nicht nachgeholt.
Automatisierte Tests prüfen Simulator, Browseroberfläche, Warteschlange, Neustart, Versionsprüfung, Geräteberechtigungen und Empfangsbestätigungen. Reale Kamera, Hallenbeleuchtung, Perspektive, Magnetfarben, örtliche Netzqualität und eine physische Windows-Installation müssen vor dem Produktiveinsatz gesondert abgenommen werden. Der Simulator ist kein Nachweis für zuverlässige Erkennung jeder realen Tafel.
Ganztagstest, Hotspot und Export
Beim Beobachten eines anderen Turniers im --reolink --setup-only-Modus dasselbe heute eingerichtete Stationsprofil verwenden. Nach gespeicherten echten Tafelreferenzen „Ganztagstest protokollieren“ und anschließend die automatische Positionsabfrage starten. Unabhängig vor Ort Sollstände, Uhrzeit, Bahn und Störungen notieren. Manuell ergänzte Nullen gesondert auswerten.
Für den Hotspotversuch bleibt die Kamera im lokalen LAN erreichbar, während der Hallenrechner über den Handy-Hotspot Internet erhält. Beide Verbindungen gleichzeitig prüfen. Die Handybedienung erfolgt im geschützten Portal; ein externer Rechner kann den lokalen Kontrollmonitor über einen SSH-Tunnel mit Tailscale erreichen. Aus einem anderen Netz testen, eine Unterbrechung und die Wiederverbindung prüfen.
Den ZIP-Export mit CSV und Tafelbildern vor Programmende herunterladen. Nach einem Programmneustart einen neuen protokollierten Lauf beginnen und alte private Laufordner erhalten. Der Test meldet keine Trefferquote ohne unabhängige Sollwerte und überträgt keine Teststände in die Aufstiegsrunde.
Der achtseitige Ablaufplan mit Hotspotprobe und Ganztagstest liegt im Kamerapaket unter docs/kamerastation/SBV-Kamera-Ablaufplan-2026-10-30.pdf. Aktuelle Kamerapakete und Ablaufplan öffnen ↗