diff --git a/.env.development b/.env.development index 1466a87..97f4d3e 100644 --- a/.env.development +++ b/.env.development @@ -6,6 +6,6 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false NEXT_PUBLIC_EXPORT_STATIC=false NEXT_PUBLIC_USE_CGI=false # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.6.537 +NEXT_PUBLIC_APP_VERSION=1.6.538 NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter) diff --git a/.env.production b/.env.production index 3c70af8..641475c 100644 --- a/.env.production +++ b/.env.production @@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL NEXT_PUBLIC_EXPORT_STATIC=true NEXT_PUBLIC_USE_CGI=true # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.6.537 +NEXT_PUBLIC_APP_VERSION=1.6.538 NEXT_PUBLIC_CPL_MODE=production \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index d73ab01..5757781 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## [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 diff --git a/package-lock.json b/package-lock.json index a4680a5..9a0e091 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cpl-v4", - "version": "1.6.537", + "version": "1.6.538", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cpl-v4", - "version": "1.6.537", + "version": "1.6.538", "dependencies": { "@fontsource/roboto": "^5.1.0", "@iconify-icons/ri": "^1.2.10", diff --git a/package.json b/package.json index 34822cf..eeadc76 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cpl-v4", - "version": "1.6.537", + "version": "1.6.538", "private": true, "scripts": { "dev": "next dev", diff --git a/public/CPL/js/abfrage.js b/public/CPL/js/abfrage.js new file mode 100644 index 0000000..0b21960 --- /dev/null +++ b/public/CPL/js/abfrage.js @@ -0,0 +1,17 @@ +// window-Funktion, damit sie global im Browser verfügbar ist +window.startAbfrage = function (fromDate, toDate, quelle, typ) { + // Datum formatieren: yyyy;MM;dd + const format = (dateStr) => { + const d = new Date(dateStr); + return `${d.getFullYear()};${d.getMonth() + 1};${d.getDate()}`; + }; + + const von = format(fromDate); + const bis = format(toDate); + + // Beispiel-Kanal: 110 = +5V + const diaURL = `/cpl?/dashboard.html&DIA1=${von};${bis};${quelle};${typ};`; + + // Neue Seite öffnen + window.open(diaURL, "_blank"); +}; diff --git a/services/fetchSystemspannung15VminusService.ts b/services/fetchSystemspannung15VminusService.ts index 92efc5d..c1c77a0 100644 --- a/services/fetchSystemspannung15VminusService.ts +++ b/services/fetchSystemspannung15VminusService.ts @@ -1,11 +1,24 @@ +/** + * Holt Messwerte für -15V aus der passenden JSON-Datei über die API + * @param type - Typ der Daten: DIA0 = alle, DIA1 = stündlich, DIA2 = täglich + */ export const fetchSystemspannung15VminusService = async ( - typ: "DIA0" | "DIA1" | "DIA2" + type: "DIA0" | "DIA1" | "DIA2" ) => { try { - const res = await fetch( - `/api/cpl/getSystemspannung15VminusHandler?typ=${typ}` - ); - if (!res.ok) throw new Error("Fehler beim Abrufen"); + const isDev = process.env.NODE_ENV === "development"; + + const channel = 114; // 114 = -15V laut Spezifikation + const from = "2025;01;01"; + const to = "2025;07;31"; + + const path = isDev + ? `/api/cpl/getSystemspannung15VminusHandler?typ=${type}` + : `/cpl?/dashboard.html&${type}=${from};${to};${channel};1;`; + + const res = await fetch(path); + if (!res.ok) throw new Error("❌ Fehler beim Abrufen der -15V-Daten"); + return await res.json(); } catch (err) { console.error("❌ Fehler in fetchSystemspannung15VminusService:", err); diff --git a/services/fetchSystemspannung15VplusService.ts b/services/fetchSystemspannung15VplusService.ts index 3b50e7f..d7e74d4 100644 --- a/services/fetchSystemspannung15VplusService.ts +++ b/services/fetchSystemspannung15VplusService.ts @@ -1,11 +1,24 @@ +/** + * Holt Messwerte für +15V aus der passenden JSON-Datei über die API + * @param type - Typ der Daten: DIA0 = alle, DIA1 = stündlich, DIA2 = täglich + */ export const fetchSystemspannung15VplusService = async ( - typ: "DIA0" | "DIA1" | "DIA2" + type: "DIA0" | "DIA1" | "DIA2" ) => { try { - const res = await fetch( - `/api/cpl/getSystemspannung15VplusHandler?typ=${typ}` - ); - if (!res.ok) throw new Error("Fehler beim Abrufen"); + const isDev = process.env.NODE_ENV === "development"; + + const channel = 108; // 108 = +15V laut Spezifikation + const from = "2025;01;01"; + const to = "2025;07;31"; + + const path = isDev + ? `/api/cpl/getSystemspannung15VplusHandler?typ=${type}` + : `/cpl?/dashboard.html&${type}=${from};${to};${channel};1;`; + + const res = await fetch(path); + if (!res.ok) throw new Error("❌ Fehler beim Abrufen der +15V-Daten"); + return await res.json(); } catch (err) { console.error("❌ Fehler in fetchSystemspannung15VplusService:", err); diff --git a/services/fetchSystemspannung5VplusService.ts b/services/fetchSystemspannung5VplusService.ts index 5fda26b..95bd2ac 100644 --- a/services/fetchSystemspannung5VplusService.ts +++ b/services/fetchSystemspannung5VplusService.ts @@ -1,23 +1,27 @@ // services/fetchSystemspannung5VplusService.ts -type Typ = "DIA0" | "DIA1" | "DIA2"; - /** * Holt Messwerte für +5V aus der passenden JSON-Datei über die API * @param typ - Typ der Daten: DIA0 = alle, DIA1 = stündlich, DIA2 = täglich */ -export const fetchSystemspannung5VplusService = async (typ: Typ) => { +export const fetchSystemspannung5VplusService = async ( + type: "DIA0" | "DIA1" | "DIA2" +) => { try { - const res = await fetch( - `/api/cpl/getSystemspannung5VplusHandler?typ=${typ}` - ); + const isDev = process.env.NODE_ENV === "development"; - if (!res.ok) { - throw new Error(`Fehler beim Abrufen: ${res.status}`); - } + const channel = 110; // 110 = +5V + const from = "2025;01;01"; + const to = "2025;07;31"; - const data = await res.json(); - return data; + const path = isDev + ? `/api/cpl/getSystemspannung5VplusHandler?typ=${type}` + : `/cpl?/dashboard.html&${type}=${from};${to};${channel};1;`; + + const res = await fetch(path); + if (!res.ok) throw new Error("❌ Fehler beim Abrufen der +5V-Daten"); + + return await res.json(); } catch (err) { console.error("❌ Fehler in fetchSystemspannung5VplusService:", err); return null; diff --git a/services/fetchSystemspannung98VminusService.ts b/services/fetchSystemspannung98VminusService.ts index c692957..2969d75 100644 --- a/services/fetchSystemspannung98VminusService.ts +++ b/services/fetchSystemspannung98VminusService.ts @@ -1,11 +1,24 @@ +/** + * Holt Messwerte für -98V aus der passenden JSON-Datei über die API + * @param type - Typ der Daten: DIA0 = alle, DIA1 = stündlich, DIA2 = täglich + */ export const fetchSystemspannung98VminusService = async ( - typ: "DIA0" | "DIA1" | "DIA2" + type: "DIA0" | "DIA1" | "DIA2" ) => { try { - const res = await fetch( - `/api/cpl/getSystemspannung98VminusHandler?typ=${typ}` - ); - if (!res.ok) throw new Error("Fehler beim Abrufen"); + const isDev = process.env.NODE_ENV === "development"; + + const channel = 115; // 115 = -98V laut Spezifikation + const from = "2025;01;01"; + const to = "2025;07;31"; + + const path = isDev + ? `/api/cpl/getSystemspannung98VminusHandler?typ=${type}` + : `/cpl?/dashboard.html&${type}=${from};${to};${channel};1;`; + + const res = await fetch(path); + if (!res.ok) throw new Error("❌ Fehler beim Abrufen der -98V-Daten"); + return await res.json(); } catch (err) { console.error("❌ Fehler in fetchSystemspannung98VminusService:", err); diff --git a/services/fetchTemperaturAdWandlerService.ts b/services/fetchTemperaturAdWandlerService.ts index 82532d5..99f2be1 100644 --- a/services/fetchTemperaturAdWandlerService.ts +++ b/services/fetchTemperaturAdWandlerService.ts @@ -1,11 +1,27 @@ +/** + * Holt Temperaturwerte vom AD-Wandler aus der passenden JSON-Datei über die API + * @param type - Typ der Daten: DIA0 = alle, DIA1 = stündlich, DIA2 = täglich + */ export const fetchTemperaturAdWandlerService = async ( - typ: "DIA0" | "DIA1" | "DIA2" + type: "DIA0" | "DIA1" | "DIA2" ) => { try { - const res = await fetch( - `/api/cpl/getTemperaturAdWandlerHandler?typ=${typ}` - ); - if (!res.ok) throw new Error("Fehler beim Abrufen"); + const isDev = process.env.NODE_ENV === "development"; + + const channel = 116; // 116 = Temperatur AD-Wandler laut Spezifikation + const from = "2025;01;01"; + const to = "2025;07;31"; + + const path = isDev + ? `/api/cpl/getTemperaturAdWandlerHandler?typ=${type}` + : `/cpl?/dashboard.html&${type}=${from};${to};${channel};1;`; + + const res = await fetch(path); + if (!res.ok) + throw new Error( + "❌ Fehler beim Abrufen der Temperaturdaten (AD-Wandler)" + ); + return await res.json(); } catch (err) { console.error("❌ Fehler in fetchTemperaturAdWandlerService:", err); diff --git a/services/fetchTemperaturProzessorService.ts b/services/fetchTemperaturProzessorService.ts index 15bc6e3..acd99e6 100644 --- a/services/fetchTemperaturProzessorService.ts +++ b/services/fetchTemperaturProzessorService.ts @@ -1,11 +1,25 @@ +/** + * Holt Temperaturwerte vom Prozessor aus der passenden JSON-Datei über die API + * @param type - Typ der Daten: DIA0 = alle, DIA1 = stündlich, DIA2 = täglich + */ export const fetchTemperaturProzessorService = async ( - typ: "DIA0" | "DIA1" | "DIA2" + type: "DIA0" | "DIA1" | "DIA2" ) => { try { - const res = await fetch( - `/api/cpl/getTemperaturProzessorHandler?typ=${typ}` - ); - if (!res.ok) throw new Error("Fehler beim Abrufen"); + const isDev = process.env.NODE_ENV === "development"; + + const channel = 117; // 117 = Temperatur Prozessor laut Spezifikation + const from = "2025;01;01"; + const to = "2025;07;31"; + + const path = isDev + ? `/api/cpl/getTemperaturProzessorHandler?typ=${type}` + : `/cpl?/dashboard.html&${type}=${from};${to};${channel};1;`; + + const res = await fetch(path); + if (!res.ok) + throw new Error("❌ Fehler beim Abrufen der Temperaturdaten (Prozessor)"); + return await res.json(); } catch (err) { console.error("❌ Fehler in fetchTemperaturProzessorService:", err);