🎉 Improved backend logs and utility files 🖥️📝
This commit is contained in:
@ -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';
|
||||
|
Reference in New Issue
Block a user