mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 01:08:12 +00:00
Add support for setting NumberMode using NumberEntityDescription (#92427)
This commit is contained in:
parent
7d00804f13
commit
7b8936b420
@ -27,7 +27,6 @@ class BAFNumberDescriptionMixin:
|
||||
"""Required values for BAF sensors."""
|
||||
|
||||
value_fn: Callable[[Device], int | None]
|
||||
mode: NumberMode
|
||||
|
||||
|
||||
@dataclass
|
||||
@ -147,7 +146,6 @@ class BAFNumber(BAFEntity, NumberEntity):
|
||||
self.entity_description = description
|
||||
super().__init__(device, f"{device.name} {description.name}")
|
||||
self._attr_unique_id = f"{self._device.mac_address}-{description.key}"
|
||||
self._attr_mode = description.mode
|
||||
|
||||
@callback
|
||||
def _async_update_attrs(self) -> None:
|
||||
|
@ -40,7 +40,6 @@ class BMWNumberEntityDescription(NumberEntityDescription, BMWRequiredKeysMixin):
|
||||
|
||||
is_available: Callable[[MyBMWVehicle], bool] = lambda _: False
|
||||
dynamic_options: Callable[[MyBMWVehicle], list[str]] | None = None
|
||||
mode: NumberMode = NumberMode.AUTO
|
||||
|
||||
|
||||
NUMBER_TYPES: list[BMWNumberEntityDescription] = [
|
||||
@ -99,7 +98,6 @@ class BMWNumber(BMWBaseEntity, NumberEntity):
|
||||
super().__init__(coordinator, vehicle)
|
||||
self.entity_description = description
|
||||
self._attr_unique_id = f"{vehicle.vin}-{description.key}"
|
||||
self._attr_mode = description.mode
|
||||
|
||||
@property
|
||||
def native_value(self) -> float | None:
|
||||
|
@ -127,10 +127,11 @@ class NumberEntityDescription(EntityDescription):
|
||||
device_class: NumberDeviceClass | None = None
|
||||
max_value: None = None
|
||||
min_value: None = None
|
||||
mode: NumberMode | None = None
|
||||
native_max_value: float | None = None
|
||||
native_min_value: float | None = None
|
||||
native_unit_of_measurement: str | None = None
|
||||
native_step: float | None = None
|
||||
native_unit_of_measurement: str | None = None
|
||||
step: None = None
|
||||
unit_of_measurement: None = None # Type override, use native_unit_of_measurement
|
||||
|
||||
@ -193,7 +194,7 @@ class NumberEntity(Entity):
|
||||
_attr_device_class: NumberDeviceClass | None
|
||||
_attr_max_value: None
|
||||
_attr_min_value: None
|
||||
_attr_mode: NumberMode = NumberMode.AUTO
|
||||
_attr_mode: NumberMode
|
||||
_attr_state: None = None
|
||||
_attr_step: None
|
||||
_attr_unit_of_measurement: None # Subclasses of NumberEntity should not set this
|
||||
@ -201,8 +202,8 @@ class NumberEntity(Entity):
|
||||
_attr_native_max_value: float
|
||||
_attr_native_min_value: float
|
||||
_attr_native_step: float
|
||||
_attr_native_value: float | None = None
|
||||
_attr_native_unit_of_measurement: str | None
|
||||
_attr_native_value: float | None = None
|
||||
_deprecated_number_entity_reported = False
|
||||
_number_option_unit_of_measurement: str | None = None
|
||||
|
||||
@ -357,7 +358,14 @@ class NumberEntity(Entity):
|
||||
@property
|
||||
def mode(self) -> NumberMode:
|
||||
"""Return the mode of the entity."""
|
||||
return self._attr_mode
|
||||
if hasattr(self, "_attr_mode"):
|
||||
return self._attr_mode
|
||||
if (
|
||||
hasattr(self, "entity_description")
|
||||
and self.entity_description.mode is not None
|
||||
):
|
||||
return self.entity_description.mode
|
||||
return NumberMode.AUTO
|
||||
|
||||
@property
|
||||
@final
|
||||
|
@ -30,7 +30,6 @@ from .entity import (
|
||||
class BlockNumberDescription(BlockEntityDescription, NumberEntityDescription):
|
||||
"""Class to describe a BLOCK sensor."""
|
||||
|
||||
mode: NumberMode = NumberMode("slider")
|
||||
rest_path: str = ""
|
||||
rest_arg: str = ""
|
||||
|
||||
@ -46,7 +45,7 @@ NUMBERS: Final = {
|
||||
native_min_value=0,
|
||||
native_max_value=100,
|
||||
native_step=1,
|
||||
mode=NumberMode("slider"),
|
||||
mode=NumberMode.SLIDER,
|
||||
rest_path="thermostat/0",
|
||||
rest_arg="pos",
|
||||
),
|
||||
|
Loading…
x
Reference in New Issue
Block a user