diff --git a/AppImage/components/storage-overview.tsx b/AppImage/components/storage-overview.tsx
index beb99b6..a9caff7 100644
--- a/AppImage/components/storage-overview.tsx
+++ b/AppImage/components/storage-overview.tsx
@@ -147,11 +147,15 @@ export function StorageOverview() {
)
}
+ const disksWithTemp = storageData.disks.filter((disk) => disk.temperature > 0)
const avgTemp =
- storageData.disks.length > 0
- ? Math.round(storageData.disks.reduce((sum, disk) => sum + disk.temperature, 0) / storageData.disks.length)
+ disksWithTemp.length > 0
+ ? Math.round(disksWithTemp.reduce((sum, disk) => sum + disk.temperature, 0) / disksWithTemp.length)
: 0
+ const usagePercent =
+ storageData.total > 0 ? ((storageData.used / (storageData.total * 1024)) * 100).toFixed(2) : "0.00"
+
return (
{/* Storage Summary */}
@@ -174,9 +178,7 @@ export function StorageOverview() {
{storageData.used.toFixed(1)} GB
-
- {storageData.total > 0 ? ((storageData.used / (storageData.total * 1024)) * 100).toFixed(1) : 0}% used
-
+ {usagePercent}% used
@@ -331,13 +333,15 @@ export function StorageOverview() {
{disk.usage_percent}%
)}
- {disk.usage_percent !== undefined && }
- {disk.total && disk.used && disk.available && (
-
-
{disk.used} GB used
-
- {disk.available} GB free of {disk.total} GB
-
+ {disk.usage_percent !== undefined && (
+
+
+
+ {disk.used} GB used
+
+ {disk.available} GB free of {disk.total} GB
+
+
)}
@@ -447,11 +451,11 @@ export function StorageOverview() {
Used:
- {selectedDisk.used} GB
+ {selectedDisk.used} GB
Available:
- {selectedDisk.available} GB
+ {selectedDisk.available} GB
{selectedDisk.usage_percent !== undefined && (
diff --git a/AppImage/scripts/flask_server.py b/AppImage/scripts/flask_server.py
index 14589e4..88eae91 100644
--- a/AppImage/scripts/flask_server.py
+++ b/AppImage/scripts/flask_server.py
@@ -363,7 +363,8 @@ def get_storage_info():
if len(parts) >= 3 and parts[2] == 'disk':
disk_name = parts[0]
disk_size_bytes = int(parts[1])
- disk_size_gb = round(disk_size_bytes / (1024**3), 1)
+ disk_size_gb = disk_size_bytes / (1024**3)
+ disk_size_tb = disk_size_bytes / (1024**4)
total_disk_size_bytes += disk_size_bytes
@@ -372,9 +373,14 @@ def get_storage_info():
smart_data = get_smart_data(disk_name)
print(f"[v0] SMART data for {disk_name}: {smart_data}")
+ if disk_size_tb >= 1:
+ size_str = f"{disk_size_tb:.1f}T"
+ else:
+ size_str = f"{disk_size_gb:.1f}G"
+
physical_disks[disk_name] = {
'name': disk_name,
- 'size': f"{disk_size_gb}T" if disk_size_gb >= 1000 else f"{disk_size_gb}G",
+ 'size': size_str,
'size_bytes': disk_size_bytes,
'temperature': smart_data.get('temperature', 0),
'health': smart_data.get('health', 'unknown'),
@@ -399,7 +405,7 @@ def get_storage_info():
except Exception as e:
print(f"Error getting disk list: {e}")
- storage_data['total'] = round(total_disk_size_bytes / (1024**3), 1)
+ storage_data['total'] = round(total_disk_size_bytes / (1024**4), 1)
# Get disk usage for mounted partitions
try:
@@ -643,6 +649,23 @@ def get_smart_data(disk_name):
smart_data['health'] = 'critical'
elif smart_data['temperature'] >= 60:
smart_data['health'] = 'warning'
+ else:
+ print(f"[v0] smartctl returned code {result.returncode} for {disk_name}")
+ print(f"[v0] stderr: {result.stderr}")
+ # Intentar obtener al menos información básica del disco
+ try:
+ result_info = subprocess.run(['smartctl', '-i', f'/dev/{disk_name}'],
+ capture_output=True, text=True, timeout=5)
+ if result_info.returncode in [0, 4]:
+ output = result_info.stdout
+ for line in output.split('\n'):
+ line = line.strip()
+ if line.startswith('Device Model:') or line.startswith('Model Number:'):
+ smart_data['model'] = line.split(':', 1)[1].strip()
+ elif line.startswith('Serial Number:'):
+ smart_data['serial'] = line.split(':', 1)[1].strip()
+ except Exception as e:
+ print(f"[v0] Error getting basic info for {disk_name}: {e}")
except FileNotFoundError:
print(f"smartctl not found - install smartmontools package")