updated app.js

This commit is contained in:
2026-02-12 21:25:43 +01:00
parent 7adda970fb
commit 60eec88332
2 changed files with 39 additions and 26 deletions
+23 -15
View File
@@ -275,9 +275,11 @@ document.addEventListener('DOMContentLoaded', () => {
throw new Error(errData.message || 'Steuerbefehl fehlgeschlagen');
}
} catch (err) {
console.error('sendControl Fehler:', err);
// Bei Fehler: Verbindungsprüfung triggern
updateStatus(false, 'Fehler beim Senden');
console.error('sendControl Fehler:', err);
failedChecks++;
if (failedChecks >= MAX_FAILED_CHECKS) {
updateStatus(false, 'Mehrere Steuerbefehle fehlgeschlagen');
}
}
}
@@ -311,38 +313,44 @@ document.addEventListener('DOMContentLoaded', () => {
// ── Automatische Verbindungsprüfung ────────────────────────────────────────
let connectionCheckInterval = null;
let failedChecks = 0;
const MAX_FAILED_CHECKS = 3; // erst nach 3 Fehlschlägen in Folge rot
function startConnectionCheck() {
if (connectionCheckInterval) clearInterval(connectionCheckInterval);
connectionCheckInterval = setInterval(async () => {
try {
console.log("→ Status-Check: Sende /api/status ...");
console.log("→ Status-Check ...");
const res = await fetch('/api/status');
if (!res.ok) {
throw new Error(`Status-Check HTTP ${res.status}`);
}
const data = await res.json();
console.log("→ Status-Check Ergebnis:", data);
if (data.connected) {
failedChecks = 0;
updateStatus(true);
} else {
throw new Error(data.message || 'Nicht verbunden');
failedChecks++;
console.warn(`Status-Check fehlgeschlagen (${failedChecks}/${MAX_FAILED_CHECKS}):`, data.message);
if (failedChecks >= MAX_FAILED_CHECKS) {
updateStatus(false, data.message || 'Mehrere Checks fehlgeschlagen');
}
}
} catch (err) {
console.warn('Verbindungs-Check fehlgeschlagen:', err);
updateStatus(false, 'Verbindung verloren');
failedChecks++;
console.warn(`Status-Check Netzwerkfehler (${failedChecks}/${MAX_FAILED_CHECKS}):`, err);
if (failedChecks >= MAX_FAILED_CHECKS) {
updateStatus(false, 'Keine Antwort vom Hub/Server');
}
}, 8000); // alle 8 Sekunden
}
}, 6000); // 6 Sekunden aggressiver als 8 s
}
// Im Connect- und Reconnect-Handler nach erfolgreichem Connect/Reconnect aufrufen:
// In Connect- und Reconnect-Handler nach erfolgreichem Connect/Reconnect:
startConnectionCheck();
updateStatus(true);
window.addEventListener('beforeunload', () => {
if (connectionCheckInterval) clearInterval(connectionCheckInterval);
});