🎮 Client side app with UI

🎮 Clientseitige App mit Benutzeroberfläche

🎯 Zweck

Bietet eine lokale webbasierte Oberfläche für Imker, um Eingangsbeobachter-Metriken und Video-Streams zu überwachen, wenn keine Internetverbindung verfügbar ist.

🎭 Benutzerstory

  • Als Imker, der an abgelegenen Standorten arbeitet
  • möchte ich Live-Überwachungsdaten und Video-Streams lokal auf meinem Gerät nutzen können
  • damit ich meine Bienenstöcke auch ohne Internetverbindung überwachen kann und sofortigen Zugriff auf kritische Informationen habe

🚀 Hauptvorteile

  • Offline-Zugriff: Funktioniert ohne Internet über lokales Netzwerk
  • Echtzeit-Überwachung: Anzeige von Live-Eingangsmetriken und Video-Streams
  • Bekannte Oberfläche: Web-basierte UI, zugänglich von jedem Gerät mit Browser
  • Notfallzugang: Kritisch für Fehlerbehebung und Geräteverwaltung unter Feldbedingungen

🔧 Technischer Überblick

Flask Webserver (src/main.py) bereitgestellt responsive HTML-Oberfläche mit Echtzeit-MJPEG Video-Streaming. Bietet Kamerasteuerungen, Erkennungslinien-Anpassung und Live-Bienenanzahl-Anzeige. Verwendet Threading für Frame-Aufnahme und WebSocket-ähnliches Streaming über HTTP mit Multipart-Response-Format.

📋 Akzeptanzkriterien

  • Flask-Server im lokalen Netzwerk erreichbar (Standard-Port-Konfiguration)
  • Live-MJPEG Video-Stream mit Erkennungsüberlagerungen und Bienenverfolgungsvisualisierung
  • Echtzeit-Bienenanzahl-Anzeige mit historischen Daten (3600 Einträge Deque-Puffer)
  • Kameraeigenschaftssteuerungen: Helligkeit, Kontrast, Sättigung, Verstärkung, Belichtung, Weißabgleich
  • Erkennungslinien-Anpassung über Weboberfläche (DETECTION_LINE Koeffizient)
  • Responsive CSS-Design mit System-Schriften und modernem Styling
  • Automatische Frame-Aktualisierung ohne Seitenneuladen über Streaming-Response

🚫 Nicht im Umfang

  • Ferninternetzugang (wird von der Hauptwebanwendung behandelt)
  • Historische Datenspeicherung (nur lokaler Cache)
  • Multi-Geräte-Synchronisation
  • Erweiterte Analytik und Berichterstattung

🏗️ Implementierungsansatz

  • Backend: Flask Webserver mit Threading für gleichzeitige Frame-Verarbeitung
  • Frontend: HTML mit eingebettetem CSS unter Verwendung von System-Schriften (-apple-system, BlinkMacSystemFont)
  • Video-Streaming: MJPEG über HTTP mit multipart/x-mixed-replace Content-Typ
  • Echtzeitdaten: Thread-sicherer frame_lock für gleichzeitigen Zugriff auf Video-Frames
  • Kamera-Schnittstelle: OpenCV-Kamerasteuerungen mit konfigurierbaren Eigenschaftswörterbüchern
  • Erkennungsüberlagerung: Echtzeit-Visualisierung von YOLO-Erkennungen und Verfolgungspfaden

📊 Erfolgskriterien

  • Flask-Server-Start und Erreichbarkeit innerhalb der Geräte-Bootsequenz
  • MJPEG-Stream-Latenz optimiert für Echtzeitbetrachtung
  • Thread-sicherer Frame-Zugriff mit ordnungsgemäßen Sperrmechanismen
  • Kameraeigenschaften-Anpassung Reaktionsfähigkeit über Websteuerungen
  • Historische Bienenanzahl-Anzeige mit 10-Stunden-Datenretention (3600 Einträge)

🔗 Verwandte Funktionen

📚 Ressourcen & Referenzen

💬 Hinweise

Diese Funktion ist besonders nützlich für Imker in abgelegenen Gebieten mit schlechter Internetverbindung. Sie ermöglicht eine sofortige Diagnose und Überwachung direkt vor Ort, ohne auf Cloud-Ressourcen angewiesen zu sein.