feat: fetchAnalogInputsHistoryService mit dynamischem Fallback für Mock- und Live-Daten

- In der Entwicklungsumgebung werden lokale Mock-Dateien verwendet
- In Produktion werden Live-Messdaten der CPL über DIA0 geladen
- Automatische Datumsgenerierung von gestern bis heute integriert
This commit is contained in:
ISA
2025-04-29 10:30:21 +02:00
parent 38305d410e
commit 40e2b54836
2 changed files with 26 additions and 12 deletions

View File

@@ -6,5 +6,5 @@
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
*/
const webVersion = "1.6.304";
const webVersion = "1.6.305";
export default webVersion;

View File

@@ -1,10 +1,8 @@
// services/fetchAnalogInputHistoryService.ts
// services/fetchAnalogInputsHistoryService.ts
export async function fetchAnalogInputHistoryService(): Promise<
export async function fetchAnalogInputsHistoryService(): Promise<
Record<number, any[]>
> {
const baseUrl = `${window.location.origin}/CPL?Service/empty.acp`;
const today = new Date();
const yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
@@ -20,18 +18,34 @@ export async function fetchAnalogInputHistoryService(): Promise<
const result: Record<number, any[]> = {};
const isDev = process.env.NODE_ENV === "development";
for (let i = 0; i < 8; i++) {
const sourceId = 100 + i;
const url = `${baseUrl}&DIA0=${fromDate};${toDate};${sourceId};1`;
const inputNumber = i + 1; // 18
const sourceId = 99 + inputNumber; // 100107 für AE1AE8
try {
const response = await fetch(url);
if (!response.ok)
throw new Error(`Fehler bei AE${i + 1}: ${response.status}`);
const data = await response.json();
let data: any[];
if (isDev) {
// ⬇️ Lädt lokale Mock-Dateien (z.B. /api/cpl/fetchAnalogInputsHistory)
const response = await fetch(
`/apiMockData/analogInputsHistoryData/analogInput${inputNumber}.json`
);
if (!response.ok) throw new Error("Mock-Daten nicht verfügbar");
data = await response.json();
} else {
// ⬇️ Holt Live-Daten über CPL-HTTP-Endpunkt
const url = `${window.location.origin}/CPL?Service/empty.acp&DIA0=${fromDate};${toDate};${sourceId};1`;
const response = await fetch(url);
if (!response.ok)
throw new Error(`Fehler bei AE${inputNumber}: ${response.status}`);
data = await response.json();
}
result[sourceId] = data;
} catch (error) {
console.error(`Fehler beim Laden von AE${i + 1}:`, error);
console.error(`Fehler beim Laden von AE${inputNumber}:`, error);
result[sourceId] = [];
}
}