🎉 Improved backend logs and utility files 🖥️📝

This commit is contained in:
Till Tomczak
2025-06-20 10:49:04 +02:00
parent 063f0db354
commit 0c13a98cb5
32 changed files with 1378 additions and 15 deletions

View File

@ -448,42 +448,69 @@ function initializeCharts() {
async function loadEnergyData() {
try {
const response = await fetch('/api/energy/overview');
const response = await fetch('/api/energy/dashboard');
if (response.ok) {
const data = await response.json();
updateEnergyMetrics(data);
const result = await response.json();
if (result.success && result.data) {
updateEnergyMetrics(result.data);
} else {
console.error('Fehler in API-Response:', result.error || 'Unbekannter Fehler');
// Status-Indikator auf offline setzen
const liveIndicator = document.getElementById('live-indicator');
if (liveIndicator) {
liveIndicator.className = 'w-2 h-2 status-indicator-offline rounded-full';
}
}
}
} catch (error) {
console.error('Fehler beim Laden der Energiedaten:', error);
// Status-Indikator auf offline setzen
const liveIndicator = document.getElementById('live-indicator');
if (liveIndicator) {
liveIndicator.className = 'w-2 h-2 status-indicator-offline rounded-full';
}
}
}
async function loadDeviceList() {
try {
const response = await fetch('/api/energy/devices');
const response = await fetch('/api/energy/dashboard');
if (response.ok) {
const data = await response.json();
updateDeviceTable(data.devices || []);
const result = await response.json();
if (result.success && result.data && result.data.devices) {
updateDeviceTable(result.data.devices);
} else {
console.error('Fehler beim Laden der Geräteliste:', result.error || 'Keine Gerätedaten verfügbar');
updateDeviceTable([]); // Leere Liste anzeigen
}
}
} catch (error) {
console.error('Fehler beim Laden der Geräteliste:', error);
updateDeviceTable([]); // Leere Liste anzeigen
}
}
function updateEnergyMetrics(data) {
if (data.total_power_consumption !== undefined) {
document.getElementById('total-power').textContent = data.total_power_consumption.toFixed(1) + ' kWh';
// Dashboard-Datenstruktur verwenden
if (data.energy_totals && data.energy_totals.today_total !== undefined) {
document.getElementById('total-power').textContent = data.energy_totals.today_total.toFixed(1) + ' kWh';
}
if (data.current_power !== undefined) {
document.getElementById('current-power').textContent = data.current_power.toFixed(1) + ' W';
if (data.current_consumption && data.current_consumption.total_power !== undefined) {
document.getElementById('current-power').textContent = data.current_consumption.total_power.toFixed(1) + ' W';
}
if (data.active_devices !== undefined) {
document.getElementById('active-devices').textContent = data.active_devices;
if (data.overview && data.overview.online_devices !== undefined) {
document.getElementById('active-devices').textContent = data.overview.online_devices;
}
if (data.total_power_consumption !== undefined) {
const cost = (data.total_power_consumption * 0.30).toFixed(2);
if (data.energy_totals && data.energy_totals.today_total !== undefined) {
const cost = (data.energy_totals.today_total * 0.30).toFixed(2);
document.getElementById('energy-cost').textContent = cost + ' €';
}
// Status-Indikator auf online setzen wenn Daten erfolgreich geladen
const liveIndicator = document.getElementById('live-indicator');
if (liveIndicator) {
liveIndicator.className = 'w-2 h-2 status-indicator-online rounded-full animate-pulse';
}
}
function updateDeviceTable(devices) {
@ -513,7 +540,7 @@ function updateDeviceTable(devices) {
const row = document.createElement('tr');
row.className = 'hover:bg-slate-50 dark:hover:bg-slate-700 transition-colors duration-200';
const isOnline = device.status === 'online';
const isOnline = device.online === true;
const statusClass = isOnline
? 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400'
: 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400';