// /services/fetchAnalogeEingaenge.ts /** * Bestimmt die richtige API-URL basierend auf der Umgebung. */ const getApiUrl = () => { if (typeof window === "undefined") { console.error("❌ `window` ist nicht verfügbar (Server-Side Rendering)"); return null; // Server-Side darf nicht weiter ausführen } return process.env.NODE_ENV === "development" ? `${window.location.origin}/CPLmockData/SERVICE/ae.js` : `${window.location.origin}/CPL/SERVICE/ae.js`; }; /** * Holt die analogen Eingänge aus der richtigen Quelle. */ export const fetchAnalogeEingaenge = async () => { try { const apiUrl = getApiUrl(); if (!apiUrl) return null; // ❌ Falls SSR aktiv ist, nicht ausführen console.log(`📡 API-Request an: ${apiUrl}`); const response = await fetch(apiUrl); if (!response.ok) { throw new Error(`❌ Fehler: ${response.status} ${response.statusText}`); } const rawData = await response.text(); console.log("✅ Rohdaten erfolgreich geladen:", rawData); // **JavaScript-Variablen als Skript einfügen** const script = document.createElement("script"); script.innerHTML = rawData; document.body.appendChild(script); // **Daten umwandeln** const formattedData: Record = {}; for (let i = 1; i <= 8; i++) { const varName = `win_analogeEingaenge${i}`; if (window[varName]) { formattedData[varName] = { id: window[varName][0], value: window[varName][1], name: window[varName][2], uW: window[varName][3] === 1, uG: window[varName][4] === 1, oW: window[varName][5] === 1, oG: window[varName][6] === 1, }; } } console.log("✅ Formatierte Daten:", formattedData); return formattedData; } catch (error) { console.error("❌ Fehler beim Laden der analogen Eingänge:", error); return null; } };