From a07117470e9a16c5f5bcefd12d109afd3bcf3f69 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 17 Nov 2022 21:12:45 +0100 Subject: [PATCH] Add number device class support to ESPHome (#82277) --- homeassistant/components/esphome/manifest.json | 2 +- homeassistant/components/esphome/number.py | 10 +++++++++- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/esphome/manifest.json b/homeassistant/components/esphome/manifest.json index 2070b8ae362..12b2bc98d2c 100644 --- a/homeassistant/components/esphome/manifest.json +++ b/homeassistant/components/esphome/manifest.json @@ -3,7 +3,7 @@ "name": "ESPHome", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/esphome", - "requirements": ["aioesphomeapi==11.4.3"], + "requirements": ["aioesphomeapi==11.5.0"], "zeroconf": ["_esphomelib._tcp.local."], "dhcp": [{ "registered_devices": true }], "codeowners": ["@OttoWinter", "@jesserockz"], diff --git a/homeassistant/components/esphome/number.py b/homeassistant/components/esphome/number.py index a00d4456227..4111a616439 100644 --- a/homeassistant/components/esphome/number.py +++ b/homeassistant/components/esphome/number.py @@ -1,11 +1,12 @@ """Support for esphome numbers.""" from __future__ import annotations +from contextlib import suppress import math from aioesphomeapi import NumberInfo, NumberMode as EsphomeNumberMode, NumberState -from homeassistant.components.number import NumberEntity, NumberMode +from homeassistant.components.number import NumberDeviceClass, NumberEntity, NumberMode from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -47,6 +48,13 @@ NUMBER_MODES: EsphomeEnumMapper[EsphomeNumberMode, NumberMode] = EsphomeEnumMapp class EsphomeNumber(EsphomeEntity[NumberInfo, NumberState], NumberEntity): """A number implementation for esphome.""" + @property + def device_class(self) -> NumberDeviceClass | None: + """Return the class of this entity.""" + with suppress(ValueError): + return NumberDeviceClass(self._static_info.device_class) + return None + @property def native_min_value(self) -> float: """Return the minimum value.""" diff --git a/requirements_all.txt b/requirements_all.txt index 0fd0942c23d..c18fd4d3661 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -156,7 +156,7 @@ aioecowitt==2022.09.3 aioemonitor==1.0.5 # homeassistant.components.esphome -aioesphomeapi==11.4.3 +aioesphomeapi==11.5.0 # homeassistant.components.flo aioflo==2021.11.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 418b0aa48a9..17baae684ad 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -143,7 +143,7 @@ aioecowitt==2022.09.3 aioemonitor==1.0.5 # homeassistant.components.esphome -aioesphomeapi==11.4.3 +aioesphomeapi==11.5.0 # homeassistant.components.flo aioflo==2021.11.0