diff --git a/app/dashboard/page.jsx b/app/dashboard/page.jsx index 2b0147c..44eba45 100644 --- a/app/dashboard/page.jsx +++ b/app/dashboard/page.jsx @@ -1,8 +1,10 @@ -"use client"; // app/dashboard/page.jsx +// app/dashboard/page.jsx +"use client"; import React, { useEffect, useState } from "react"; import "tailwindcss/tailwind.css"; import "@fontsource/roboto"; import "bootstrap-icons/font/bootstrap-icons.css"; +import { loadWindowVariables } from "../../utils/loadWindowVariables"; // Importiere die Funktion function Dashboard() { const apiUrl = process.env.NEXT_PUBLIC_API_BASE_URL; @@ -11,146 +13,48 @@ function Dashboard() { const [error, setError] = useState(null); useEffect(() => { - // Funktion zum Laden von Skripten - const loadScript = (src) => { - return new Promise((resolve, reject) => { - const script = document.createElement("script"); - script.src = `${apiUrl}/CPL?${src}`; - script.async = true; - script.onload = () => { - resolve(); - }; - script.onerror = (error) => { - reject(error); - }; - document.head.appendChild(script); - }); - }; - - // Lade alle Skripte nacheinander und zeige die Daten an - const loadAllScripts = async () => { - try { - // Lade nur das `last20Messages.acp` Skript, das alle Variablen enthält - await loadScript("last20Messages.acp"); - - // Warte eine kurze Zeit, um sicherzustellen, dass alle Daten verfügbar sind - setTimeout(() => { - // Prüfen, ob alle Variablen verfügbar sind und in die Konsole ausgeben - if (window.last20Messages) { - console.log("Systemvariablen geladen:", { - // last20Messages.acp - last20Messages: window.last20Messages, - // System.acp Variablen - deviceName: window.deviceName, - mac1: window.mac1, - mac2: window.mac2, - ip: window.ip, - subnet: window.subnet, - gateway: window.gateway, - datetime: window.datetime, - // de.acp Variablen - de: window.de, - counter: window.counter, - flutter: window.flutter, - // kueConfig.acp Variablen - kueOnline: window.kueOnline, - kueID: window.kueID, - kueIso: window.kueIso, - // kuedetail.acp Variablen - kueValid: window.kueValid, - kueAlarm1: window.kueAlarm1, - kueAlarm2: window.kueAlarm2, - kueRes: window.kueRes, - kueCableBreak: window.kueCableBreak, - kueGroundFault: window.kueGroundFault, - kueLimit1: window.kueLimit1, - kueLimit2Low: window.kueLimit2Low, - kueLimit2High: window.kueLimit2High, - kueDelay1: window.kueDelay1, - kueLoopInterval: window.kueLoopInterval, - kueVersion: window.kueVersion, - tdrAtten: window.tdrAtten, - tdrPulse: window.tdrPulse, - tdrSpeed: window.tdrSpeed, - tdrAmp: window.tdrAmp, - tdrTrigger: window.tdrTrigger, - tdrLocation: window.tdrLocation, - tdrActive: window.tdrActive, - kueOverflow: window.kueOverflow, - kue100V: window.kue100V, - kueResidence: window.kueResidence, - tdrLastMeasurement: window.tdrLastMeasurement, - kueBooting: window.kueBooting, - }); - - // Letzte Meldungen analysieren und in den State setzen - const parsedMessages = parseMessages(window.last20Messages); - setLast20Messages(parsedMessages); - } else { - console.error("Konnte last20Messages nicht finden."); - setError("Konnte last20Messages nicht finden."); - } - - setLoading(false); - }, 500); // 500 ms Verzögerung, um sicherzustellen, dass alle Daten geladen sind - } catch (error) { + loadWindowVariables(apiUrl) + .then(() => { + // Jetzt sind die Variablen im window-Objekt verfügbar + if (window.last20Messages) { + const parsedMessages = parseMessages(window.last20Messages); + setLast20Messages(parsedMessages); + } else { + console.error("Konnte last20Messages nicht finden."); + setError("Konnte last20Messages nicht finden."); + } + setLoading(false); + }) + .catch((error) => { console.error("Fehler beim Laden des Skripts:", error); setError(error); setLoading(false); - } - }; - - loadAllScripts(); - - // Nachrichten parsen - const parseMessages = (messages) => { - messages = messages - .replace(/