## [1.6.719] – 2025-08-14

- refactor: playwright and tests in one folder

---
## [1.6.718] – 2025-08-14

- Feat: Analogeingänge (Messwerteingänge) Modal

---
## [1.6.717] – 2025-08-14

- feat: close button and maximize modal

---
## [1.6.716] – 2025-08-14

- Messkurve Modal in Messwerteingänge

---
## [1.6.715] – 2025-08-14

- fix: KÜ Version 4.20 in daschboard KÜs Status anzeigen

---
## [1.6.714] – 2025-08-14

- docs: Kabelüberwachung Overlay für Events (Abgleich, TDR und RSL) Messung

---
## [1.6.713] – 2025-08-13

- feat: Overlay nicht über die Seite sondern nur über den KÜ Slot wenn ein Event kommt

---
## [1.6.712] – 2025-08-13

- doc in TODO

---
## [1.6.711] – 2025-08-13

- CPL Events Progressbar in  Prozent anzeigen

---
## [1.6.710] – 2025-08-13

- Events Prograssbar in Prozent

---
## [1.6.709] – 2025-08-13

- Progressbar mit Prozent und Zeit

---
## [1.6.708] – 2025-08-13

- feat: Slot Nummer anzeigen bei Events

---
## [1.6.707] – 2025-08-13

- feat: Meldung für Events darstellen (Kalibrierung, TDR ud Schleifenmessung)

---
## [1.6.706] – 2025-08-13

- Events Schleifenmessung, TDR-Messung und Abgleich in public/CPL/kueData.js eingefügt um später zu lesen und entsprechend  ' Bitte Warten' Meldung zu erstellen für den User

---
## [1.6.705] – 2025-08-13

- Daten von  CPL bekommen DIA0- DIA2 ISO und RSL

---
## [1.6.704] – 2025-08-13

- npm run dev und build ohne fehler durchgeführt

---
## [1.6.703] – 2025-08-13

- OPC-Clients  in settings

---
## [1.6.702] – 2025-08-12

- fix: Meldungen werden wieder angezeigt in KÜ Charts

---
## [1.6.701] – 2025-08-12

- WIP: Meldungen

---
## [1.6.700] – 2025-08-12

- Isolatioswiderstand Chart abhängig von dropdown menu select name und nicht von Titel

---
## [1.6.699] – 2025-08-12

- chore(eslint): ignore irregular whitespace in comments (keep rule strict for code)

---
## [1.6.698] – 2025-08-12

- fetchCableData.mjs
Sends Authorization: Basic <base64(user:pass)> with configurable credentials.
Accepts --user and --pass, or env CPL_USER/CPL_PASS; defaults to Littwin/Littwin.
Uses an https.Agent({ rejectUnauthorized: false }) when --insecure is set.
Corrected output folder to cable-monitoring-data.
CLI parser supports both --key=value and --key value (PowerShell friendly).
Quick usage (PowerShell)

All 32 slots, both types (iso=3, rsl=4), all DIA modes, last 30 days:
npm run mocks:cable
Specific date range (e.g., 2025-07-13 to 2025-08-12), all slots and types:
node .\mocks\scripts\fetchCableData.mjs --from 2025-07-13 --to 2025-08-12 --insecure
Only slot 0, Isolationswiderstand, DIA1:
node .\mocks\scripts\fetchCableData.mjs --slots 0 --modes DIA1 --types iso --from 2025-07-13 --to 2025-08-12 --insecure
Provide credentials explicitly:
node .\mocks\scripts\fetchCableData.mjs --user Littwin --pass Littwin --insecure
Or via environment variables for the session:
$env:CPL_USER = "Littwin"; $env:CPL_PASS = "Littwin"
node .\mocks\scripts\fetchCableData.mjs --insecure
Output structure

mocks/device-cgi-simulator/cable-monitoring-data/slot{0..31}/
isolationswiderstand/DIA0.json, DIA1.json, DIA2.json
schleifenwiderstand/DIA0.json, DIA1.json, DIA2.json
I smoke-tested slot 0, DIA1, iso with login and it produced DIA1.json under slot0/isolationswiderstand. If you need me to also add a convenience npm script with user/pass placeholders, say the credentials source you prefer (env vs args), and I’ll wire it.

---
## [1.6.697] – 2025-08-12

- loop DatePicke

---
## [1.6.696] – 2025-08-12

- feat(iso): DateRangePicker-Zeitraum bei "Daten laden" anwenden und fix debug für build

---
## [1.6.695] – 2025-08-12

- feat(iso): DateRangePicker-Zeitraum bei "Daten laden" anwenden

---
## [1.6.694] – 2025-08-12

- feat:  RSL starten in Dev mode 15 Sek. und in prod. 120 Sek.

---
## [1.6.693] – 2025-08-12

- feat:  RSL starten in Dev mode 15 Sek. und in prod. 120 Sek.

---
## [1.6.692] – 2025-08-12

- PlayWright Test

---
## [1.6.691] – 2025-08-12

- RSL-Progress (120s Overlay mit Balken + Blockierung) ist implementiert: Button zeigt RSL läuft…, Daten laden ist gesperrt, Overlay mit Restsekunden und Fortschritt. Countdown endet automatisch.

---
## [1.6.690] – 2025-08-11

- Globales Auto-Highlight wurde eingefügt

---
## [1.6.689] – 2025-08-11

- playwright recording and testing

---
## [1.6.688] – 2025-08-11

- ISO, RSL, TDR, und KVZ Modal nach Wünsch angepasst für KÜs

---
## [1.6.687] – 2025-08-11

- ISO & RSL dropdowns moved to headers like TDR; removed old dropdowns from action bars, cleaned imports, fixed TypeScript issues

---
## [1.6.686] – 2025-08-11

- LoopChartActionBar verhält sich jetzt wie im ISO-Modal: Bei Auswahl „Meldungen“

---
## [1.6.685] – 2025-08-11

- Daten von 118. in mocks  geholt

---
## [1.6.684] – 2025-08-11

- fix: KVZ Button style wie die anderen (ISO, RSL, TDR) und mit eigene Modal

---
## [1.6.683] – 2025-08-11

- feat: migrate from Cypress to Playwright for E2E testing

- Remove Cypress dependencies and configuration files
- Install @playwright/test with browser support
- Add playwright.config.ts with optimized settings for Next.js
- Migrate existing Cypress tests to Playwright format
- Add new E2E test scripts to package.json
- Configure GitHub Actions workflow for automated testing
- Update .gitignore for Playwright artifacts

BREAKING CHANGE: E2E testing framework changed from Cypress to Playwright

---
## [1.6.682] – 2025-08-01

- git commit -m "feat: Enhance DetailModal with auto-loading and improved UX

- Add automatic data loading every 2 seconds when no chart data available
- Implement intelligent cursor-wait display for entire modal during loading
- Auto-reset to 'Alle Messwerte' (DIA0) and clear date fields on modal open
- Add Tailwind-based color system for chart lines (gray for min/max, littwin-blue for current/average)
- Improve chart line layering with background/foreground organization
- Add periodic UI updates to ensure responsive loading feedback
- Maintain manual 'Daten laden' button control alongside auto-loading
- Fix TypeScript dependencies and optimize useEffect performance"

---
## [1.6.681] – 2025-08-01

- git commit -m "feat: Enhance DetailModal with auto-loading and improved UX

- Add automatic data loading every 2 seconds when no chart data available
- Implement intelligent cursor-wait display for entire modal during loading
- Auto-reset to 'Alle Messwerte' (DIA0) and clear date fields on modal open
- Add Tailwind-based color system for chart lines (gray for min/max, littwin-blue for current/average)
- Improve chart line layering with background/foreground organization
- Add periodic UI updates to ensure responsive loading feedback
- Maintain manual 'Daten laden' button control alongside auto-loading
- Fix TypeScript dependencies and optimize useEffect performance"

---
## [1.6.680] – 2025-08-01

- fix: System ->Detailansicht -> Modal

---
## [1.6.679] – 2025-08-01

- fix: Chart System

---
## [1.6.678] – 2025-08-01

- fix: nur Daten abrufen, wenn 'Daten laden' button geklickt wird

---
## [1.6.677] – 2025-08-01

- fix: link in console

---
## [1.6.676] – 2025-08-01

- fix: richtige Link in system fetch service

---
## [1.6.675] – 2025-08-01

- feat: fetchSystemData.mjs erweitert und optimiert

Analoge Eingänge und Systemdaten werden jetzt gemeinsam abgerufen und gespeichert
Einheitliche Benennung (input statt eingang) für analoge Eingänge
Datumssplittung als Hilfsfunktion ausgelagert
Kommentare und Beschreibung verbessert

---
## [1.6.674] – 2025-08-01

- refactor: mMeldungen angepasst

---
## [1.6.673] – 2025-08-01

- feat: Script zum Abrufen und Speichern von CPL-Meldungen als Mockdaten hinzugefügt

---
## [1.6.672] – 2025-08-01

- style: apply littwin-blue color to NTP settings checkbox

- Add accent-littwin-blue class to NTP active checkbox
- Increase checkbox size to w-4 h-4 for better visibility
- Maintain consistent brand coloring across UI components

---
## [1.6.671] – 2025-07-31

- feat: hide logout button when admin is not logged in

- Add conditional rendering for "Abmelden" button based on isAdminLoggedIn state
- Button only appears when localStorage contains "isAdminLoggedIn": "true"
- Improves UI cleanliness by hiding unnecessary logout option for regular users
- Maintains existing admin warning banner and logout functionality when needed

---
## [1.6.670] – 2025-07-31

- feat: implement modal chart system with conditional UI and message filtering

