// services/fetchAnalogInputsService.ts export const fetchAnalogInputsService = async () => { // 🌐 Automatische Moduserkennung über Hostname const hostname = window.location.hostname; const mode = hostname === "localhost" || hostname === "127.0.0.1" ? "dev" : "production"; // ✅ PRODUKTIV: lädt JSON-Datei vom Gerät über CGI if (mode === "production") { //console.log("🔄 Lade analoge Eingänge im Produktionsmodus (JSON über CGI)"); const res = await fetch("/CPL?/CPL/SERVICE/analogInputs.json", { headers: { Accept: "application/json" }, }); if (!res.ok) { throw new Error("❌ Fehler beim Laden der analogInputs.json"); } const data = await res.json(); return data.win_analogInputsValues.map((value: string, i: number) => ({ id: i + 1, value: parseFloat(value), label: data.win_analogInputsLabels[i].replace(/'/g, ""), unit: data.win_analogInputsUnits[i].replace(/'/g, ""), offset: parseFloat(data.win_analogInputsOffset[i]), factor: parseFloat(data.win_analogInputsFactor[i]), loggerInterval: parseInt(data.win_analogInputsLoggerIntervall[i]), weighting: parseInt(data.win_analogInputsWeighting[i]), })); } // ✅ ENTWICKLUNG: Daten vom lokalen API-Mock else { console.log( "🧪 Lade analoge Eingänge im Entwicklungsmodus (Mock über API)" ); const res = await fetch("/api/cpl/getAnalogInputsHandler"); if (!res.ok) { throw new Error("❌ Fehler beim Laden der analogen Eingänge (Mock)"); } const data = await res.json(); return data.win_analogInputsValues.map((value: string, i: number) => ({ id: i + 1, value: parseFloat(value), label: data.win_analogInputsLabels[i].replace(/'/g, ""), unit: data.win_analogInputsUnits[i].replace(/'/g, ""), offset: parseFloat(data.win_analogInputsOffset[i]), factor: parseFloat(data.win_analogInputsFactor[i]), loggerInterval: parseInt(data.win_analogInputsLoggerIntervall[i]), weighting: parseInt(data.win_analogInputsWeighting[i]), })); } };