Table of Contents

ionpy Framework: Erweiterte Architektur-Spezifikation (Vollständig)

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.

1. Dynamische Eingabesynchronisation (Race Condition Schutz)

Um zu verhindern, dass Hintergrund-Polling Benutzereingaben im Frontend überschreibt, wird ein duales Sperrsystem implementiert.

1.1 Backend: Mute-Timer (AbstractDevice)

[cite_start]In der Klasse AbstractDevice (hardware/base.py) wird eine zeitbasierte Sperre pro Entität eingeführt[cite: 117, 120].

1.2 Frontend: Universeller Focus-Lock (JS)

In der Web-UI (settings.html) wird eine automatische Erkennung aktiver Eingabefelder implementiert.

2. Strukturierte Daten: TableEntity (Deep Dive)

Die TableEntity ist das Herzstück für komplexe Geräteeigenschaften wie Speicherplätze (M1-M10), Profil-Listen (Sequenzer) oder Zell-Übersichten.

2.1 Datenstruktur & Schema

Eine TableEntity kapselt nicht nur Daten, sondern auch deren Bedeutung.

2.2 Erweiterte Interaktions-Logik

3. Gamepad-Integration (HID-Steuerung)

Haptische Steuerung via USB-Controller, realisiert durch das pygame-Subsystem.

3.1 GamepadManager (hardware/system/gamepad.py)

Ein neuer Treiber-Typ, der autonom nach Controllern sucht.

3.2 Haptisches Feedback & Visualisierung

4. LogicService: Die Automation Bridge

[cite_start]Zentraler asynchroner Dienst in der SystemEngine[cite: 81], der als Vermittler zwischen dem Bus und den Geräte-Kommandos fungiert.

4.1 Die Rule-Engine

[cite_start]Der Dienst abonniert den EventBus [cite: 85, 427] und prozessiert Regeln aus einer rules.json.

4.2 Cross-Device Szenarien (Beispiele)

5. Erweiterter Entitäten-Katalog

[cite_start]Zusätzliche spezialisierte Typen für professionelle Laboranforderungen[cite: 421, 422, 423]:

Typ UI-Repräsentation Funktionalität
LogEntity Scrollende Konsole Lokaler Ereignis-Speicher für gerätespezifische Fehler (z.B. SCPI-Fehlermeldungen).
StatusIndicator Virtuelle LED Farb-Mapping für Zustände (z.B. 0=Off, 1=OK/Grün, 2=Warnung/Gelb, 3=Alarm/Rot-Blinkend).
XYGraphEntity Kennlinien-Plot Darstellung von X-Y-Beziehungen (z.B. Batterie-Entladekurve: Spannung über Kapazität).
FileEntity Upload/Download Schnittstelle für Firmware-Dateien (z.B. ESPHome .bin) oder Konfigurations-Exports.
RangeEntity Multi-Slider/Input Gruppiert logisch zusammengehörige Werte für Sweeps (Start, Stop, Step, Intervall).
ScheduleEntity Zeitplan-Editor Verwaltung von Zeitereignissen (z.B. “Schalte Ausgang an Wochentagen um 08:00 Uhr an”).

6. Implementierungs-Leitfaden für KI-Entwicklung

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.

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.

7.3 Logic-Flow Visualizer (Automation View)

Da der geplante LogicService komplex werden kann, ist eine textuelle Regel-Liste oft unübersichtlich.

7.4 Session Replay & Analyse (History View)

[cite_start]Basierend auf dem SessionManager.

7.5 Synoptic View (Prozessgrafik)

Sonstiges

Was ich mir sonst noch vorstellen könnte:

7.6 Webcam & Augmented Reality (AR) Overlay

Diese View kombiniert visuelles Feedback der Hardware mit den Live-Daten des EventBus.

Architektur des Datenflusses

Features

Implementierung (Code-Skizze)

7.7 Visual Event Trigger (Virtual Sensor)

Zusätzlich zum Videostream kann das System Bildbereiche (ROI) analysieren, um “virtuelle Sensoren” zu generieren.

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.

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:

  1. [cite_start]Hardware/Input (z.B. Owon HDS [cite: 270] [cite_start]oder Gamepad) → Bus[cite: 85].
  2. [cite_start]LogicService (Abonniert Bus) → Berechnet Transformation → Engine.execute_command[cite: 84].
  3. [cite_start]Web-Views (Abonnieren Bus via WebSocket [cite: 427]) → Filtern nach Focus-Lock → Visualisierung (3D, Table, Graph).