- Add automatic data loading on IsoChartView modal open with timeout to prevent infinite loops
- Implement conditional UI visibility in IsoChartActionBar using CSS visibility property
- Create stable layout where controls reserve space when hidden (DatePicker, DIA dropdown, "Daten laden" button)
- Add Report.tsx component with precise CableLine filtering using exact string matching
- Enhance message filtering with debug logging and fallback identifier support
- Integrate chartTitle state management for seamless switching between "Messkurve" and "Meldungen"
- Add useIsoDataLoader hook for automatic chart data loading without user interaction
- Implement enhanced filtering logic to prevent false matches (CableLine1 vs CableLine16)
- Style Report component with consistent table layout matching MeldungenView design
- Add visual filter indicators and improved error messaging for better UX

Technical improvements:
- Replace conditional rendering with visibility control to maintain layout stability
- Add comprehensive logging for debugging message source filtering
- Implement proper cleanup for timeouts to prevent memory leaks
- Use exact string matching and prefix validation for precise slot identification

---
## [1.6.669] – 2025-07-31

- feat: Meldungen in in Iso Chart

---
## [1.6.668] – 2025-07-31

- feat: implement chart modal with report functionality for cable monitoring

- Add chartTitle state management to kabelueberwachungChartSlice with "Messkurve"/"Meldungen" options
- Update IsoChartActionBar dropdown to show current chartTitle value with proper binding
- Implement conditional rendering in IsoChartView between IsoMeasurementChart and Report components
- Create Report.tsx component using same data structure as MeldungenView (Meldung type)
- Add slot-based message filtering for specific cable monitoring units (KÜ)
- Integrate getMessagesThunk for consistent data loading across components
- Style Report component with consistent table layout, German date formatting, and Littwin branding
- Enable seamless switching between measurement chart and filtered messages in modal

---
## [1.6.667] – 2025-07-31

- feat: TDR --> Messkurven TDR anzeigen und dort Schalter Messung aktivieren

---
## [1.6.666] – 2025-07-31

- feat: KVZ JSON Daten für mock auf CPL hochgeladen und getestet

---
## [1.6.665] – 2025-07-31

- style: KVZ LEDs style

---
## [1.6.664] – 2025-07-31

- style: LEDs style

---
## [1.6.663] – 2025-07-31

- feat: KVZ API JSON Data

---
## [1.6.662] – 2025-07-31

- Feat: KVz Bereich in EinstellungsModal in KÜs Modal

---
## [1.6.661] – 2025-07-31

- feat: TDR starten Button in KÜ Chart

---
## [1.6.660] – 2025-07-31

- fix: Schleifenwiderstand (TDR) Messung starten Button auf der Produktion

---
## [1.6.659] – 2025-07-31

- feat: Display und Chart für KÜs

---
## [1.6.658] – 2025-07-31

- feat; in KÜ Chart RSL und ISO start button

---
## [1.6.657] – 2025-07-28

- deat: KVz anzeigen

---
## [1.6.656] – 2025-07-28

- fix: Chart Titel Isolationsmessung zu schleifenmessung

---
## [1.6.655] – 2025-07-28

- cleanup: Kue705FO

---
## [1.6.654] – 2025-07-28

- feat: ISO, RSL und TDR separate Charts ohne den Switcher

---
## [1.6.653] – 2025-07-28

- fix: KÜ slotnummer in der Messkurven Modal

---
## [1.6.652] – 2025-07-28

- fix(Kue705FO): maintain consistent 3-line display layout

- Keep alarm status line with empty space when no alarm is present
- Use non-breaking space (\u00A0) to preserve line height and layout
- Remove green "Status: OK" text for cleaner display
- Ensure consistent 3-line structure: Alarm/Empty, ISO, RSL

---
## [1.6.651] – 2025-07-25

- refactor(Kue705FO): integrate chart functionality into detail view buttons

- Remove separate TDR/Schleife Messkurve buttons section
- Add direct chart opening to ISO, RSL, and TDR buttons in detail view
- ISO and RSL buttons now open Schleife chart with proper state setup
- TDR button opens TDR chart with distance calculation
- Remove unused button container but keep structure for future use
- Clean up unused imports and variables needed

---
## [1.6.650] – 2025-07-25

- feat(Kue705FO): replace switch buttons with direct chart access buttons

- Remove Schleife/TDR switch buttons and separate Messkurve button
- Add "TDR Messkurve" and "Schleife Messkurve" buttons for direct chart access
- Each button opens the corresponding chart type directly
- Improve user experience by reducing clicks needed to access specific charts
- Clean up unused imports (handleButtonClick, tdrLocation, tdrActive)

---
## [1.6.649] – 2025-07-25

- TDR und Schleife Button in KÜs wieder für die Funktionen

---
## [1.6.648] – 2025-07-24

- TDR und Schleife Button in KÜs wieder für die Funktionen

---
## [1.6.647] – 2025-07-24

- feat:
Anzeige KÜ-Display:

1. Zeile Alarm: Isolationsfehler, Schleifenfehler, Aderbruch, Erdschluß, Messpannung: Immer in Rot; wenn kein Alarm, bleibt die Zeile leer

2. Zeile: Isowert: xx MOhm (großes M)

in Rot, wenn Iso-Fehler ansteht

Beispiel: ISO: 100 MOHm der beim Abliech:  ISO: Abgleich

3. Zeile: Schleifenwert, xx kOhm (kleines k)

in Rot, wenn Schleifenfehler ansteht

Beispiel:: RSL: 1,7 kOhm oder wenn Schleifenmessung aktiv: RSL: Messung

---
## [1.6.646] – 2025-07-24

- feat:
Anzeige KÜ-Display:

1. Zeile Alarm: Isolationsfehler, Schleifenfehler, Aderbruch, Erdschluß, Messpannung: Immer in Rot; wenn kein Alarm, bleibt die Zeile leer

2. Zeile: Isowert: xx MOhm (großes M)

in Rot, wenn Iso-Fehler ansteht

Beispiel: ISO: 100 MOHm der beim Abliech:  ISO: Abgleich

3. Zeile: Schleifenwert, xx kOhm (kleines k)

in Rot, wenn Schleifenfehler ansteht

Beispiel:: RSL: 1,7 kOhm oder wenn Schleifenmessung aktiv: RSL: Messung

---
## [1.6.645] – 2025-07-24

- Feat: Fenster nicht schließen für Firmware Update

---
## [1.6.644] – 2025-07-24

- Firmware Update Bestätigung in Littwin blau

---
## [1.6.643] – 2025-07-24

- feat Schleifeund TDR in sepaterate Bereiche in KÜ

---
## [1.6.642] – 2025-07-24

- feat: Isowert und Schleifenwiderstanf in schwarzen Display zusammen

---
## [1.6.641] – 2025-07-24

- Hide fallsensors

---
## [1.6.640] – 2025-07-23

- feat: Fallsensors

---
## [1.6.639] – 2025-07-23

- feat: Add cursor wait state to AnalogInputsTable rows during data loading

- Applied `cursor-wait` style to table rows (`<tr>`) in AnalogInputsTable when loading is true.
- Ensured consistent cursor behavior across the entire table and rows

---
## [1.6.638] – 2025-07-23

- feat: Add cursor wait during chart data loading

- Implemented cursor wait state while chart data is being loaded in `AnalogInputsChart.tsx`.
- Fixed missing dependencies in `useEffect` and defined `loading` state.
- Updated `handleFetchData` to manage

---
## [1.6.637] – 2025-07-23

- feat: Add cursor wait during chart data loading

- Implemented cursor wait state while chart data is being loaded in `AnalogInputsChart.tsx`.
- Fixed missing dependencies in `useEffect` and defined `loading` state.
- Updated `handleFetchData` to manage

---
## [1.6.636] – 2025-07-23

- Isolationsfehler in Display anzeigen -> aktuell Zahl ist rot ohne Beschrifftung , es soll Zahl ISO MOhm und Isolationsfehler

---
## [1.6.635] – 2025-07-23

- Isolationsfehler in Display anzeigen -> aktuell Zahl ist rot ohne Beschrifftung , es soll Zahl ISO MOhm und Isolationsfehler

---
## [1.6.634] – 2025-07-23

- Isolationsfehler in Display anzeigen -> aktuell Zahl ist rot ohne Beschrifftung , es soll Zahl ISO MOhm und Isolationsfehler

---
## [1.6.633] – 2025-07-23

- refactor: order  Minimum, Messwert und Maximum, sowie Durchschnitt

---
## [1.6.632] – 2025-07-23

- feat(analogInputs): auto-load chart data when table row is selected

- Added useEffect to AnalogInputsChart to automatically trigger "Daten laden" when a row is selected and selectedAnalogInput.id is not 0.
- Improves UX by syncing table selection with chart data fetch, no manual

---
## [1.6.631] – 2025-07-22

- Fix: Always show vonDatum and bisDatum in fetch URL for analog inputs chart

- Ensure local date state is never empty by falling back to default date if Redux is empty
- Prevent missing date values in fetch URL after multiple dropdown or button interactions
- Improves reliability of

---
## [1.6.630] – 2025-07-22

- Fix: Preserve chart state during zoom, pan, and date changes

- Added React.useMemo to memoize chartData and chartOptions to prevent unnecessary re-renders.
- Ensured chart zoom and pan states are maintained during interactions.
- Improved performance and user experience by avoiding chart

---
## [1.6.629] – 2025-07-22

- Fix: Preserve chart state during zoom, pan, and date changes

- Added React.useMemo to memoize chartData and chartOptions to prevent unnecessary re-renders.
- Ensured chart zoom and pan states are maintained during interactions.
- Improved performance and user experience by avoiding chart

---
## [1.6.628] – 2025-07-22

- Fix: Preserve chart state during zoom, pan, and date changes

- Added React.useMemo to memoize chartData and chartOptions to prevent unnecessary re-renders.
- Ensured chart zoom and pan states are maintained during interactions.
- Improved performance and user experience by avoiding chart

---
## [1.6.627] – 2025-07-22

- Fix: Preserve chart state during zoom, pan, and date changes

- Added React.useMemo to memoize chartData and chartOptions to prevent unnecessary re-renders.
- Ensured chart zoom and pan states are maintained during interactions.
- Improved performance and user experience by avoiding chart

---
## [1.6.626] – 2025-07-22

