User Tools

Site Tools


projekte:ionpy:ideen

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projekte:ionpy:ideen [2026/02/13 08:50] dominikprojekte:ionpy:ideen [2026/02/13 09:16] (current) – [Implementierung (Code-Skizze)] dominik
Line 78: Line 78:
   * [cite_start]**Caching**: Die ''SystemEngine'' nutzt ihren ''state_cache'' als "Single Source of Truth" für die Logic-Regeln[cite: 81, 84].   * [cite_start]**Caching**: Die ''SystemEngine'' nutzt ihren ''state_cache'' als "Single Source of Truth" für die Logic-Regeln[cite: 81, 84].
   * **Modularität**: Neue Entitäten müssen in ''structures/entities.py'' definiert und in der ''settings.html'' mit einem entsprechenden UI-Generator verknüpft werden.   * **Modularität**: Neue Entitäten müssen in ''structures/entities.py'' definiert und in der ''settings.html'' mit einem entsprechenden UI-Generator verknüpft werden.
 +
 +===== 7. Erweiterte Web-Views (Advanced Visualization) =====
 +
 +Um die wachsende Komplexität der Daten (Gamepad, BMS, IMU-Sensoren) beherrschbar zu machen, werden spezialisierte Views implementiert.
 +
 +==== 7.1 XYZ / 3D-Visualisierung (Spatial View) ====
 +Diese View nutzt Bibliotheken wie **Three.js** oder **Plotly.js**, um Daten im dreidimensionalen Raum darzustellen.
 +  * [cite_start]**Anwendungsfall A: IMU/Orientierung**: Visualisierung der Fluglage oder Position eines Sensors (basierend auf der ''VectorEntity'' [cite: 419]). [cite_start]Ein 3D-Modell (z.B. ein PCB oder eine Batteriebox) neigt sich in Echtzeit entsprechend der Daten aus dem ''VirtualLaboratory''[cite: 252, 263].
 +  * **Anwendungsfall B: Multi-Parameter-Sweeps**: Darstellung von Abhängigkeiten wie "Effizienz über Eingangsspannung und Laststrom". Hierbei entsteht eine 3D-Oberfläche (Surface Plot).
 +  * **Anwendungsfall C: Raum-Mapping**: Wenn Sensordaten mit Positionsdaten gekoppelt sind (z.B. Temperatur-Mapping einer Oberfläche).
 +
 +==== 7.2 Multi-Device Dashboard (Global View) ====
 +[cite_start]Die aktuelle UI ist stark auf einzelne Tabs pro Gerät fokussiert[cite: 16]. Die ''Global View'' bricht diese Struktur auf.
 +  * **Konzept**: Eine frei konfigurierbare Kachel-Ansicht (Grid-Layout), in der Entitäten verschiedener Geräte gemischt werden können.
 +  * [cite_start]**Beispiel**: Ein "Power-Dashboard", das die Eingangsleistung vom ''UDP3305'' [cite: 303][cite_start], den Zellstatus vom ''JbdBms'' [cite: 145] [cite_start]und die Lastdaten der ''AtorchDL24'' [cite: 211] auf einer einzigen Seite zusammenfasst.
 +
 +==== 7.3 Logic-Flow Visualizer (Automation View) ====
 +Da der geplante ''LogicService'' komplex werden kann, ist eine textuelle Regel-Liste oft unübersichtlich.
 +  * **Konzept**: Eine Node-basierte Darstellung (ähnlich wie Node-RED).
 +  * [cite_start]**Darstellung**: Blöcke repräsentieren Trigger (z.B. Gamepad [cite: 255][cite_start]), Logik-Gatter und Aktionen (z.B. Netzteil-Kommando [cite: 326]).
 +  * [cite_start]**Live-Feedback**: Linien zwischen den Blöcken leuchten kurz auf, wenn ein Event über den ''EventBus'' fließt[cite: 85].
 +
 +==== 7.4 Session Replay & Analyse (History View) ====
 +[cite_start]Basierend auf dem ''SessionManager''.
 +  * **Konzept**: Eine Ansicht zum "Zurückspulen" vergangener Messungen.
 +  * [cite_start]**Funktion**: Über eine Timeline kann eine aufgezeichnete Session (identifiziert durch die ''session_id'' ) ausgewählt werden. Die UI zeigt dann die historischen Daten so an, als würden sie gerade live passieren.
 +  * **Vergleichs-Modus**: Zwei Sessions können übereinandergelegt werden (z.B. Entladekurve von Batterie A vs. Batterie B).
 +
 +==== 7.5 Synoptic View (Prozessgrafik) ====
 +  * **Konzept**: Ein statisches Hintergrundbild (z.B. ein Foto deines Versuchsaufbaus oder ein Schaltplan), auf dem die Live-Werte der Entitäten an den physikalisch korrekten Stellen eingeblendet werden.
 +  * **Nutzen**: Extrem intuitive Überwachung von komplexen Verdrahtungen.
 +
 +==== Sonstiges ====
 +Was ich mir sonst noch vorstellen könnte:
 +  * Virtuelle Instrumente (Skins): Dass du für das UDP3305 eine View baust, die exakt so aussieht wie die Frontplatte des echten Geräts. Das macht die Bedienung im Web viel natürlicher.
 +  * Webcam-Integration mit Overlay: Wenn dein Pi eine Kamera hat, könntest du den Videostream anzeigen und die Messwerte (z.B. Temperatur) direkt über das Bild legen (ähnlich wie Augmented Reality).
 +  * Alarm-Management: Eine View, die nur dann aufpoppt, wenn Grenzwerte überschritten werden (z.B. BMS-Alarm ).
 +
 +===== 7.6 Webcam & Augmented Reality (AR) Overlay =====
 +
 +Diese View kombiniert visuelles Feedback der Hardware mit den Live-Daten des EventBus.
 +
 +==== Architektur des Datenflusses ====
 +  * **Video-Pfad**: Webcam -> OpenCV -> FastAPI StreamingResponse (MJPEG) -> Browser <img>.
 +  * **Daten-Pfad**: Hardware -> EventBus -> WebSocket -> Browser Canvas.
 +  * **Vorteil**: Die hohe Last des Videos beeinträchtigt nicht die Echtzeit-Messdaten auf dem Bus.
 +
 +==== Features ====
 +  * **AR-Overlay**: Positionierung von Messwerten direkt über dem Videobild (z.B. Temperaturanzeige direkt auf dem Kühlkörper im Bild).
 +  * **Visual CV**: Optionale Bilderkennung im Backend, die Ergebnisse (z.B. "Gerät eingeschaltet") als reguläre Samples auf den Bus publiziert.
 +
 +==== Implementierung (Code-Skizze) ====
 +  * **Backend**: Neuer API-Endpunkt unter ''/api/video/stream''.
 +  * **Frontend**: Dynamisches Canvas-Mapping. Koordinaten für Overlays werden in der ''config.yaml'' des Geräts gespeichert.
 +
 +==== 7.7 Visual Event Trigger (Virtual Sensor) ====
 +Zusätzlich zum Videostream kann das System Bildbereiche (ROI) analysieren, um "virtuelle Sensoren" zu generieren.
 +
 +  * **Funktion**: Überwachung von analogen Anzeigen oder LEDs, die keine Datenschnittstelle besitzen.
 +  * **Verarbeitung**: 
 +    1. ROI Definition via Koordinaten.
 +    2. HSV-Farbraumfilterung zur Detektion von Statusfarben.
 +    3. State-Machine zur Vermeidung von Bus-Spam (nur Änderungen werden publiziert).
 +  * **Anwendung**: "BMS Alarm LED" -> EventBus -> "PSU OFF".
 +
 +==== 7.8 Optical Character Recognition (OCR) Sensor ====
 +Verwandelt visuelle Anzeigen in digitale Datenströme.
 +
 +  * **Technologie**: Integration von ''Tesseract'' oder ''SSOCR'' in den Webcam-Treiber.
 +  * **Datenfluss**:
 +    1. Extraktion der Anzeige via ROI.
 +    2. Bildvorbehandlung (Grayscale, Thresholding, Morphologie).
 +    3. Konvertierung String -> Float/Int.
 +    4. Publikation als ''NumericSample'' oder ''TextSample'' auf dem EventBus.
 +  * **Anwendung**: Digitalisierung von Legacy-Hardware ohne Schnittstellen (DMMs, Waagen, analoge Anzeigen).
 +===== 8. Zusammenfassung der Datenfluss-Architektur =====
 +
 +Der Datenfluss im erweiterten System folgt nun diesem Muster:
 +  - [cite_start]**Hardware/Input** (z.B. Owon HDS [cite: 270] [cite_start]oder Gamepad) -> **Bus**[cite: 85].
 +  - [cite_start]**LogicService** (Abonniert Bus) -> Berechnet Transformation -> **Engine.execute_command**[cite: 84].
 +  - [cite_start]**Web-Views** (Abonnieren Bus via WebSocket [cite: 427]) -> Filtern nach Focus-Lock -> **Visualisierung** (3D, Table, Graph).
projekte/ionpy/ideen.1770969030.txt.gz · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki