SnakeCam Legacy Debug Log – Fehlerprotokoll & Lessons Learned 🐍

Dieses Dokument fasst chronologisch die Hauptfehler und Verwirrungen zusammen, die im Verlauf der SnakeCam v4 Entwicklung aufgetreten sind – inklusive Ursachen, Zeitpunkte und Lösungen. Ziel ist es, einen kindgerechten, reproduzierbaren Pfad zu erhalten – ohne Frust.


🪓 Fehler 1: gestures_v4 wurde nicht als Modul erkannt

Wann: 15.06.2025 – ca. 01:00 Uhr
Fehler:

ModuleNotFoundError: No module named 'gestures.gestures_v4'

Ursache: gestures_v4 wurde als Datei ohne .py-Endung erstellt. Python erwartet .py zum Import.
Lösung:

mv gestures_v4 gestures_v4.py

🎨 Fehler 2: Unicode/Emoji Problem beim Start

Wann: 15.06.2025 – ca. 01:20 Uhr
Fehler:

SyntaxError: Non-UTF-8 code starting with '\xe2'...

Ursache: Python-Datei enthielt ein Emoji (🐍), aber keine UTF-8-Deklaration.
Lösung: Ganz oben einfügen:

# -*- coding: utf-8 -*-

🪞 Fehler 3: Kamera-Ausgabe war gespiegelt, trotz CSS-Korrektur

Wann: mehrfach
Ursache:

  • Sowohl im Python-Code (cv2.flip(frame, 1)) als auch in styles.css war gespiegelt → Doppelt = wieder normal.
  • Dann wurde nur eins von beiden deaktiviert, was zu dauerhafter Spiegelung führte.
    Lösung:
# frame = cv2.flip(frame, 1)  # deaktivieren, wenn CSS schon spiegelt

Oder im CSS:

.mirrored {
    transform: none;
}

Empfehlung: Nur eine Spiegelung aktiv.


🧠 Fehler 4: Geste erkannt – aber nichts passiert

Wann: gegen 02:00 Uhr
Ursache: Geste wurde erkannt, aber die Funktion detect_hand_gesture() hatte fehlerhafte Grenzwerte oder zu grobe Bedingungen für z. B. Faust.
Beispiel:

if defects == 0:
    gesture = "fist"

Aber diese Bedingung wurde nie erreicht.
Lösung: Grenzwerte nachjustieren, Debug-Werte ausgeben (defects, area, ratio), clean v4 Version verwenden.


📦 Fehler 5: Eingabefeld antwort wurde nie gespeichert

Wann: 15.06.2025 – ca. 02:50 Uhr
Fehler:

{"antwort": ""}

Ursache:

answer = request.form.get("answer", "")  # FALSCH

Aber im HTML:

<input type="text" name="antwort">

Lösung:

answer = request.form.get("antwort", "").strip()

🧩 Lesson Learned

  • 🔁 Kleine Namensabweichungen (answer vs. antwort) können große Wirkung haben.
  • 🔍 Spiegelung und Bildausrichtung muss einheitlich erfolgen – entweder CSS oder OpenCV.
  • 🐛 Fehler bewusst dokumentieren – als Teil des Lernprozesses, nicht als Mangel.
  • 🧠 Kinder und Einsteiger brauchen Erfolgserlebnisse schnell – nicht 7h Debugging für einen „Wave“.

✅ Empfehlung

  • snake_log.jsonl regelmäßig prüfen (Einträge mit Inhalt?)
  • debug-Ausgaben im Terminal: hilfreich, aber kindgerecht beschriftet
  • Sobald ein Geste erkannt wird: 🥳 Reaktion auf dem UI sichtbar machen

Stand: 15. Juni 2025, 03:00 Uhr
Commander: 🐍 SnakeCam Debug Taskforce
Modulstatus: 🟢 gestures_debug_test.py läuft stabil mit Handerkennung, Logging funktioniert – Faust wird nachjustiert.


📝 „Ein echter Fehler ist nur der, aus dem wir nicht lernen.“