From 09231c4fc07335e1632335915ebb7b3802f0bb3d Mon Sep 17 00:00:00 2001 From: Matthieu Date: Fri, 4 Mar 2022 16:15:42 +0100 Subject: [PATCH] First steps of entity category --- custom_components/georide/manifest.json | 2 +- custom_components/georide/sensor.py | 38 +++++++++++++++++++++---- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/custom_components/georide/manifest.json b/custom_components/georide/manifest.json index 1d6addd..999d7f7 100644 --- a/custom_components/georide/manifest.json +++ b/custom_components/georide/manifest.json @@ -6,7 +6,7 @@ "issue_tracker": "https://github.com/ptimatth/GeorideHA/issues", "iot_class": "cloud_polling", "requirements": [ - "georideapilib>=0.8.0", + "georideapilib>=0.8.1", "pyjwt==2.1.0" ], "dependencies": [], diff --git a/custom_components/georide/sensor.py b/custom_components/georide/sensor.py index 818ef46..5ea412c 100644 --- a/custom_components/georide/sensor.py +++ b/custom_components/georide/sensor.py @@ -4,6 +4,7 @@ import logging from typing import Any, Mapping from homeassistant.core import callback +from homeassistant.helpers.entity import DeviceInfo, EntityCategory from homeassistant.components.sensor import SensorEntity from homeassistant.components.sensor import ENTITY_ID_FORMAT from homeassistant.helpers.update_coordinator import ( @@ -61,6 +62,10 @@ class GeoRideOdometerSensorEntity(CoordinatorEntity, SensorEntity): self._state = 0 self._hass = hass + @property + def entity_category(self): + return None + @property def unique_id(self): """Return the unique ID.""" @@ -88,7 +93,7 @@ class GeoRideOdometerSensorEntity(CoordinatorEntity, SensorEntity): return "mdi:counter" @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device info.""" return self._tracker_device.device_info @@ -107,6 +112,10 @@ class GeoRideOdometerKmSensorEntity(CoordinatorEntity, SensorEntity): self._state = 0 self._hass = hass + @property + def entity_category(self): + return EntityCategory.DIAGNOSTIC + @property def unique_id(self): """Return the unique ID.""" @@ -134,12 +143,13 @@ class GeoRideOdometerKmSensorEntity(CoordinatorEntity, SensorEntity): return "mdi:counter" @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device info.""" return self._tracker_device.device_info class GeoRideInternalBatterySensorEntity(CoordinatorEntity, SensorEntity): """Represent a tracked device.""" + entity_category = EntityCategory.DIAGNOSTIC def __init__(self, coordinator: DataUpdateCoordinator[Mapping[str, Any]], tracker_device:Device): @@ -152,6 +162,10 @@ class GeoRideInternalBatterySensorEntity(CoordinatorEntity, SensorEntity): self._state = 0 + @property + def entity_category(self): + return EntityCategory.DIAGNOSTIC + @property def unique_id(self): """Return the unique ID.""" @@ -178,7 +192,7 @@ class GeoRideInternalBatterySensorEntity(CoordinatorEntity, SensorEntity): return "mdi:battery" @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device info.""" return self._tracker_device.device_info @@ -195,6 +209,10 @@ class GeoRideExternalBatterySensorEntity(CoordinatorEntity, SensorEntity): self.entity_id = f"{ENTITY_ID_FORMAT.format('external_battery_voltage')}.{tracker_device.tracker.tracker_id}"# pylint: disable=C0301 self._state = 0 + @property + def entity_category(self): + return EntityCategory.DIAGNOSTIC + @property def unique_id(self): """Return the unique ID.""" @@ -221,7 +239,7 @@ class GeoRideExternalBatterySensorEntity(CoordinatorEntity, SensorEntity): return "mdi:battery" @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device info.""" return self._tracker_device.device_info @@ -239,6 +257,10 @@ class GeoRideFixtimeSensorEntity(CoordinatorEntity, SensorEntity): self._state = 0 self._device_class = "timestamp" + @property + def entity_category(self): + return EntityCategory.DIAGNOSTIC + @property def unique_id(self): """Return the unique ID.""" @@ -260,7 +282,7 @@ class GeoRideFixtimeSensorEntity(CoordinatorEntity, SensorEntity): return "mdi:map-clock" @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device info.""" return self._tracker_device.device_info @@ -277,6 +299,10 @@ class GeoRideBeaconBatterySensorEntity(CoordinatorEntity, SensorEntity): self.entity_id = f"{ENTITY_ID_FORMAT.format('battery_percent')}.{tracker_beacon.beacon.beacon_id}"# pylint: disable=C0301 self._state = 0 + @property + def entity_category(self): + return EntityCategory.DIAGNOSTIC + @property def unique_id(self): """Return the unique ID.""" @@ -303,6 +329,6 @@ class GeoRideBeaconBatterySensorEntity(CoordinatorEntity, SensorEntity): return "mdi:battery" @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device info.""" return self._tracker_device.device_info \ No newline at end of file