Files
CPLv4.0/docs/components/main/analogInputs/AnalogInputsSettingsModal.md

1.9 KiB
Raw Blame History

⚙️ AnalogInputsSettingsModal

Diese Komponente zeigt ein zentriertes Modal zur Konfiguration eines analogen Eingangs.


🧩 Funktion

  • Wird angezeigt, wenn isOpen true ist und ein selectedInput gesetzt ist.
  • Zeigt alle relevanten Felder zur Konfiguration:
    • Bezeichnung
    • Offset (z.B. für Kalibrierung)
    • Faktor (Multiplikator)
    • Einheit (Dropdown: V, mA, °C, bar, %)
    • Loggerintervall (in Minuten)

✏️ Verwendung

<AnalogInputSettingsModal
  selectedInput={input}
  isOpen={modalOpen}
  onClose={() => setModalOpen(false)}
/>

💾 Speichern-Logik

Beim Klick auf „Speichern“ werden die Einstellungen auf zwei verschiedene Arten verarbeitet:

🔧 Entwicklungsmodus (localhost):

  • Daten werden per POST an die lokale API gesendet:
    /api/cpl/updateAnalogInputsSettingsHandler
  • Die Datenstruktur orientiert sich an window.win_analogInputs* Variablen

🚀 Produktionsmodus:

  • Daten werden über einen GET-Request mit URL-Parametern an ein CGI-Backend übermittelt: /CPL?/Service/ae.ACP&ACN{slot}=...&ACO{slot}=...

🧪 Besonderheiten

  • Werte wie offset und factor werden als String mit , oder . akzeptiert und korrekt konvertiert.
  • Eingabefelder sind per useState gebunden.
  • Ein console.log zeigt loggerInterval, wenn selectedInput geladen wird.
  • Nach erfolgreichem Speichern wird die Seite neu geladen (location.reload()), um aktuelle Werte anzuzeigen.

🛑 Validierung

  • Aktuell keine Validierung gegen ungültige Werte (z.B. negatives Intervall oder leere Felder).
  • Sollte ggf. ergänzt werden, wenn das Backend empfindlich auf falsche Werte reagiert.

🖼️ UI/UX

  • Modal ist zentriert mit dunklem Overlay.
  • Abbrechen über „X“-Button oben rechts.
  • Tailwind CSS für Layout und Styling verwendet.