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:
@@ -6,5 +6,5 @@
|
|||||||
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
const webVersion = "1.6.304";
|
const webVersion = "1.6.305";
|
||||||
export default webVersion;
|
export default webVersion;
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
// services/fetchAnalogInputHistoryService.ts
|
// services/fetchAnalogInputsHistoryService.ts
|
||||||
|
|
||||||
export async function fetchAnalogInputHistoryService(): Promise<
|
export async function fetchAnalogInputsHistoryService(): Promise<
|
||||||
Record<number, any[]>
|
Record<number, any[]>
|
||||||
> {
|
> {
|
||||||
const baseUrl = `${window.location.origin}/CPL?Service/empty.acp`;
|
|
||||||
|
|
||||||
const today = new Date();
|
const today = new Date();
|
||||||
const yesterday = new Date(today);
|
const yesterday = new Date(today);
|
||||||
yesterday.setDate(today.getDate() - 1);
|
yesterday.setDate(today.getDate() - 1);
|
||||||
@@ -20,18 +18,34 @@ export async function fetchAnalogInputHistoryService(): Promise<
|
|||||||
|
|
||||||
const result: Record<number, any[]> = {};
|
const result: Record<number, any[]> = {};
|
||||||
|
|
||||||
|
const isDev = process.env.NODE_ENV === "development";
|
||||||
|
|
||||||
for (let i = 0; i < 8; i++) {
|
for (let i = 0; i < 8; i++) {
|
||||||
const sourceId = 100 + i;
|
const inputNumber = i + 1; // 1–8
|
||||||
const url = `${baseUrl}&DIA0=${fromDate};${toDate};${sourceId};1`;
|
const sourceId = 99 + inputNumber; // 100–107 für AE1–AE8
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(url);
|
let data: any[];
|
||||||
if (!response.ok)
|
|
||||||
throw new Error(`Fehler bei AE${i + 1}: ${response.status}`);
|
if (isDev) {
|
||||||
const data = await response.json();
|
// ⬇️ 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;
|
result[sourceId] = data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`Fehler beim Laden von AE${i + 1}:`, error);
|
console.error(`❌ Fehler beim Laden von AE${inputNumber}:`, error);
|
||||||
result[sourceId] = [];
|
result[sourceId] = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user