- Fix: Preserve chart state during zoom, pan, and date changes

- Added React.useMemo to memoize chartData and chartOptions to prevent unnecessary re-renders.
- Ensured chart zoom and pan states are maintained during interactions.
- Improved performance and user experience by avoiding chart

---
## [1.6.625] – 2025-07-22

- Fix: Preserve chart state during zoom, pan, and date changes

- Added React.useMemo to memoize chartData and chartOptions to prevent unnecessary re-renders.
- Ensured chart zoom and pan states are maintained during interactions.
- Improved performance and user experience by avoiding chart

---
## [1.6.624] – 2025-07-22

- Fix: Preserve chart state during zoom, pan, and date changes

- Added React.useMemo to memoize chartData and chartOptions to prevent unnecessary re-renders.
- Ensured chart zoom and pan states are maintained during interactions.
- Improved performance and user experience by avoiding chart

---
## [1.6.623] – 2025-07-22

- feat(AnalogInputsChart): Zeitraum im DatePicker und Redux initialisieren und synchronisieren

- Initialwert für Zeitraum (letzte 30 Tage) im Redux-Store gesetzt
- DatePicker-Änderungen werden im Redux gespeichert
- Fetch-Button verwendet Zeitraum aus Redux und loggt die Fetch-URL
- Chart zeigt Daten entsprechend ausgewähltem Zeitraum

---
## [1.6.622] – 2025-07-22

- feat(AnalogInputsChart): Zeitraum im DatePicker und Redux initialisieren und synchronisieren

- Initialwert für Zeitraum (letzte 30 Tage) im Redux-Store gesetzt
- DatePicker-Änderungen werden im Redux gespeichert
- Fetch-Button verwendet Zeitraum aus Redux und loggt die Fetch-URL
- Chart zeigt Daten entsprechend ausgewähltem Zeitraum

---
## [1.6.621] – 2025-07-22

- feat(AnalogInputsChart): Zeitraum im DatePicker und Redux initialisieren und synchronisieren

- Initialwert für Zeitraum (letzte 30 Tage) im Redux-Store gesetzt
- DatePicker-Änderungen werden im Redux gespeichert
- Fetch-Button verwendet Zeitraum aus Redux und loggt die Fetch-URL
- Chart zeigt Daten entsprechend ausgewähltem Zeitraum

---
## [1.6.620] – 2025-07-22

- feat(AnalogInputsChart): Zeitraum im DatePicker und Redux initialisieren und synchronisieren

- Initialwert für Zeitraum (letzte 30 Tage) im Redux-Store gesetzt
- DatePicker-Änderungen werden im Redux gespeichert
- Fetch-Button verwendet Zeitraum aus Redux und loggt die Fetch-URL
- Chart zeigt Daten entsprechend ausgewähltem Zeitraum

---
## [1.6.619] – 2025-07-22

- feat(AnalogInputsChart): Zeitraum im DatePicker und Redux initialisieren und synchronisieren

- Initialwert für Zeitraum (letzte 30 Tage) im Redux-Store gesetzt
- DatePicker-Änderungen werden im Redux gespeichert
- Fetch-Button verwendet Zeitraum aus Redux und loggt die Fetch-URL
- Chart zeigt Daten entsprechend ausgewähltem Zeitraum

---
## [1.6.618] – 2025-07-21

- feat(mock): Script fetchAnalogInputsData auf ES-Module (.mjs) umgestellt, Datum automatisch gesetzt

---
## [1.6.617] – 2025-07-21

- feat(service): CPL-Request verwendet DIA0, DIA1 oder DIA2 je nach Zeitraum für analoge Eingänge

---
## [1.6.616] – 2025-07-21

- feat(service): Produktions-URL für CPL angepasst, erkennt Umgebung und baut Anfrage dynamisch

---
## [1.6.615] – 2025-07-21

- feat(chart): Zeitauswahl im Listbox nur lokal speichern, Daten-Fetch erst beim Button-Klick

---
## [1.6.614] – 2025-07-21

- feat(ui): Hinweis-Icon und Meldung angezeigt, wenn kein Eingang ausgewählt ist

---
## [1.6.613] – 2025-07-21

- fix: Linien Littwin blau und anderen grau für die Chart Linien

---
## [1.6.612] – 2025-07-21

- feat(analogInputsChart): dynamische Linien je Zeitraum (m/i/a/g)

- Chart zeigt für 'Alle Messwerte' (DIA0) Messwert (m), Minimum (i), Maximum (a)
- Für 'Stündlich' und 'Täglich' (DIA1/DIA2) werden Minimum (i), Maximum (a), Durchschnitt (g) angezeigt
- Farben und Legende entsprechend

---
## [1.6.611] – 2025-07-21

- feat(analogInputsChart): dynamische Linien je Zeitraum (m/i/a/g)

- Chart zeigt für 'Alle Messwerte' (DIA0) Messwert (m), Minimum (i), Maximum (a)
- Für 'Stündlich' und 'Täglich' (DIA1/DIA2) werden Minimum (i), Maximum (a), Durchschnitt (g) angezeigt
- Farben und Legende entsprechend

---
## [1.6.610] – 2025-07-21

- feat(analogInputsChart): zeige Minimum (i) und Maximum (a) als zusätzliche Linien im Chart

- Chart zeigt jetzt Messwert (m), Minimum (i, grün) und Maximum (a, rot) für ausgewählten Zeitraum
- Tooltip und Legende angepasst
- Typdefinitionen für Chart

---
## [1.6.609] – 2025-07-21

- feat(analogInputsChart): zeige Minimum (i) und Maximum (a) als zusätzliche Linien im Chart

- Chart zeigt jetzt Messwert (m), Minimum (i, grün) und Maximum (a, rot) für ausgewählten Zeitraum
- Tooltip und Legende angepasst
- Typdefinitionen für Chart

---
## [1.6.608] – 2025-07-21

- feat(analogInputsChart): zeige Minimum (i) und Maximum (a) als zusätzliche Linien im Chart

- Chart zeigt jetzt Messwert (m), Minimum (i, grün) und Maximum (a, rot) für ausgewählten Zeitraum
- Tooltip und Legende angepasst
- Typdefinitionen für Chart

---
## [1.6.607] – 2025-07-21

- Nach Betriebsferien einmal sichern

---
## [1.6.606] – 2025-07-21

- Nach Betriebsferien einmal sichern

---
## [1.6.605] – 2025-07-21

- Nach Betriebsferien einmal sichern

---
## [1.6.604] – 2025-07-21

- feat(analogInputs): automatisches Laden der Chart-Daten bei Tabellenklick via Redux

- analogInputsHistorySlice um `autoLoad` erweitert, um automatisches Laden zu triggern
- handleSelect in AnalogInputsTable dispatcht jetzt `setAutoLoad(true)`
- AnalogInputsChart lauscht auf `autoLoad` + `selectedId` und lädt Daten automatisch
- `autoLoad` wird nach dem Laden wieder auf false zurückgesetzt

---
## [1.6.603] – 2025-07-21

- feat(analogInputs): automatisches Laden der Chart-Daten bei Tabellenklick via Redux

- analogInputsHistorySlice um `autoLoad` erweitert, um automatisches Laden zu triggern
- handleSelect in AnalogInputsTable dispatcht jetzt `setAutoLoad(true)`
- AnalogInputsChart lauscht auf `autoLoad` + `selectedId` und lädt Daten automatisch
- `autoLoad` wird nach dem Laden wieder auf false zurückgesetzt

---
## [1.6.602] – 2025-07-15

- feat(analogInputs): automatisches Laden der Chart-Daten bei Tabellenklick via Redux

- analogInputsHistorySlice um `autoLoad` erweitert, um automatisches Laden zu triggern
- handleSelect in AnalogInputsTable dispatcht jetzt `setAutoLoad(true)`
- AnalogInputsChart lauscht auf `autoLoad` + `selectedId` und lädt Daten automatisch
- `autoLoad` wird nach dem Laden wieder auf false zurückgesetzt

---
## [1.6.601] – 2025-07-15

- uninstall redux-persist, weil nimmt viel Performance weg

---
## [1.6.600] – 2025-07-15

- uninstall redux-persist, weil nimmt viel Performance weg

---
## [1.6.599] – 2025-07-14

- feat: AnalogInputsChart mit DateRangePicker und vollständiger Redux-Integration erweitert

- analogInputsHistorySlice angepasst: zeitraum, vonDatum, bisDatum und data hinzugefügt
- Typdefinitionen im Slice und Thunk korrigiert
- getAnalogInputsHistoryThunk erweitert, um vonDatum und bisDatum zu akzeptieren
- DateRangePicker korrekt in AnalogInputsChart.tsx integriert
- Fehler bei Selector-Zugriffen und Dispatch behoben

---
## [1.6.598] – 2025-07-11

- feat: AnalogInputsChart mit DateRangePicker und vollständiger Redux-Integration erweitert

- analogInputsHistorySlice angepasst: zeitraum, vonDatum, bisDatum und data hinzugefügt
- Typdefinitionen im Slice und Thunk korrigiert
- getAnalogInputsHistoryThunk erweitert, um vonDatum und bisDatum zu akzeptieren
- DateRangePicker korrekt in AnalogInputsChart.tsx integriert
- Fehler bei Selector-Zugriffen und Dispatch behoben

---
## [1.6.597] – 2025-07-11

- feat(api): Zeitraum und Eingang als Pflichtparameter für AnalogInputs-API eingeführt

- API-Handler für /api/cpl/getAnalogInputsHistory überarbeitet
- `zeitraum` (DIA0, DIA1, DIA2) und `eingang` (1–8) sind jetzt Pflichtfelder
- Bei fehlenden oder ungültigen Parametern strukturierte Fehlerantwort mit Beispielen
- Daten werden nun gezielt pro Eingang und Zeitraum geladen (z. B. AE3 + DIA1)
- Bessere Fehlerbehandlung bei nicht vorhandenen Dateien

---
## [1.6.596] – 2025-07-11

- feat(api): Zeitraum und Eingang als Pflichtparameter für AnalogInputs-API eingeführt

- API-Handler für /api/cpl/getAnalogInputsHistory überarbeitet
- `zeitraum` (DIA0, DIA1, DIA2) und `eingang` (1–8) sind jetzt Pflichtfelder
- Bei fehlenden oder ungültigen Parametern strukturierte Fehlerantwort mit Beispielen
- Daten werden nun gezielt pro Eingang und Zeitraum geladen (z. B. AE3 + DIA1)
- Bessere Fehlerbehandlung bei nicht vorhandenen Dateien

---
## [1.6.595] – 2025-07-11

- feat(api): Zeitraum und Eingang als Pflichtparameter für AnalogInputs-API eingeführt

- API-Handler für /api/cpl/getAnalogInputsHistory überarbeitet
- `zeitraum` (DIA0, DIA1, DIA2) und `eingang` (1–8) sind jetzt Pflichtfelder
- Bei fehlenden oder ungültigen Parametern strukturierte Fehlerantwort mit Beispielen
- Daten werden nun gezielt pro Eingang und Zeitraum geladen (z. B. AE3 + DIA1)
- Bessere Fehlerbehandlung bei nicht vorhandenen Dateien

---
## [1.6.594] – 2025-07-11

- feat(api): Zeitraum und Eingang als Pflichtparameter für AnalogInputs-API eingeführt

- API-Handler für /api/cpl/getAnalogInputsHistory überarbeitet
- `zeitraum` (DIA0, DIA1, DIA2) und `eingang` (1–8) sind jetzt Pflichtfelder
- Bei fehlenden oder ungültigen Parametern strukturierte Fehlerantwort mit Beispielen
- Daten werden nun gezielt pro Eingang und Zeitraum geladen (z. B. AE3 + DIA1)
- Bessere Fehlerbehandlung bei nicht vorhandenen Dateien

---
## [1.6.593] – 2025-07-11

- fix: Von/Bis-Datum beim Schließen des DetailModals zurücksetzen

- Redux-State für vonDatum und bisDatum wird bei handleClose geleert
- verhindert unerwünschtes Vorfiltern bei erneutem Öffnen des Modals

---
## [1.6.592] – 2025-07-11

- fix: Von/Bis-Datum beim Schließen des DetailModals zurücksetzen

- Redux-State für vonDatum und bisDatum wird bei handleClose geleert
- verhindert unerwünschtes Vorfiltern bei erneutem Öffnen des Modals

---
## [1.6.591] – 2025-07-11

- fix: Von/Bis-Datum beim Schließen des DetailModals zurücksetzen

- Redux-State für vonDatum und bisDatum wird bei handleClose geleert
- verhindert unerwünschtes Vorfiltern bei erneutem Öffnen des Modals

---
## [1.6.590] – 2025-07-11

- fix: Von/Bis-Datum beim Schließen des DetailModals zurücksetzen

- Redux-State für vonDatum und bisDatum wird bei handleClose geleert
- verhindert unerwünschtes Vorfiltern bei erneutem Öffnen des Modals

---
## [1.6.589] – 2025-07-11

- feat: Zeitspanne-Funktion mit Von/Bis und Button-Trigger im DetailModal eingebaut

- Chart-Daten werden jetzt erst bei Klick auf „Daten laden“ geladen
- Von/Bis-Zeitauswahl über Redux-State korrekt eingebunden
- Styling der Eingabefelder und Dropdowns vereinheitlicht (eine Zeile)
- Lokalen State für Zeitspanne entfernt und durch Redux ersetzt

---
## [1.6.588] – 2025-07-11

- fix: Messwertlinie (m) im DIA0-Modus in DetailModal sichtbar gemacht

---
## [1.6.587] – 2025-07-11

- fix: Anzeige der Messwertlinie (m) im DIA0-Modus in DetailModal korrigiert

- Unterscheidung zwischen Durchschnitt (g) und Einzelwert (m) je nach Modus eingebaut
- Fehler behoben, bei dem im DIA0-Modus keine blaue Linie angezeigt wurde

---
## [1.6.586] – 2025-07-11

- feat: DetailModal um Min/Max/Durchschnitt ergänzt

- Chart zeigt jetzt zusätzlich zu Messwert auch Minimal-, Maximal- und Durchschnittswerte an
- Datenstruktur an Redux angepasst (i, a, g)
- Darstellung entspricht jetzt LoopMeasurementChart

---
## [1.6.585] – 2025-07-10

- feat: DetailModal um Min/Max/Durchschnitt ergänzt

- Chart zeigt jetzt zusätzlich zu Messwert auch Minimal-, Maximal- und Durchschnittswerte an
- Datenstruktur an Redux angepasst (i, a, g)
- Darstellung entspricht jetzt LoopMeasurementChart

---
## [1.6.584] – 2025-07-10

- feat: DetailModal um Min/Max/Durchschnitt ergänzt

- Chart zeigt jetzt zusätzlich zu Messwert auch Minimal-, Maximal- und Durchschnittswerte an
- Datenstruktur an Redux angepasst (i, a, g)
- Darstellung entspricht jetzt LoopMeasurementChart

---
## [1.6.583] – 2025-07-10

- eslintrc.json :     "@typescript-eslint/no-unused-vars": "warn"

---
## [1.6.582] – 2025-07-10

- eslintrc.json :     "@typescript-eslint/no-unused-vars": "warn"

---
## [1.6.581] – 2025-07-10

- fix: Bei System: Detailansicht: Zeitraum von bis fehlt. Ganzseitenansicht fehlt noch. gelöst mit zoom und pan

---
## [1.6.580] – 2025-07-10

- eslint any type only warn no error

---
## [1.6.579] – 2025-07-10

- eslint any type only warn no error

---
## [1.6.578] – 2025-07-10

- feat: Zoom wird beim Wechsel des Zeitraums im Detail-Chart automatisch zurückgesetzt

---
## [1.6.577] – 2025-07-10

- fix(detail-chart): X-Achse zeigt jetzt Datum und Uhrzeit ohne Sekunden (z. B. 10.07.2025 14:32)

---
## [1.6.576] – 2025-07-10

- fix(detail-chart): X-Achse zeigt jetzt Datum und Uhrzeit ohne Sekunden (z. B. 10.07.2025 14:32)

---
## [1.6.575] – 2025-07-10

- fix(detail-chart): X-Achse zeigt jetzt Datum und Uhrzeit ohne Sekunden (z. B. 10.07.2025 14:32)

---
## [1.6.574] – 2025-07-10

- fix(system-charts): Zeitachse angepasst – aktuelle Daten jetzt rechts wie bei Kabelüberwachung

---
## [1.6.573] – 2025-07-10

- fix(system-charts): Y-Achse mit Einheiten ergänzt (V und °C) für bessere Lesbarkeit

---
## [1.6.572] – 2025-07-10

- feat: Speicherintervall-Feld als Zahleneingabe mit Einheit 'Minuten' angepasst

---
## [1.6.571] – 2025-07-10

- fix: KÜ ISO Wert 200 in Display mit Einheit

---
## [1.6.570] – 2025-07-10

- fix: KÜ ISO Wert 200 in Display mit Einheit

---
## [1.6.569] – 2025-07-10

- WIP: JSON

---
## [1.6.568] – 2025-07-09

- feat: Modus-Erkennung über window.location.hostname implementiert

- Automatische Umschaltung zwischen Entwicklungs- und Produktionsmodus
- Hostname-basierte Erkennung: localhost/127.0.0.1 → "dev", sonst → "production"
- fetchDigitalInputsService.ts entsprechend angepasst
- Erleichtert Entwicklung und reduziert manuelle .env-Konfiguration

---
## [1.6.567] – 2025-07-09

- feat: CGI-kompatiblen CSV-Parser für digitale Eingänge implementiert

- digitaleInputsMockData.json angepasst: CGI-nahe Simulation mit CSV-Strings und Stringwerten
- fetchDigitalInputsService.ts erweitert:
  - CSV-Zeilen werden automatisch in Arrays umgewandelt
  - Labels wie "'DE1','DE2'" werden korrekt aufgeteilt
  - Daten aus 4 CGI-Blöcken zu 32 Eingängen gemappt
- ermöglicht realitätsnahe Tests in Entwicklungsumgebung ohne Produktion

---
## [1.6.566] – 2025-07-09

- feat: Umstellung von CGI-Daten für analoge Eingänge von JS auf JSON

- CGI-Platzhalter in `analogInputs.json` eingeführt (z. B. <%=AAV01%>)
- Alte JS-Datei ersetzt durch reine JSON-Struktur
- Anpassung des Service-Handlers (`getAnalogInputsHandler.ts`) auf JSON-Parsing
- Reduziert Ladezeit, vereinfacht Code und entfernt unnötige Script-Einbindung
- Mock-Daten weiterhin in `analogInputsMockData.json` für Entwicklungsmodus verfügbar

---
## [1.6.565] – 2025-07-08

- Bei den Kabelüberwachung kann neben den Button “Firmware Update” noch zwei Button “Konfiguration sichern” und “Konfiguration zurücksichern” im Admin-Modus hinzukommen.

Store: Befehl KSB%i=%i z.B. KSB03=1 sichert die Konfiguration der KÜ 4

Restore: Befehl KSR%i=%i z.B. KSR03=1 sichert die Konfiguration der KÜ 4 zurück

---
## [1.6.564] – 2025-07-08

- refactor: extract Kabelueberwachung logic into KabelueberwachungView for better structure

---
## [1.6.563] – 2025-07-08

- refactor: move analog inputs logic to AnalogInputsView component

- Verschiebt die gesamte UI-Logik aus pages/analogInputs.tsx in eine eigene Komponente AnalogInputsView.tsx
- pages/analogInputs.tsx dient jetzt nur noch als Router-Einstiegspunkt
- Vereinheitlicht die Struktur wie bei MeldungenView und DashboardView

---
## [1.6.562] – 2025-07-08

- fix: call digitalOutputs from _app.tsx to show immediately without delay

---
## [1.6.561] – 2025-07-08

- fix: sofortige visuelle Aktivierung der Navigationsbuttons beim Klick

- activeLink direkt beim Klick auf Link setzen, statt auf usePathname zu warten
- verbessert visuelles Feedback bei Navigation
- behebt kurze Verzögerung beim Wechsel der aktiven Navigation

---
## [1.6.560] – 2025-07-08

- feat: Verwende fetch statt window.location.href für Digitalausgang-Schalteraktionen

---
## [1.6.559] – 2025-07-08

- circle Button

---
## [1.6.558] – 2025-07-08

- feat: ersetzt Einheit-Select durch Listbox mit littwin-blue Design in AnalogInputsSettingsModal

---
## [1.6.557] – 2025-07-08

- refactor: Zeitraum-Dropdown in DetailModal auf Listbox mit Littwin-Design umgestellt

- <select> durch Headless UI Listbox ersetzt
- Optionen DIA0, DIA1, DIA2 mit deutschem Label dargestellt
- Einheitliches Styling mit littwin-blue wie in anderen Komponenten

---
## [1.6.556] – 2025-07-08

- refactor: LoopChartActionBar Dropdowns auf Listbox mit Littwin-Design umgestellt

- selectedMode (DIA0/DIA1/DIA2) ersetzt durch Headless UI Listbox
- selectedSlotType (Schleifen-/Isolationswiderstand) ebenfalls als Listbox
- Einheitliches Dropdown-Design mit MeldungenView und TDRChartActionBar
- Littwin-blue Stil für ausgewählte Optionen integriert

---
## [1.6.555] – 2025-07-08

- refactor: LoopChartActionBar Dropdowns auf Listbox mit Littwin-Design umgestellt

- selectedMode (DIA0/DIA1/DIA2) ersetzt durch Headless UI Listbox
- selectedSlotType (Schleifen-/Isolationswiderstand) ebenfalls als Listbox
- Einheitliches Dropdown-Design mit MeldungenView und TDRChartActionBar
- Littwin-blue Stil für ausgewählte Optionen integriert

---
## [1.6.554] – 2025-07-08

- fix: TDR select List mouseover gray 200

---
## [1.6.553] – 2025-07-08

- fix: TDR select List mouseover gray 200

---
## [1.6.552] – 2025-07-07

- fix: TDR select List mouseover gray 200

---
## [1.6.551] – 2025-07-07

- fix: TDR select List mouseover gray 200

---
## [1.6.550] – 2025-07-07

- fix: List mouseover -> hover:bg-gray-200

---
## [1.6.549] – 2025-07-07

- fix: List mouseover -> hover:bg-gray-200

---
## [1.6.548] – 2025-07-07

- fix: es soll dann nur wenn der Button Anziegen geklickt wird anzeigenund nicht automatisch nach ein Datumauswahl

---
## [1.6.547] – 2025-07-07

- refactor: API-Handler umbenannt zu messages.ts für klare REST-Struktur

- getMessagesAPIHandler.ts in messages.ts umbenannt
- API ist nun unter /api/cpl/messages erreichbar
- Dateiname entspricht Next.js- und REST-Konventionen

---
## [1.6.546] – 2025-07-07

- style: UI-Filterzeile visuell vereinheitlicht – vertikale Ausrichtung und Höhe angepasst

- 'items-end' durch 'items-center' ersetzt für mittige Ausrichtung der Filterzeile
- Button- und Listbox-Komponenten optisch auf gleiche Höhe gebracht
- Einheitliches Erscheinungsbild von DatePicker, Anzeigen-Button und Quellen-Dropdown

---
## [1.6.545] – 2025-07-07

- fix: Listbox-Filter "Alle Quellen" zeigt nun korrekt alle Meldungen an

- Initialwert von sourceFilter auf "Alle Quellen" gesetzt
- Filterbedingung angepasst, um mit Listbox-Einträgen übereinzustimmen
- Dropdown-UX verbessert durch Icon und Scrollfunktion

---
## [1.6.544] – 2025-07-07

- fix: Zeitstempel in Meldungstabelle inkl. Uhrzeit im deutschen Format (TT.MM.JJJJ, HH:MM:SS)

- msg.t wird jetzt per toLocaleString('de-DE') mit Zeitformatierung angezeigt
- Beispiel: 26.06.2025, 19:26:07

---
## [1.6.543] – 2025-07-07

- fix: DatePicker über Tabellenkopf anzeigen durch z-index und Portal-Lösung

- react-datepicker auf portalId 'root-portal' umgestellt
- CSS-Klasse 'custom-datepicker-popper' mit z-index: 9999 in globals.css ergänzt
- Problem behoben, dass DatePicker hinter dem sticky Tabellen-Header verborgen war
- Tailwind-Konfiguration um z-[60,70] erweitert, wenn nötig

---
## [1.6.542] – 2025-07-07

- feat: lade nur spezifischen Spannungs-/Temperatur-Thunk beim Öffnen des Detailmodals

- Entfernt globale Thunk-Aufrufe für alle Systemwerte bei Zeitraumwechsel
- Detailansicht lädt nun nur den benötigten Redux-Thunk (z. B. +15V → Channel 108)
- Zeitraumwechsel im Modal löst gezielt nur den zugehörigen Thunk aus
- Reduziert unnötige Datenlast und verbessert Performance bei Embedded-Geräten

---
## [1.6.541] – 2025-07-07

- system

---
## [1.6.540] – 2025-07-07

- refactor: Seitenkomponenten ausgelagert in View-Komponenten

- meldungen.tsx → MeldungenView.tsx erstellt
  → beinhaltet Filterleiste, Tabellenansicht und Datenabruf
- system.tsx → SystemView.tsx ausgelagert
  → verbessert Lesbarkeit und Trennung von Routing und Inhalt
- View-Suffix verwendet für klare Struktur (Page = Entry, View = Inhalt)

---
## [1.6.539] – 2025-07-07

- feat: fetch-Services für Spannung und Temperatur für Dev- und Prod-Modus angepasst

- fetchSystemspannung5VplusService: Channel 110 (+5V), prod = /cpl?/dashboard.html
- fetchSystemspannung15VplusService: Channel 108 (+15V)
- fetchSystemspannung15VminusService: Channel 114 (-15V)
- fetchSystemspannung98VminusService: Channel 115 (-98V)
- fetchTemperaturAdWandlerService: Channel 116 (Temperatur AD-Wandler)
- fetchTemperaturProzessorService: Channel 117 (Temperatur Prozessor)

→ Dev-Mode verwendet API-Handler (/api/cpl/...)
→ Production-Mode nutzt CGI-kompatible URLs (/cpl?/dashboard.html&...)

Fehlerbehandlung integriert, Struktur für Wiederverwendung vereinheitlicht

---
## [1.6.538] – 2025-07-03

- feat: Detailansicht auf dynamische Redux-Datenquellen umgestellt

- DetailModal.tsx überarbeitet, um Redux-Daten je nach ausgewähltem Key (+5V, +15V, -15V, -98V, ADC Temp, CPU Temp) anzuzeigen
- Zeitraum-Auswahl (DIA0, DIA1, DIA2) wird berücksichtigt und löst passenden Thunk aus
- Redux-State-Struktur vollständig integriert für Systemspannungen und Temperaturen
- Chart-Anzeige jetzt dynamisch und erweiterbar

---
## [1.6.537] – 2025-07-03

- feat: APIs erstellt für Systemspannungen

---
## [1.6.536] – 2025-07-03

- feat: APIs erstellt für Systemspannungen

---
## [1.6.535] – 2025-07-03

- feat: in System 5 Volt DIA0, DIA1 und DIA2 in dropdown anzeigen

---
## [1.6.534] – 2025-07-03

- feat: in System 5 Volt DIA0, DIA1 und DIA2 in dropdown anzeigen

---
## [1.6.533] – 2025-07-03

- feat: API für Systemspannung +5V erfolgreich implementiert

- API-Handler `getSystemspannung5VplusHandler.ts` erstellt
- JSON-Daten werden aus dem Verzeichnis `mocks/device-cgi-simulator/chartsData/systemspannung5Vplus/` geladen
- unterstützt die Parameter DIA0, DIA1, DIA2 für unterschiedliche Datenfrequenzen
- Fehlerbehandlung bei ungültigen Typen und fehlenden Dateien eingebaut
- API getestet unter `/api/cpl/getSystemspannung5VplusHandler?typ=DIA0`

---
## [1.6.532] – 2025-07-03

- feat: API für Systemspannung +5V erfolgreich implementiert

- API-Handler `getSystemspannung5VplusHandler.ts` erstellt
- JSON-Daten werden aus dem Verzeichnis `mocks/device-cgi-simulator/chartsData/systemspannung5Vplus/` geladen
- unterstützt die Parameter DIA0, DIA1, DIA2 für unterschiedliche Datenfrequenzen
- Fehlerbehandlung bei ungültigen Typen und fehlenden Dateien eingebaut
- API getestet unter `/api/cpl/getSystemspannung5VplusHandler?typ=DIA0`

---
## [1.6.531] – 2025-07-03

- feat: API für Systemspannung +5V erfolgreich implementiert

- API-Handler `getSystemspannung5VplusHandler.ts` erstellt
- JSON-Daten werden aus dem Verzeichnis `mocks/device-cgi-simulator/chartsData/systemspannung5Vplus/` geladen
- unterstützt die Parameter DIA0, DIA1, DIA2 für unterschiedliche Datenfrequenzen
- Fehlerbehandlung bei ungültigen Typen und fehlenden Dateien eingebaut
- API getestet unter `/api/cpl/getSystemspannung5VplusHandler?typ=DIA0`

---
## [1.6.530] – 2025-07-03

- fix: KÜ Firmwareupdate

---
## [1.6.529] – 2025-07-03

- fix: KÜ Firmwareupdate

---
## [1.6.528] – 2025-07-03

- fix: KÜ Firmwareupdate

---
## [1.6.527] – 2025-07-03

- fix: Firmware-Update läuft nun exakt 5 Minuten bis 100 % Fortschritt

- Fehler behoben, bei dem das Firmware-Update nach wenigen Sekunden vorzeitig beendet wurde
- Fortschrittsanzeige über Redux-Slice `firmwareProgressSlice` korrekt umgesetzt
- Thunk `startFirmwareUpdateThunk` korrekt eingebunden und verwendet
- UI zeigt stabile 5-minütige Progressbar wie erwartet

---
## [1.6.526] – 2025-07-02

- fix: Firmware-Update läuft nun exakt 5 Minuten bis 100 % Fortschritt

- Fehler behoben, bei dem das Firmware-Update nach wenigen Sekunden vorzeitig beendet wurde
- Fortschrittsanzeige über Redux-Slice `firmwareProgressSlice` korrekt umgesetzt
- Thunk `startFirmwareUpdateThunk` korrekt eingebunden und verwendet
- UI zeigt stabile 5-minütige Progressbar wie erwartet

---
## [1.6.525] – 2025-07-02

- fix: Toast-Benachrichtigungen wiederhergestellt durch Einbindung von ToastContainer

- <ToastContainer /> in _app.tsx hinzugefügt
- react-toastify funktioniert jetzt wie vorgesehen (z. B. Firmware-Update Feedback)
- autoClose-Zeit für bessere Sichtbarkeit ggf. angepasst

---
## [1.6.524] – 2025-07-02

- fix: Toast-Benachrichtigungen wiederhergestellt durch Einbindung von ToastContainer

- <ToastContainer /> in _app.tsx hinzugefügt
- react-toastify funktioniert jetzt wie vorgesehen (z. B. Firmware-Update Feedback)
- autoClose-Zeit für bessere Sichtbarkeit ggf. angepasst

---
## [1.6.523] – 2025-07-02

- fix: ConfirmModal-Zustand in Redux ausgelagert zur Stabilisierung

- Neuen confirmModalSlice erstellt für globale Steuerung des Bestätigungsdialogs
- Zustand wird nun nicht mehr durch Re-Renders oder Komponentenneuaufbau zurückgesetzt
- ConfirmModal in KueEinstellung.tsx vollständig an Redux angebunden
- Flackern und automatisches Schließen nach 10–15 Sekunden dauerhaft behoben

---
## [1.6.522] – 2025-07-02

- feat: Auth-Status bei App-Start aus localStorage laden und in Redux speichern

- fetchAuthService erstellt zum Auslesen von isAdminLoggedIn aus localStorage
- getAuthThunks Thunk implementiert zur Initialisierung von authSlice
- authSlice erweitert um setIsAdminLoggedIn Reducer
- dispatch(getAuthThunks()) in _app.tsx integriert für automatische Initialisierung bei App-Start
- Flackern und falscher Admin-Status nach Reload dauerhaft behoben

---
## [1.6.521] – 2025-07-02

- refactor: Admin-Status direkt aus Redux ausgelesen und Props entfernt

- isAdminLoggedIn wird jetzt direkt aus authSlice im Redux-Store gelesen
- useAdminAuth und Prop-Weitergabe entfernt
- Flackern des Firmware-Buttons dauerhaft behoben
- Codestruktur vereinfacht und stabilisiert

---
## [1.6.520] – 2025-07-02

- refactor: Admin-Status direkt aus Redux ausgelesen und Props entfernt

- isAdminLoggedIn wird jetzt direkt aus authSlice im Redux-Store gelesen
- useAdminAuth und Prop-Weitergabe entfernt
- Flackern des Firmware-Buttons dauerhaft behoben
- Codestruktur vereinfacht und stabilisiert

---
## [1.6.519] – 2025-07-02

- fix: Firmware-Update-Button stabilisiert und Flackern entfernt

- useAdminAuth aus KueEinstellung entfernt und einmalig in SettingsModalWrapper ausgelagert
- isAdminLoggedIn als Prop übergeben, um ständige Aktualisierungen zu vermeiden
- Button wird jetzt stabil angezeigt ohne console-Logs oder Intervall-Aufrufe

---
## [1.6.518] – 2025-07-02

- fix: Firmware-Update-Button stabilisiert und Flackern entfernt

- useAdminAuth aus KueEinstellung entfernt und einmalig in SettingsModalWrapper ausgelagert
- isAdminLoggedIn als Prop übergeben, um ständige Aktualisierungen zu vermeiden
- Button wird jetzt stabil angezeigt ohne console-Logs oder Intervall-Aufrufe

---
## [1.6.517] – 2025-07-02

- fix: Firmware-Update-Button stabilisiert und Flackern entfernt

- useAdminAuth aus KueEinstellung entfernt und einmalig in SettingsModalWrapper ausgelagert
- isAdminLoggedIn als Prop übergeben, um ständige Aktualisierungen zu vermeiden
- Button wird jetzt stabil angezeigt ohne console-Logs oder Intervall-Aufrufe

---
## [1.6.516] – 2025-07-02

- fix: Firmware-Update-Button stabilisiert und Flackern entfernt

- useAdminAuth aus KueEinstellung entfernt und einmalig in SettingsModalWrapper ausgelagert
- isAdminLoggedIn als Prop übergeben, um ständige Aktualisierungen zu vermeiden
- Button wird jetzt stabil angezeigt ohne console-Logs oder Intervall-Aufrufe

---
## [1.6.515] – 2025-07-02

- feat: Firmwareupdate für alle KÜ-Module mit Fortschrittsanzeige und Abschlussmeldung

- ProgressModal-Komponente implementiert, die während des Updates angezeigt wird
- Firmwareupdate dauert 5 Minuten (Mock-Simulation)
- Nach Abschluss erscheint automatisch ein Toast-Hinweis
- Verbesserte Benutzerführung durch blockierendes Modal während Update
- Logging in kueFirmwareUpdateLog.json integriert (Mock)

---
## [1.6.514] – 2025-07-02

- feat: Firmwareupdate für alle KÜ-Module mit Fortschrittsanzeige und Abschlussmeldung

- ProgressModal-Komponente implementiert, die während des Updates angezeigt wird
- Firmwareupdate dauert 5 Minuten (Mock-Simulation)
- Nach Abschluss erscheint automatisch ein Toast-Hinweis
- Verbesserte Benutzerführung durch blockierendes Modal während Update
- Logging in kueFirmwareUpdateLog.json integriert (Mock)

---
## [1.6.513] – 2025-07-01

- feat:  alle KÜs Firmware update confirm

---
## [1.6.512] – 2025-07-01

- fix: hide Firmware update button if admin not loged in

---
## [1.6.511] – 2025-07-01

- feat: alle KÜs Firmware update

---
## [1.6.510] – 2025-06-30

- feat: handleKueFirmwareUpdate

---
## [1.6.509] – 2025-06-30

- feat: 1und 0 in Status in dashboard

---
## [1.6.508] – 2025-06-30

- feat: 1und 0 in Status in dashboard

---
## [1.6.507] – 2025-06-30

- feat: Dashboard Meldungen Status 1 oder 0

---
## [1.6.506] – 2025-06-30

- feat: Redux-Integration für Meldungen, Anzeige von 'v' statt 's' in UI

---
## [1.6.505] – 2025-06-30

- feat: Redux-Integration für Meldungen, Anzeige von 'v' statt 's' in UI

---
## [1.6.504] – 2025-06-30

- feat: Redux-Integration für Meldungen, Anzeige von 'v' statt 's' in UI

---
## [1.6.503] – 2025-06-30

- feat: Redux-Integration für Meldungen, Anzeige von 'v' statt 's' in UI

---
## [1.6.502] – 2025-06-30

- feat: implement date in analog inputs chart

---
## [1.6.501] – 2025-06-30

- feat: implement date in analog inputs chart

---
## [1.6.500] – 2025-06-27

- feat: implement Date in anlog inputs chart

---
## [1.6.499] – 2025-06-27

- cleanup: delete old analog inputs mock data

---
## [1.6.498] – 2025-06-27

- cleanup: delete old analog inputs mock data

---
## [1.6.497] – 2025-06-27

- fix: show history digital input

---
## [1.6.496] – 2025-06-27

- fix es lint ignore

---
## [1.6.495] – 2025-06-27

- Mock daten

---
## [1.6.494] – 2025-06-27

- Mock Daten hinzugefügt

---
## [1.6.493] – 2025-06-27

- Mock Daten hinzugefügt

---
## [1.6.492] – 2025-06-27

- Mock Daten hinzugefügt

---
## [1.6.491] – 2025-06-27

- mock Daten für Charts hinzugefügt

---
## [1.6.490] – 2025-06-27

- fix: fix: einheitliche Höhe für Header/Footer auf Berichte-Seite gesetzt

- Layout von meldungen.tsx angepasst, um Hüpfen und Größenunterschied zu vermeiden
- Container-Höhe auf h-[calc(100vh-13vh-8vh)] angepasst wie auf den anderen Seiten
- Einheitliches Verhalten von Header, Footer und Navigation gewährleistet

---
## [1.6.489] – 2025-06-27

- fix: nur 8 Analoge Eingänge

---
## [1.6.488] – 2025-06-27

- refactorring dashboard

---
## [1.6.487] – 2025-06-27

- refactor

---
## [1.6.486] – 2025-06-27

- refactor: rename einausgange to  digitalOtputs and digitalInputs

---
## [1.6.485] – 2025-06-27

- esLint

---
## [1.6.484] – 2025-06-27

- esLint

---
## [1.6.483] – 2025-06-26

- EsLint

---
## [1.6.482] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.481] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.480] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.479] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.478] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.477] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.476] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.475] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.474] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.473] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.472] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.470] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.469] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.468] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.467] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.466] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.465] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.464] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.463] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.462] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.461] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.460] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.459] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.458] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.457] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.456] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.455] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.454] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.453] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.452] – 2025-06-26

- feat: Tabellenkopf in Berichte-Seite fixiert und Scrollen verbessert

- thead mit sticky top-0 versehen für festen Header beim Scrollen
- vertikales Scrollen durch max-h-[80vh] und overflow-auto aktiviert
- optimiert für Desktop- und Mobilgeräte (iOS, iPad, etc.)
- Pagination entfernt für besseres Nutzererlebnis beim Scrollen

---
## [1.6.451] – 2025-06-26

- feat: zeige die neuesten 20 Meldungen in Last20MessagesTable

- Daten aus API chronologisch absteigend sortiert (neueste zuerst)
- Anzeige auf die ersten 20 Einträge begrenzt
- Verhalten nun konsistent mit Seite /meldungen

---
## [1.6.450] – 2025-06-26

- feat: Filter für Quelle

---
## [1.6.449] – 2025-06-25

- refactor:  alle Feature-Flags entfernt wegen Aufwand und Zeit

---
## [1.6.448] – 2025-06-25

- Add: SERVICE JSON Files

---
## [1.6.447] – 2025-06-25

- feat: Zeitraum einstellbar in AnalogInputsChart mit Zoom- und Pan-Funktion umgesetzt

---
## [1.6.446] – 2025-06-25

- docs: Zusatzfunktionen (Kai, 25.06.2025) in TODO.md ergänzt

---
## [1.6.445] – 2025-06-25

- docs: README

---
## [1.6.444] – 2025-06-23

- feat: digitalOutputs separate jsSimulatedProd mode

---
## [1.6.443] – 2025-06-22

- feat: jsSimulatedProd-Modus für analoge & digitale Eingänge implementiert

- neuen Modus `jsSimulatedProd` eingeführt für realitätsnahe Simulation auf Basis echter Produktionsdaten
- analoge Eingänge: analogInputsMockData.js eingebunden und dynamisch per Script geladen
- digitale Eingänge: digitalInputsMockData.js eingebunden mit window-Variablen (z. B. win_de_state, win_de_label etc.)
- fetchAnalogInputsService.ts und fetchDigitalInputsService.ts angepasst zur Modusprüfung und Script-Auswertung
- getAnalogInputsHandler.ts und getDigitalInputsHandler.ts geben im jsSimulatedProd-Modus JavaScript-Dateien aus
- .env.development setzt `NEXT_PUBLIC_CPL_MODE=jsSimulatedProd`

---
## [1.6.442] – 2025-06-22

- docs: add full architecture diagram and data flow for json, jsmock and production modes

---
## [1.6.441] – 2025-06-21

- docs: add analog inputs architecture diagram and flow description

---

## [1.6.440] – 2025-06-21

- docs: move user documentation to docs/user-guide as single source of truth

---

## [1.6.439] – 2025-06-21

- chore: fetch to get in redux thunks files name

---

## [1.6.438] – 2025-06-21

- chore(tsconfig): fix moduleResolution and path aliases for Next.js project

---

## [1.6.437] – 2025-06-21

- chore: rename service/thunk files to follow get/fetch naming convention

---

## [1.6.436] – 2025-06-20

- Mocks erstellt für API für Entwicklungsumgebung

---

## [1.6.435] – 2025-06-20

- auto CHANGELOG.md

---

## [1.6.434] – 2025-06-20

- pre-commit

---

## [1.6.433] – 2025-06-20

- CHANGELOG auto

---

## [1.6.432] – 2025-06-20

- feat: Statusanzeige für Eingänge implementiert

---

## [1.6.431] – 2025-06-20

- feat: Digitale & analoge Eingänge in allen Modi (json/jsSimulatedProd/production) vollständig implementiert

---

# 📦 CHANGELOG – CPLv4.0

Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert.

---

## [1.6.429] – 2025-06-20

### Feature: Digitale & Analoge Eingänge – Alle Modi unterstützt

- Digitale Eingänge (Meldungseingänge) sind jetzt vollständig implementiert:
  - `json`: Mock-Daten werden editierbar über eine JSON-Datei verwaltet
  - `jsSimulatedProd`: JavaScript-basierte Simulation mit `window.win_di_state`, `win_di_label`, etc.
  - `production`: Kommunikation über CGI-Befehle wie `DEN1=...`, `DEI1=...`
- Analoge Eingänge ebenfalls vollständig in allen Modi (json/jsSimulatedProd/production) nutzbar
- Die Statusanzeige für digitale Eingänge wird korrekt aus Redux gelesen (`input.status`)
- Redux-Struktur überarbeitet: `invert`, `status`, `counterActive`, `value` werden sauber getrennt
- Die Modi-Erkennung erfolgt automatisch über `NEXT_PUBLIC_CPL_MODE`
- UI-Logik trennt initiale Redux-Werte und lokale States in `InputModal.tsx`, um ungewolltes Überschreiben zu verhindern
- `DigitalInputs.tsx`, `DigitalOutputs.tsx` und `AnalogInputs.tsx` greifen auf dieselbe modulare Datenstruktur zurück

---

## [1.6.418] – 2025-06-19

### Feature: Digitale Ausgänge vollständig implementiert (Lesen & Schreiben in 3 Modi)

- Die Schaltausgänge (digitale Ausgänge) sind jetzt in allen Modi vollständig funktionsfähig:
  - `json` (lokale Entwicklung mit editierbaren Mock-Daten)
  - `jsSimulatedProd` (Simulation durch JavaScript-Variablen im `window`-Objekt)
  - `production` (Platzhalterersetzung über CGI durch das echte CPL-Gerät)
- Die API `/api/cpl/updateDigitalOutputsHandler` verarbeitet POST-Daten je nach Modus:
  - In `json`: Speicherung in `digitalOutputsMockData.json`
  - In `jsSimulatedProd`: Live-Änderung in `digitalOutputsMockData.js` per Regex
  - In `production`: Statusänderung über Redirect zu `/CPL?digitalOutputs.html&DAS0X=1`
- Die Datei `fetchDigitalOutputsService.ts` erkennt den aktiven Modus und lädt Daten kontextsensitiv
- Alle Werte werden über Redux bereitgestellt, die UI nutzt `useSelector()` zur Anzeige in `DigitalOutputsWidget.tsx`
- Mermaid-Dokumentation zur Architektur im Projekt ergänzt (`README_digitalOutputs_final.md`)- `json` und `jsSimulatedProd` wurden zu einer gemeinsamen API `/api/cpl/getDigitalOutputsHandler.ts` zusammengeführt
  - Die API erkennt den Modus automatisch über `NEXT_PUBLIC_CPL_MODE`
  - In `json` wird eine editierbare JSON-Datei gelesen und zurückgegeben
  - In `jsSimulatedProd` wird eine JavaScript-Datei per Regex analysiert und verarbeitet
- Die Logik in `fetchDigitalOutputsService.ts` wurde vereinfacht:
  - Für beide Modi wird dieselbe API aufgerufen
  - Nur in `production` wird das Script `/CPL?/CPL/SERVICE/digitalOutputs.js` dynamisch eingebunden
- Die Mermaid-Diagramme im `README_digitalOutputs.md` wurden angepasst und beschriften nun explizit den Diagrammtyp („flowchart“ / Datenflussdiagramm)

Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert.

---

## [1.6.417] – 2025-06-19

### Feature: Digitale Ausgänge vollständig implementiert (Lesen & Schreiben in 3 Modi)

- Die Schaltausgänge (digitale Ausgänge) sind jetzt in allen Modi vollständig funktionsfähig:
  - `json` (lokale Entwicklung mit editierbaren Mock-Daten)
  - `jsSimulatedProd` (Simulation durch JavaScript-Variablen im `window`-Objekt)
  - `production` (Platzhalterersetzung über CGI durch das echte CPL-Gerät)
- Die API `/api/cpl/updateDigitalOutputsHandler` verarbeitet POST-Daten je nach Modus:
  - In `json`: Speicherung in `digitalOutputsMockData.json`
  - In `jsSimulatedProd`: Live-Änderung in `digitalOutputsMockData.js` per Regex
  - In `production`: Statusänderung über Redirect zu `/CPL?digitalOutputs.html&DAS0X=1`
- Die Datei `fetchDigitalOutputsService.ts` erkennt den aktiven Modus und lädt Daten kontextsensitiv
- Alle Werte werden über Redux bereitgestellt, die UI nutzt `useSelector()` zur Anzeige in `DigitalOutputsWidget.tsx`
- Mermaid-Dokumentation zur Architektur im Projekt ergänzt (`README_digitalOutputs_final.md`)

Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert.

---

## [1.6.407] – 2025-06-16

### Feature: Kabelname statt Bezeichnung

- In `Kue705FO.tsx` wird jetzt **der Kabelname (`kueName`)** unterhalb jedes Moduls angezeigt, statt der bisherigen Kabelbezeichnung (`kueID`)
- Im Einstellungsmodal (`KueEinstellung.tsx`) wurde:
  - `kueID` als **readOnly** markiert (nicht mehr beschreibbar)
  - Ein neues editierbares Feld für `kueName` hinzugefügt
  - Hochkommas `'` werden automatisch entfernt
  - Änderungen werden dauerhaft per `&KIA${slot}=${name}` an das CPL-Gerät gesendet
- State & `window.win_kueName` werden synchronisiert, damit Änderungen sofort und dauerhaft angezeigt werden
- Debug-Funktion für `fetch`-Monitoring entfernt

---

## [1.6.403] – 2025-05-13

### Sicherheit & UI

- Der Umschalter für die TDR-Aktivierung in `TdrEinstellung.tsx` wird jetzt nur noch angezeigt, wenn ein Admin eingeloggt ist.
- Damit wird verhindert, dass Standardnutzer oder Gäste versehentlich TDR-Funktionen aktivieren oder deaktivieren.
- Gleiche Logik wie beim „Firmware Update“-Button in `KueEinstellung.tsx` (`useAdminAuth`).

---

## [1.6.402] – 2025-05-13

### Fix

