diff --git a/homeassistant/components/glances/const.py b/homeassistant/components/glances/const.py index 491d400411c..69e4ce0c016 100644 --- a/homeassistant/components/glances/const.py +++ b/homeassistant/components/glances/const.py @@ -36,7 +36,9 @@ SENSOR_TYPES = { "process_thread": ["processcount", "Thread", "Count", CPU_ICON], "process_sleeping": ["processcount", "Sleeping", "Count", CPU_ICON], "cpu_use_percent": ["cpu", "CPU used", PERCENTAGE, CPU_ICON], - "sensor_temp": ["sensors", "Temp", TEMP_CELSIUS, "mdi:thermometer"], + "temperature_core": ["sensors", "temperature", TEMP_CELSIUS, "mdi:thermometer"], + "fan_speed": ["sensors", "fan speed", "RPM", "mdi:fan"], + "battery": ["sensors", "charge", PERCENTAGE, "mdi:battery"], "docker_active": ["docker", "Containers active", "", "mdi:docker"], "docker_cpu_use": ["docker", "Containers CPU used", PERCENTAGE, "mdi:docker"], "docker_memory_use": [ diff --git a/homeassistant/components/glances/sensor.py b/homeassistant/components/glances/sensor.py index fb36312cf1e..4c534a90ae1 100644 --- a/homeassistant/components/glances/sensor.py +++ b/homeassistant/components/glances/sensor.py @@ -34,16 +34,17 @@ async def async_setup_entry(hass, config_entry, async_add_entities): elif sensor_details[0] == "sensors": # sensors will provide temp for different devices for sensor in client.api.data[sensor_details[0]]: - dev.append( - GlancesSensor( - client, - name, - sensor["label"], - SENSOR_TYPES[sensor_type][1], - sensor_type, - SENSOR_TYPES[sensor_type], + if sensor["type"] == sensor_type: + dev.append( + GlancesSensor( + client, + name, + sensor["label"], + SENSOR_TYPES[sensor_type][1], + sensor_type, + SENSOR_TYPES[sensor_type], + ) ) - ) elif client.api.data[sensor_details[0]]: dev.append( GlancesSensor( @@ -156,11 +157,21 @@ class GlancesSensor(Entity): (disk["size"] - disk["used"]) / 1024 ** 3, 1, ) - elif self.type == "sensor_temp": + elif self.type == "battery": for sensor in value["sensors"]: - if sensor["label"] == self._sensor_name_prefix: - self._state = sensor["value"] - break + if sensor["type"] == "battery": + if sensor["label"] == self._sensor_name_prefix: + self._state = sensor["value"] + elif self.type == "fan_speed": + for sensor in value["sensors"]: + if sensor["type"] == "fan_speed": + if sensor["label"] == self._sensor_name_prefix: + self._state = sensor["value"] + elif self.type == "temperature_core": + for sensor in value["sensors"]: + if sensor["type"] == "temperature_core": + if sensor["label"] == self._sensor_name_prefix: + self._state = sensor["value"] elif self.type == "memory_use_percent": self._state = value["mem"]["percent"] elif self.type == "memory_use":