diff --git a/glances_api/__init__.py b/glances_api/__init__.py index 67b277b..39879ce 100644 --- a/glances_api/__init__.py +++ b/glances_api/__init__.py @@ -182,11 +182,10 @@ async def get_ha_sensor_data(self) -> dict[str, Any]: if data := self.data.get("gpu"): sensor_data["gpu"] = {} for sensor in data: - sensor_data["gpu"][f"GPU_{sensor['gpu_id']}__{sensor['name']}"] = { - "name": sensor["name"], - "temperature": sensor["temperature"], - "mem": sensor["mem"], - "proc": sensor["proc"], - "fan_speed": sensor["fan_speed"] if "fan_speed" in sensor else 0, + sensor_data["gpu"][f"{sensor['name']} (GPU {sensor['gpu_id']})"] = { + "temperature": sensor.get("temperature", 0), + "mem": sensor.get("mem", 0), + "proc": sensor.get("proc", 0), + "fan_speed": sensor.get("fan_speed", 0), } return sensor_data diff --git a/tests/test_responses.py b/tests/test_responses.py index d237b7f..fdc7516 100644 --- a/tests/test_responses.py +++ b/tests/test_responses.py @@ -1,4 +1,5 @@ """Test the interaction with the Glances API.""" + from typing import Any import pytest @@ -130,6 +131,26 @@ "key": "mnt_point", }, ], + "gpu": [ + { + "key": "gpu_id", + "gpu_id": 0, + "name": "NVIDIA GeForce RTX 4080", + "mem": 13.333489176233513, + "proc": 12, + "temperature": 38, + "fan_speed": 30, + }, + { + "key": "gpu_id", + "gpu_id": 1, + "name": "NVIDIA GeForce RTX 3080", + "mem": 8.41064453125, + "proc": 26, + "temperature": 51, + "fan_speed": 0, + }, + ], "mem": { "total": 3976318976, "available": 2878337024, @@ -266,6 +287,20 @@ "docker": {"docker_active": 2, "docker_cpu_use": 77.2, "docker_memory_use": 1149.6}, "uptime": "3 days, 10:25:20", "percpu": {"0": {"cpu_use_percent": 22.1}, "1": {"cpu_use_percent": 17.2}}, + "gpu": { + "NVIDIA GeForce RTX 4080 (GPU 0)": { + "mem": 13.333489176233513, + "proc": 12, + "temperature": 38, + "fan_speed": 30, + }, + "NVIDIA GeForce RTX 3080 (GPU 1)": { + "mem": 8.41064453125, + "proc": 26, + "temperature": 51, + "fan_speed": 0, + }, + }, }