- falsches .js im API Pfad entfernt - Development lädt jetzt korrekt /api/cpl/opcuaAPIHandler - Production bleibt unverändert
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
// services/fetchAnalogeEingaengeService.ts
|
|
|
|
export const fetchAnalogeEingaengeService = async (): Promise<Record<
|
|
string,
|
|
any
|
|
> | null> => {
|
|
try {
|
|
if (typeof window === "undefined") return null;
|
|
|
|
// Umgebungserkennung: localhost = Entwicklung, alles andere = Produktion
|
|
const isDevelopment = process.env.NEXT_PUBLIC_NODE_ENV === "development";
|
|
|
|
// Skriptpfad abhängig von der Umgebung
|
|
const scriptSrc = isDevelopment
|
|
? "/api/cpl/analogeEingaengeAPIHandler"
|
|
: "/CPL?/CPL/SERVICE/ae.js";
|
|
|
|
// Skript dynamisch laden
|
|
await new Promise<void>((resolve, reject) => {
|
|
const script = document.createElement("script");
|
|
script.src = scriptSrc;
|
|
script.async = true;
|
|
script.onload = () => resolve();
|
|
script.onerror = () => reject(`❌ Fehler beim Laden von ${scriptSrc}`);
|
|
document.body.appendChild(script);
|
|
});
|
|
|
|
// Analoge Eingänge parsen (1 bis 8)
|
|
const result: Record<string, any> = {};
|
|
for (let i = 1; i <= 8; i++) {
|
|
const varName = `win_analogeEingaenge${i}`;
|
|
const data = (window as any)[varName];
|
|
|
|
if (Array.isArray(data)) {
|
|
result[varName] = {
|
|
id: data[0],
|
|
value: data[1],
|
|
name: data[2],
|
|
untererWarnwert: data[3] === 1,
|
|
untererGrenzwert: data[4] === 1,
|
|
obererWarnwert: data[5] === 1,
|
|
obererGrenzwert: data[6] === 1,
|
|
};
|
|
}
|
|
}
|
|
|
|
return result;
|
|
} catch (error) {
|
|
console.error("❌ Fehler beim Laden der analogen Eingänge:", error);
|
|
return null;
|
|
}
|
|
};
|