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:52] – [6. Implementierungs-Leitfaden für KI-Entwicklung] dominikprojekte:ionpy:ideen [2026/02/15 11:35] (current) – [TODO] dominik
Line 1: Line 1:
 ====== ionpy Framework: Erweiterte Architektur-Spezifikation (Vollständig) ====== ====== ionpy Framework: Erweiterte Architektur-Spezifikation (Vollständig) ======
 +
 +===== TODO =====
 +  * Checkn ob Webseite Reconnect macht wenn man ionpy neu startet 
 +  * Inventar über Web View einstellbar machen 
 +    * Inventar ist nicht bestandteil vom Projekt (Idee vielleicht die Inventar.yaml mit im Projekt speichern -> schnelles wiederherstellen ??)
 +    * Gerät hinzufügen, löschen, Ändern, ...
 +  * Settings nicht überschreiben beim Einstellen -> siehe Punkt 1
 +  * Projekt anlegen / speichern / laden -> Frontend 
 +    * Speichern im Backend
 +  * RP2350 als Testgerät 
 +  * Buttons mit X Settings ausführen 
 +
  
 Dieses Dokument beschreibt die integrale Architektur-Erweiterung des ionpy-Frameworks. Es dient als verbindliche Grundlage für die Implementierung neuer Entitätstypen, haptischer Steuerungen und geräteübergreifender Automatisierung. Dieses Dokument beschreibt die integrale Architektur-Erweiterung des ionpy-Frameworks. Es dient als verbindliche Grundlage für die Implementierung neuer Entitätstypen, haptischer Steuerungen und geräteübergreifender Automatisierung.
Line 21: Line 33:
     * ''focusout'': Entfernt die ID nach einer kurzen Verzögerung (ca. 300-500ms).     * ''focusout'': Entfernt die ID nach einer kurzen Verzögerung (ca. 300-500ms).
   * **WebSocket-Logik**: Die Funktion ''channel.onmessage'' prüft vor dem Update eines HTML-Elements, ob dessen ID im Set vorhanden ist. [cite_start]Falls ja, wird das Update verworfen[cite: 53, 54].   * **WebSocket-Logik**: Die Funktion ''channel.onmessage'' prüft vor dem Update eines HTML-Elements, ob dessen ID im Set vorhanden ist. [cite_start]Falls ja, wird das Update verworfen[cite: 53, 54].
 +
 +===== Neue View Multisensor Device =====
 +  * auf einen Schlag alle Readings anzeigen 
 +  * Checkbox on/off für MAIN = "main", CONFIG = "config", DIAGNOSTIC = "diag"
 +  * Device basiert
 +
 +
  
 ===== 2. Strukturierte Daten: TableEntity (Deep Dive) ===== ===== 2. Strukturierte Daten: TableEntity (Deep Dive) =====
Line 37: Line 56:
   * **Active Row Tracking**: Ein zusätzliches Attribut ''active_row_index'' markiert die Zeile, die das Gerät aktuell tatsächlich verwendet (z.B. welcher Speicherplatz gerade geladen ist).   * **Active Row Tracking**: Ein zusätzliches Attribut ''active_row_index'' markiert die Zeile, die das Gerät aktuell tatsächlich verwendet (z.B. welcher Speicherplatz gerade geladen ist).
   * **Zell-basiertes Muting**: Die Mute-Logik aus Kapitel 1 wird auf Zellebene angewendet, sodass eine Bearbeitung in Zeile 1 nicht die Live-Updates von Zeile 2 blockiert.   * **Zell-basiertes Muting**: Die Mute-Logik aus Kapitel 1 wird auf Zellebene angewendet, sodass eine Bearbeitung in Zeile 1 nicht die Live-Updates von Zeile 2 blockiert.
 +
 +==== Software Liste ====
 +  * Abspulen von Lastprofilen für PSU / Senke -> rein Softwar5e basiert
 +
 +==== Settings auf Button legen ====
 +  * **neue View** !
 +  * Buttons Beschriftung setzen (Größe ??)
 +  * (mehrere) Aktions hinterlegen für Device
 +  * ggf. inkl. Start ??
 +  * Beispiel -> PSU -> 12V Setzen, max 1A, OCP an, Output ON
 +
 +
  
 ===== 3. Gamepad-Integration (HID-Steuerung) ===== ===== 3. Gamepad-Integration (HID-Steuerung) =====
Line 110: Line 141:
   * **Nutzen**: Extrem intuitive Überwachung von komplexen Verdrahtungen.   * **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 ===== ===== 8. Zusammenfassung der Datenfluss-Architektur =====
  
projekte/ionpy/ideen.1770969174.txt.gz · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki