## [1.6.807] – 2025-09-02 - test: refactoring playwright test structure --- ## [1.6.806] – 2025-09-02 - fix: Detailansicht Modal sichtbar beim klicken --- ## [1.6.805] – 2025-09-02 - fix: ohne E-Mail --- ## [1.6.804] – 2025-09-02 - fix: woodpecker --- ## [1.6.803] – 2025-09-02 - feat: woodpecker E-Mail --- ## [1.6.802] – 2025-09-02 - fix(ci): match case for systemMockData.js (Linux case-sensitive) --- ## [1.6.801] – 2025-09-01 - test: find mock --- ## [1.6.800] – 2025-09-01 - fix: TDR Messungstarten statt TDR aktivieren --- ## [1.6.799] – 2025-09-01 - test: woodpecker dev mode --- ## [1.6.798] – 2025-09-01 - test: .woodpecker --- ## [1.6.797] – 2025-09-01 - Test: .woodpecker.yml --- ## [1.6.796] – 2025-09-01 - Test: In KÜ RSL: Zahl mit 3 Nachkommastellen --- ## [1.6.795] – 2025-09-01 - fix: KÜ ISO 2 Nachkommastellen und RSL 3 Nachkommastellen --- ## [1.6.794] – 2025-09-01 - fix: System Footer responsive --- ## [1.6.793] – 2025-09-01 - fix: playwright headless true --- ## [1.6.792] – 2025-09-01 - fix: playwright August Text --- ## [1.6.791] – 2025-09-01 - fix: playwright --- ## [1.6.790] – 2025-08-31 - fix: Jenkins --- ## [1.6.789] – 2025-08-31 - fix: Jenkins node20 --- ## [1.6.788] – 2025-08-31 - Test: Jenkinsfile --- ## [1.6.787] – 2025-08-31 - fix: Die Konfiguration ist jetzt angepasst: Playwright verwendet immer einen bereits laufenden Dev-Server (reuseExistingServer: true). Damit gibt es keinen Port-Konflikt mehr, --- ## [1.6.785] – 2025-08-29 - fix: playwright ->npm run dev -p 3000 --- ## [1.6.784] – 2025-08-29 - fix: woodpecker npm run dev --- ## [1.6.783] – 2025-08-29 - playwright: headless:true --- ## [1.6.782] – 2025-08-29 - fix: all.test.ts --- ## [1.6.781] – 2025-08-29 - test: systemTest.ts --- ## [1.6.780] – 2025-08-29 - Headless wird sicher erzwungen (auch wenn lokal anders). Der Next.js-Server wird gebaut und via npm start im selben Container gestartet (statt npm run dev). Robustere Browser-Flags für Container. Artefakte (Trace/Screenshot/Video) nur bei Fehlern, damit der CI schnell bleibt. baseURL kommt aus ENV (E2E_BASE_URL) – lokal bleibt’s http://localhost:3000. PLAYWRIGHT_BROWSERS_PATH=0 bleibt (Option B). --- ## [1.6.779] – 2025-08-29 - fix: start chromium headless --- ## [1.6.778] – 2025-08-29 - test: meldungenTest.ts --- ## [1.6.777] – 2025-08-29 - fix: playwright config --- ## [1.6.776] – 2025-08-29 - fix: woodpecker install chromium --- ## [1.6.775] – 2025-08-29 - fix: headless --- ## [1.6.774] – 2025-08-29 - fix. npm install statt npm ci, um Zeit zu sparen --- ## [1.6.773] – 2025-08-29 - fix: woodpecker node 22 --- ## [1.6.772] – 2025-08-29 - fix: woodpecker install browser deps --- ## [1.6.771] – 2025-08-29 - fix: woodpecker --- ## [1.6.770] – 2025-08-29 - feat:woodpecker --- ## [1.6.769] – 2025-08-29 - test: digitalOutputs --- ## [1.6.768] – 2025-08-29 - feat: Test nach Navigation zuordnen --- ## [1.6.767] – 2025-08-28 - feat: Jenkinsfile node_Modules verzeichnis in Docker Volume gespeichert --- ## [1.6.766] – 2025-08-28 - Test: kabelueberwachungTest.ts --- ## [1.6.765] – 2025-08-28 - fix: Jenkinsfile --- ## [1.6.764] – 2025-08-28 - fix: test digitalInputsTest.ts --- ## [1.6.763] – 2025-08-28 - test: digitalInputsTest.ts --- ## [1.6.762] – 2025-08-28 - test: --- ## [1.6.761] – 2025-08-28 - test: --- ## [1.6.760] – 2025-08-28 - test: jenkinsfile --- ## [1.6.759] – 2025-08-28 - test: WIP: digitalInputsTest.ts --- ## [1.6.758] – 2025-08-28 - fix: Jenkinsfile --- ## [1.6.757] – 2025-08-28 - feat: Jenkinsfile --- ## [1.6.756] – 2025-08-28 - WIP: playwright Präsentation --- ## [1.6.755] – 2025-08-28 - fix: KabelModulstatus KÜ V 421 und 431 --- ## [1.6.754] – 2025-08-27 - test: Einstellungen Seite mit highlighting --- ## [1.6.753] – 2025-08-25 - test: playwright funktion highlight in separate Datei --- ## [1.6.752] – 2025-08-25 - fix: Ein Abgleich darf natürlich nicht die Seiten blockieren. --- ## [1.6.751] – 2025-08-20 - Presentation playwright --- ## [1.6.750] – 2025-08-19 - feat: light und dark mode Messwerteingänge --- ## [1.6.749] – 2025-08-18 - feat: header light und dark mode --- ## [1.6.748] – 2025-08-18 - feat: Übersicht Seite dark und light mode --- ## [1.6.747] – 2025-08-18 - feat: digitale Eingänge light und dark mode --- ## [1.6.746] – 2025-08-18 - feat: Schaltausgänge dark und light mode --- ## [1.6.745] – 2025-08-18 - feat: Messwerteingänge light und dark mode --- ## [1.6.744] – 2025-08-18 - feat: Berichte light und dark mode --- ## [1.6.743] – 2025-08-18 - feat: einstellungen dark und light mode --- ## [1.6.742] – 2025-08-18 - feat: Einstellungen in dark und light mode --- ## [1.6.741] – 2025-08-18 - feat: System light and dark mode --- ## [1.6.740] – 2025-08-18 - feat: system dark and light mode --- ## [1.6.739] – 2025-08-18 - feat: Dashboard light and dark mode --- ## [1.6.738] – 2025-08-18 - feat: Navigation dar und light mode --- ## [1.6.737] – 2025-08-18 - feat: playwright scraper --- ## [1.6.736] – 2025-08-18 - fix: window.location.pathname statt gestes Wert --- ## [1.6.735] – 2025-08-18 - fix: Kabelüberwachung Konfiguration sichern und zurücksetzen es muss so sein https://10.10.0.118/CPL?/kabelueberwachung.html&KSB00=1 und nicht so https://10.10.0.118/CPL?KSB00=1 --- ## [1.6.734] – 2025-08-18 - WIP: Playwright test --- ## [1.6.733] – 2025-08-15 - style: Messwertkurven Legende und Liniern style angepasst --- ## [1.6.732] – 2025-08-15 - Das automatische Nachladen im DetailModal.tsx passiert jetzt nur noch alle 4 Sekunden und maximal 2 Mal. Damit wird dein Embedded-System geschont und es gibt keine Überlastung durch zu viele Anfragen. --- ## [1.6.731] – 2025-08-15 - Fix: Messkurven-Modal (ISO/RSL) lädt Kurve automatisch, setzt Dropdown & DateRangePicker korrekt zurück - Dropdown für Messkurven (ISO/RSL) wird beim Öffnen auf 'Alle Messwerte' (DIA0) gesetzt - Messkurve wird beim Öffnen des Modals automatisch geladen - Beim Schließen werden vonDatum, bisDatum, Dropdown und DateRangePicker zurückgesetzt - Gleiches Verhalten für ISO- und RSL/Loop-Modal --- ## [1.6.730] – 2025-08-15 - Fix: Messkurven-Modal (ISO/RSL) lädt Kurve automatisch, setzt Dropdown & DateRangePicker korrekt zurück - Dropdown für Messkurven (ISO/RSL) wird beim Öffnen auf 'Alle Messwerte' (DIA0) gesetzt - Messkurve wird beim Öffnen des Modals automatisch geladen - Beim Schließen werden vonDatum, bisDatum, Dropdown und DateRangePicker zurückgesetzt - Gleiches Verhalten für ISO- und RSL/Loop-Modal --- ## [1.6.729] – 2025-08-15 - playwright: Einstellungen Seite --- ## [1.6.728] – 2025-08-14 - playwright: test Reihenfolge --- ## [1.6.727] – 2025-08-14 - playwright: Reihenfolge --- ## [1.6.726] – 2025-08-14 - playwright: dashboard --- ## [1.6.725] – 2025-08-14 - playwright: Dashboard Seite test --- ## [1.6.724] – 2025-08-14 - playwright: analoge Eingänge Test erfolgreich --- ## [1.6.723] – 2025-08-14 - playwright: analge Eingänge mit highlight color test erfoögreich --- ## [1.6.722] – 2025-08-14 - playwright: analoge Eingänge Test erfolgreich --- ## [1.6.721] – 2025-08-14 - Playwright : ausgewählte Element rot färben --- ## [1.6.720] – 2025-08-14 - doc: comment in test for analog inputs --- ## [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 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 (``) 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 -