Die Bezeichnung für Schaltausgänge/digitale Ausgänge können geändert werden, aber der
Scahlter für Ein/Aus muss noch im Backend programmiert werden

---

---

## [1.6.400] – 2025-05-13

### Feature

- In `_app.tsx` wurde ein zentrales Redux-Update-System implementiert:
  - Die aktuelle Seite wird automatisch erkannt (`window.location.pathname`)
  - Abhängig von der Seite werden die passenden Thunks geladen (z. B. `getKueDataThunk`, `getDigitalOutputsThunk` usw.)
  - Die Daten werden alle 10 Sekunden erneut geladen
  - Dadurch muss auf den Unterseiten kein separater Redux-Aufruf mehr erfolgen
- Unterstützt alle Slices: digitale/analoge Ein- und Ausgänge, Meldungen, Systemstatus, Einstellungen, TDR/Loop-Daten
- Reduziert Hardwarelast durch seitenbezogene API-Calls

---

## [1.6.399] – 2025-05-12

### fix

Bei den Messkurven der Kabelüberwachungen ist noch ein Fehler: Du übergibst für die erste Kabelüberwachung den Wert 1 anstatt 0.

Im Lastenheft steht 0 bis 31 für Kabelüberwachungen (Wert q):

---

## [1.6.340] – 2025-05-02

### Verbesserungen

- Das Modal für analoge Eingänge unterstützt jetzt auch die Produktion:
  - In der Entwicklungsumgebung wird wie bisher die Mock-Datei (`analogeEingaengeMockData.js`) über die API gespeichert
  - In der Produktionsumgebung werden die Einstellungen direkt per CGI-Aufruf an das CPL gesendet (`/CPL?/Service/ae.ACP&...`)
- Die Erkennung der Umgebung (DEV/PROD) erfolgt automatisch über `window.location.hostname`
- Die Speicherung per CGI-Link wurde erfolgreich getestet mit `ACN1=...`, `ACO1=...`, `ACF1=...`, `ACL1=...`

---

## [1.6.339] – 2025-05-02

### Hinzugefügt

- Modal für analoge Eingänge: Einstellungen für Offset, Faktor, Bezeichnung und Loggerintervall jetzt verfügbar
- Änderungen werden in der Entwicklungsumgebung über die zentrale Mock-API `/api/cpl/updateAnalogInputsSettingsAPIHandler` gespeichert
- Unterstützt Speichern im Format `var xyz = [ ... ];` mit Kommentaren vor und nach dem Block
- Speichern löst automatischen Reload aus zur Anzeige der neuen Werte

---

## [1.6.338] – 2025-05-02

### Verbesserungen

- TDR-Modul: Beim Umschalten der TDR-Funktion erscheint nun ein Hinweisdialog („TDR wurde aktiviert/deaktiviert“) und die Seite wird nach Bestätigung automatisch neu geladen

---

## [1.6.329] – 2025-05-02

### Hinzugefügt

- Auf der Seite **/analogeEingaenge** wird nun nur der ausgewählte Eingang im Chart angezeigt
- Der Titel des Charts enthält die Angabe „letzte 24 Stunden“
- Die Zeitachse (X-Achse) ist im deutschen Format (`HH:mm Uhr DD.MM.`)

---

## [1.6.328] – 2025-05-02

### Hinzugefügt

- Systemseite: Darstellung von Spannungen und Temperaturen in zwei separaten Charts (nebeneinander)
- Spannungswerte werden auf zwei Dezimalstellen gerundet dargestellt

---

## [1.6.327] – 2025-05-02

### Hinzugefügt

- Einheitliche POST-API `/api/cpl/updateTdrSettingsDataAPIHandler` verarbeitet jetzt:
  - win_tdrAtten
  - win_tdrSpeed
  - win_tdrTrigger
  - win_tdrActive
- Unterstützt gleichzeitige Speicherung mehrerer TDR-Werte pro Slot (Mock-Daten)
- TDR-Werte werden lokal gecached, UI wird nicht mehr durch Redux überschrieben
- Modal wird nach erfolgreicher Speicherung automatisch geschlossen
- API bereinigt kaputte Dateizeilen am Ende (z. B. `)` oder `12h)`)

---

## [1.6.320] 2025-04-29

### Hinzugefügt (dev)

- Lokaler API-Endpunkt `/api/cpl/updateKueSettingsDataAPIHandler` für KUE-Einstellungen
- Änderungen an Mock-Daten in `/apiMockData/SERVICE/kabelueberwachungMockData.js` möglich
- Unterstützung für Strings mit korrekter Formatierung (Anführungszeichen)
- Fehlerhafte Kommas und doppelte Semikolons im Array-Format behoben
- Frontend kann vollständig ohne CPL-Hardware getestet werden

---

## [1.6.318] – 2025-04-29

### Fix

- Anzeige aller KUE-Werte (Grenzwerte, Verzögerung, Intervalle) nach dem Speichern sofort im UI aktualisiert
- Lokale Eingabewerte (`formData`) werden direkt nach erfolgreichem Speichern neu gesetzt
- Keine Navigation mehr nötig, um gespeicherte Werte zu sehen

---

## [1.6.314] – 2025-04-29

### Verbesserungen

- Digitale Eingänge und Ausgänge (DigitalInputs, DigitalOutputs) vollständig responsive gemacht
- Icons und Textgrößen an Breakpoints laptop, xl, 2xl angepasst
- Einheitliche Darstellung der Meldungseingänge und Schaltausgänge auf allen Bildschirmgrößen
- Alle Icons lokal eingebunden für vollständige Offline-Unterstützung

---

## [1.6.308] – 2025-04-29

### Fix

- Anzeige der KÜ705-FO Modulversionen korrigiert (z.B. 4.20 statt 4.2)
- Korrekte Formatierung in der Hook `useKueVersion` implementiert

---

## [1.6.307] – 2025-04-28

### Hinzugefügt

- Chart.js-basierte Visualisierung für alle 8 analogen Eingänge
- Historische Messwerte der letzten 24 Stunden werden dargestellt
- Nutzer kann Linien für einzelne Eingänge über die Legende ein- und ausblenden
- Mock-Daten werden in der Entwicklungsumgebung automatisch über API-Handler geladen (`/api/cpl/fetchAnalogInputsHistory`)
- Nutzung von Redux-Slice `analogInputsHistory` für zentrales Datenmanagement

---

## [1.6.194] – 2025-03-31

### Hinzugefügt

- TDR-Dropdown zeigt nun Zeitstempel im deutschen Format (`TT.MM.JJJJ, HH:MM:SS`)
- Anzeige der Fehlerstelle (`d`) direkt im Dropdown
- Intern wird weiterhin die ID verwendet

---

## [1.6.190] – 2025-03-29

### Dokumentation

- Vollständige `README.md` erstellt mit Seitenstruktur, Technologie-Stack und Installationsanleitung

---

## [1.6.189] – 2025-03-28

### Verbesserungen

- Referenzkurve wird sofort nach dem Setzen im Chart aktualisiert
- Legendenbeschriftung im TDR-Chart überarbeitet

---

## [1.6.155] – 2025-03-26

### Hinzugefügt

- Dropdown-Funktion für letzte TDR-Messungen pro Slot (ID-Auswahl)

---

## [1.6.146] – 2025-03-19

### Hinzugefügt

- Referenzkurvenanzeige im TDR-Chart integriert

---

## [1.6.145] – 2025-03-18

### Hinzugefügt

- Erste Version des TDR-Charts mit Live-Datenanzeige

---

## [1.6.137] – 2025-03-15

### Hinzugefügt

- Redux-Thunk-Struktur für analoge & digitale Eingänge implementiert

---

## [1.6.123] – 2025-03-10

### Release

- Allgemeine Optimierungen

---

## [1.6.122] – 2025-03-09

### Fixes

- Reihenfolge der Legenden-Einträge im Chart korrigiert

---

## [1.6.121] – 2025-03-08

### Verbesserung

- Chart-Bereich mit Kalenderfunktion synchronisiert

---

## [1.6.110] – 2025-03-04

- Interne Updates ohne spezielle Notiz

---

## [1.6.106] – 2025-03-02

### Fix

- Typfehler in `useLoopDisplay` & `Kue705FO` behoben

---

## [1.6.105] – 2025-03-01

### UI

- Responsive Design überarbeitet (Tailwind)

---

## [1.6.86] – 2025-02-22

### Fix

- API-URL für Produktionsumgebung dynamisch + Datumsfix

---

## [1.6.82] – 2025-02-20

### Fix

- `window is not defined`-Fehler in Charts behoben
- Schleifenanzeige korrigiert
- Build erfolgreich möglich

---

## [1.6.44] – 2024-12-19

### Refactor

- Dashboard-Komponenten modularisiert und importiert

---

## [1.0.6.1] – 2024-11-10

### Hinzugefügt

- Erste Version mit `GeneralSettings`-Integration

## [1.0.6.0] – 2024-11-05

### Migration

- Umstellung des Projekts von JavaScript auf TypeScript

---

## [1.0.5.3] – 2024-10-28

### Hinzugefügt

- Digitale Ein- und Ausgänge hinzugefügt

## [1.0.5.1] – 2024-10-26

### UI

- Tailwind Responsiveness (xl, 2xl) im Chrome Mobile Emulator angepasst

## [1.0.5] – 2024-10-25

### Sicherheit

- Admin-Login mit Passwort-Hashing implementiert

## [1.0.4] – 2024-10-20

### Feature

- NTP-Synchronisation für Systemzeit getestet und bestätigt

## [1.0.2] – 2024-10-15

### Hinzugefügt

- Neues Einstellungs-Modal
- Verbesserte NTP-Konfiguration & Netzwerk-Reboot-Handling

## [1.0.1] – 2024-10-10

### Refactor

- `kueModal` und `settingsModal` modularisiert und mit Handlern versehen

## [1.0.0] – 2024-10-01

### Initial Release

- Erste produktionsreife Version veröffentlicht
