From 576de9ac4052c90b8737e41110d05f06f41d000e Mon Sep 17 00:00:00 2001
From: Erik Montnemery <erik@montnemery.com>
Date: Tue, 14 Jun 2022 20:15:56 +0200
Subject: [PATCH] Migrate NumberEntity u-z to native_value (#73488)

---
 .../components/unifiprotect/number.py         | 10 +--
 homeassistant/components/wallbox/number.py    |  8 +--
 homeassistant/components/wiz/number.py        | 16 ++---
 homeassistant/components/wled/number.py       | 16 ++---
 .../components/xiaomi_miio/number.py          | 70 +++++++++----------
 .../components/yamaha_musiccast/number.py     | 10 +--
 homeassistant/components/zha/number.py        | 14 ++--
 homeassistant/components/zwave_js/number.py   | 20 +++---
 homeassistant/components/zwave_me/number.py   |  4 +-
 9 files changed, 84 insertions(+), 84 deletions(-)

diff --git a/homeassistant/components/unifiprotect/number.py b/homeassistant/components/unifiprotect/number.py
index 4ebdd17f5c9..3ac5b673ea5 100644
--- a/homeassistant/components/unifiprotect/number.py
+++ b/homeassistant/components/unifiprotect/number.py
@@ -198,15 +198,15 @@ class ProtectNumbers(ProtectDeviceEntity, NumberEntity):
     ) -> None:
         """Initialize the Number Entities."""
         super().__init__(data, device, description)
-        self._attr_max_value = self.entity_description.ufp_max
-        self._attr_min_value = self.entity_description.ufp_min
-        self._attr_step = self.entity_description.ufp_step
+        self._attr_native_max_value = self.entity_description.ufp_max
+        self._attr_native_min_value = self.entity_description.ufp_min
+        self._attr_native_step = self.entity_description.ufp_step
 
     @callback
     def _async_update_device_from_protect(self) -> None:
         super()._async_update_device_from_protect()
-        self._attr_value = self.entity_description.get_ufp_value(self.device)
+        self._attr_native_value = self.entity_description.get_ufp_value(self.device)
 
-    async def async_set_value(self, value: float) -> None:
+    async def async_set_native_value(self, value: float) -> None:
         """Set new value."""
         await self.entity_description.ufp_set(self.device, value)
diff --git a/homeassistant/components/wallbox/number.py b/homeassistant/components/wallbox/number.py
index 1ad06145ed5..1db791fd389 100644
--- a/homeassistant/components/wallbox/number.py
+++ b/homeassistant/components/wallbox/number.py
@@ -28,7 +28,7 @@ NUMBER_TYPES: dict[str, WallboxNumberEntityDescription] = {
     CHARGER_MAX_CHARGING_CURRENT_KEY: WallboxNumberEntityDescription(
         key=CHARGER_MAX_CHARGING_CURRENT_KEY,
         name="Max. Charging Current",
-        min_value=6,
+        native_min_value=6,
     ),
 }
 
@@ -74,17 +74,17 @@ class WallboxNumber(WallboxEntity, NumberEntity):
         self._attr_unique_id = f"{description.key}-{coordinator.data[CHARGER_DATA_KEY][CHARGER_SERIAL_NUMBER_KEY]}"
 
     @property
-    def max_value(self) -> float:
+    def native_max_value(self) -> float:
         """Return the maximum available current."""
         return cast(float, self._coordinator.data[CHARGER_MAX_AVAILABLE_POWER_KEY])
 
     @property
-    def value(self) -> float | None:
+    def native_value(self) -> float | None:
         """Return the state of the sensor."""
         return cast(
             Optional[float], self._coordinator.data[CHARGER_MAX_CHARGING_CURRENT_KEY]
         )
 
-    async def async_set_value(self, value: float) -> None:
+    async def async_set_native_value(self, value: float) -> None:
         """Set the value of the entity."""
         await self._coordinator.async_set_charging_current(value)
diff --git a/homeassistant/components/wiz/number.py b/homeassistant/components/wiz/number.py
index f7d827534b3..d2f68fcf7c3 100644
--- a/homeassistant/components/wiz/number.py
+++ b/homeassistant/components/wiz/number.py
@@ -48,9 +48,9 @@ async def _async_set_ratio(device: wizlight, ratio: int) -> None:
 NUMBERS: tuple[WizNumberEntityDescription, ...] = (
     WizNumberEntityDescription(
         key="effect_speed",
-        min_value=10,
-        max_value=200,
-        step=1,
+        native_min_value=10,
+        native_max_value=200,
+        native_step=1,
         icon="mdi:speedometer",
         name="Effect Speed",
         value_fn=lambda device: cast(Optional[int], device.state.get_speed()),
@@ -59,9 +59,9 @@ NUMBERS: tuple[WizNumberEntityDescription, ...] = (
     ),
     WizNumberEntityDescription(
         key="dual_head_ratio",
-        min_value=0,
-        max_value=100,
-        step=1,
+        native_min_value=0,
+        native_max_value=100,
+        native_step=1,
         icon="mdi:floor-lamp-dual",
         name="Dual Head Ratio",
         value_fn=lambda device: cast(Optional[int], device.state.get_ratio()),
@@ -113,9 +113,9 @@ class WizSpeedNumber(WizEntity, NumberEntity):
     def _async_update_attrs(self) -> None:
         """Handle updating _attr values."""
         if (value := self.entity_description.value_fn(self._device)) is not None:
-            self._attr_value = float(value)
+            self._attr_native_value = float(value)
 
-    async def async_set_value(self, value: float) -> None:
+    async def async_set_native_value(self, value: float) -> None:
         """Set the speed value."""
         await self.entity_description.set_value_fn(self._device, int(value))
         await self.coordinator.async_request_refresh()
diff --git a/homeassistant/components/wled/number.py b/homeassistant/components/wled/number.py
index d551072e452..6c426cc44c5 100644
--- a/homeassistant/components/wled/number.py
+++ b/homeassistant/components/wled/number.py
@@ -41,17 +41,17 @@ NUMBERS = [
         name="Speed",
         icon="mdi:speedometer",
         entity_category=EntityCategory.CONFIG,
-        step=1,
-        min_value=0,
-        max_value=255,
+        native_step=1,
+        native_min_value=0,
+        native_max_value=255,
     ),
     NumberEntityDescription(
         key=ATTR_INTENSITY,
         name="Intensity",
         entity_category=EntityCategory.CONFIG,
-        step=1,
-        min_value=0,
-        max_value=255,
+        native_step=1,
+        native_min_value=0,
+        native_max_value=255,
     ),
 ]
 
@@ -93,7 +93,7 @@ class WLEDNumber(WLEDEntity, NumberEntity):
         return super().available
 
     @property
-    def value(self) -> float | None:
+    def native_value(self) -> float | None:
         """Return the current WLED segment number value."""
         return getattr(
             self.coordinator.data.state.segments[self._segment],
@@ -101,7 +101,7 @@ class WLEDNumber(WLEDEntity, NumberEntity):
         )
 
     @wled_exception_handler
-    async def async_set_value(self, value: float) -> None:
+    async def async_set_native_value(self, value: float) -> None:
         """Set the WLED segment value."""
         key = self.entity_description.key
         if key == ATTR_SPEED:
diff --git a/homeassistant/components/xiaomi_miio/number.py b/homeassistant/components/xiaomi_miio/number.py
index f47d80ead17..02855a89c1f 100644
--- a/homeassistant/components/xiaomi_miio/number.py
+++ b/homeassistant/components/xiaomi_miio/number.py
@@ -108,10 +108,10 @@ NUMBER_TYPES = {
         key=ATTR_MOTOR_SPEED,
         name="Motor Speed",
         icon="mdi:fast-forward-outline",
-        unit_of_measurement="rpm",
-        min_value=200,
-        max_value=2000,
-        step=10,
+        native_unit_of_measurement="rpm",
+        native_min_value=200,
+        native_max_value=2000,
+        native_step=10,
         available_with_device_off=False,
         method="async_set_motor_speed",
         entity_category=EntityCategory.CONFIG,
@@ -120,9 +120,9 @@ NUMBER_TYPES = {
         key=ATTR_FAVORITE_LEVEL,
         name="Favorite Level",
         icon="mdi:star-cog",
-        min_value=0,
-        max_value=17,
-        step=1,
+        native_min_value=0,
+        native_max_value=17,
+        native_step=1,
         method="async_set_favorite_level",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -130,9 +130,9 @@ NUMBER_TYPES = {
         key=ATTR_FAN_LEVEL,
         name="Fan Level",
         icon="mdi:fan",
-        min_value=1,
-        max_value=3,
-        step=1,
+        native_min_value=1,
+        native_max_value=3,
+        native_step=1,
         method="async_set_fan_level",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -140,9 +140,9 @@ NUMBER_TYPES = {
         key=ATTR_VOLUME,
         name="Volume",
         icon="mdi:volume-high",
-        min_value=0,
-        max_value=100,
-        step=1,
+        native_min_value=0,
+        native_max_value=100,
+        native_step=1,
         method="async_set_volume",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -150,10 +150,10 @@ NUMBER_TYPES = {
         key=ATTR_OSCILLATION_ANGLE,
         name="Oscillation Angle",
         icon="mdi:angle-acute",
-        unit_of_measurement=DEGREE,
-        min_value=1,
-        max_value=120,
-        step=1,
+        native_unit_of_measurement=DEGREE,
+        native_min_value=1,
+        native_max_value=120,
+        native_step=1,
         method="async_set_oscillation_angle",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -161,10 +161,10 @@ NUMBER_TYPES = {
         key=ATTR_DELAY_OFF_COUNTDOWN,
         name="Delay Off Countdown",
         icon="mdi:fan-off",
-        unit_of_measurement=TIME_MINUTES,
-        min_value=0,
-        max_value=480,
-        step=1,
+        native_unit_of_measurement=TIME_MINUTES,
+        native_min_value=0,
+        native_max_value=480,
+        native_step=1,
         method="async_set_delay_off_countdown",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -172,9 +172,9 @@ NUMBER_TYPES = {
         key=ATTR_LED_BRIGHTNESS,
         name="Led Brightness",
         icon="mdi:brightness-6",
-        min_value=0,
-        max_value=100,
-        step=1,
+        native_min_value=0,
+        native_max_value=100,
+        native_step=1,
         method="async_set_led_brightness",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -182,9 +182,9 @@ NUMBER_TYPES = {
         key=ATTR_LED_BRIGHTNESS_LEVEL,
         name="Led Brightness",
         icon="mdi:brightness-6",
-        min_value=0,
-        max_value=8,
-        step=1,
+        native_min_value=0,
+        native_max_value=8,
+        native_step=1,
         method="async_set_led_brightness_level",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -192,10 +192,10 @@ NUMBER_TYPES = {
         key=ATTR_FAVORITE_RPM,
         name="Favorite Motor Speed",
         icon="mdi:star-cog",
-        unit_of_measurement="rpm",
-        min_value=300,
-        max_value=2200,
-        step=10,
+        native_unit_of_measurement="rpm",
+        native_min_value=300,
+        native_max_value=2200,
+        native_step=10,
         method="async_set_favorite_rpm",
         entity_category=EntityCategory.CONFIG,
     ),
@@ -298,7 +298,7 @@ class XiaomiNumberEntity(XiaomiCoordinatedMiioEntity, NumberEntity):
         """Initialize the generic Xiaomi attribute selector."""
         super().__init__(name, device, entry, unique_id, coordinator)
 
-        self._attr_value = self._extract_value_from_attribute(
+        self._attr_native_value = self._extract_value_from_attribute(
             coordinator.data, description.key
         )
         self.entity_description = description
@@ -314,18 +314,18 @@ class XiaomiNumberEntity(XiaomiCoordinatedMiioEntity, NumberEntity):
             return False
         return super().available
 
-    async def async_set_value(self, value):
+    async def async_set_native_value(self, value):
         """Set an option of the miio device."""
         method = getattr(self, self.entity_description.method)
         if await method(int(value)):
-            self._attr_value = value
+            self._attr_native_value = value
             self.async_write_ha_state()
 
     @callback
     def _handle_coordinator_update(self):
         """Fetch state from the device."""
         # On state change the device doesn't provide the new state immediately.
-        self._attr_value = self._extract_value_from_attribute(
+        self._attr_native_value = self._extract_value_from_attribute(
             self.coordinator.data, self.entity_description.key
         )
         self.async_write_ha_state()
diff --git a/homeassistant/components/yamaha_musiccast/number.py b/homeassistant/components/yamaha_musiccast/number.py
index 2648359f768..b05c47ce279 100644
--- a/homeassistant/components/yamaha_musiccast/number.py
+++ b/homeassistant/components/yamaha_musiccast/number.py
@@ -45,15 +45,15 @@ class NumberCapability(MusicCastCapabilityEntity, NumberEntity):
     ) -> None:
         """Initialize the number entity."""
         super().__init__(coordinator, capability, zone_id)
-        self._attr_min_value = capability.value_range.minimum
-        self._attr_max_value = capability.value_range.maximum
-        self._attr_step = capability.value_range.step
+        self._attr_native_min_value = capability.value_range.minimum
+        self._attr_native_max_value = capability.value_range.maximum
+        self._attr_native_step = capability.value_range.step
 
     @property
-    def value(self):
+    def native_value(self):
         """Return the current value."""
         return self.capability.current
 
-    async def async_set_value(self, value: float):
+    async def async_set_native_value(self, value: float):
         """Set a new value."""
         await self.capability.set(value)
diff --git a/homeassistant/components/zha/number.py b/homeassistant/components/zha/number.py
index 216b9974df6..2f674df168e 100644
--- a/homeassistant/components/zha/number.py
+++ b/homeassistant/components/zha/number.py
@@ -287,12 +287,12 @@ class ZhaNumber(ZhaEntity, NumberEntity):
         )
 
     @property
-    def value(self):
+    def native_value(self):
         """Return the current value."""
         return self._analog_output_channel.present_value
 
     @property
-    def min_value(self):
+    def native_min_value(self):
         """Return the minimum value."""
         min_present_value = self._analog_output_channel.min_present_value
         if min_present_value is not None:
@@ -300,7 +300,7 @@ class ZhaNumber(ZhaEntity, NumberEntity):
         return 0
 
     @property
-    def max_value(self):
+    def native_max_value(self):
         """Return the maximum value."""
         max_present_value = self._analog_output_channel.max_present_value
         if max_present_value is not None:
@@ -308,12 +308,12 @@ class ZhaNumber(ZhaEntity, NumberEntity):
         return 1023
 
     @property
-    def step(self):
+    def native_step(self):
         """Return the value step."""
         resolution = self._analog_output_channel.resolution
         if resolution is not None:
             return resolution
-        return super().step
+        return super().native_step
 
     @property
     def name(self):
@@ -332,7 +332,7 @@ class ZhaNumber(ZhaEntity, NumberEntity):
         return super().icon
 
     @property
-    def unit_of_measurement(self):
+    def native_unit_of_measurement(self):
         """Return the unit the value is expressed in."""
         engineering_units = self._analog_output_channel.engineering_units
         return UNITS.get(engineering_units)
@@ -342,7 +342,7 @@ class ZhaNumber(ZhaEntity, NumberEntity):
         """Handle value update from channel."""
         self.async_write_ha_state()
 
-    async def async_set_value(self, value):
+    async def async_set_native_value(self, value):
         """Update the current value from HA."""
         num_value = float(value)
         if await self._analog_output_channel.async_set_present_value(num_value):
diff --git a/homeassistant/components/zwave_js/number.py b/homeassistant/components/zwave_js/number.py
index 737b872b7bc..1b17fa35024 100644
--- a/homeassistant/components/zwave_js/number.py
+++ b/homeassistant/components/zwave_js/number.py
@@ -71,34 +71,34 @@ class ZwaveNumberEntity(ZWaveBaseEntity, NumberEntity):
         )
 
     @property
-    def min_value(self) -> float:
+    def native_min_value(self) -> float:
         """Return the minimum value."""
         if self.info.primary_value.metadata.min is None:
             return 0
         return float(self.info.primary_value.metadata.min)
 
     @property
-    def max_value(self) -> float:
+    def native_max_value(self) -> float:
         """Return the maximum value."""
         if self.info.primary_value.metadata.max is None:
             return 255
         return float(self.info.primary_value.metadata.max)
 
     @property
-    def value(self) -> float | None:
+    def native_value(self) -> float | None:
         """Return the entity value."""
         if self.info.primary_value.value is None:
             return None
         return float(self.info.primary_value.value)
 
     @property
-    def unit_of_measurement(self) -> str | None:
+    def native_unit_of_measurement(self) -> str | None:
         """Return the unit of measurement of this entity, if any."""
         if self.info.primary_value.metadata.unit is None:
             return None
         return str(self.info.primary_value.metadata.unit)
 
-    async def async_set_value(self, value: float) -> None:
+    async def async_set_native_value(self, value: float) -> None:
         """Set new value."""
         if (target_value := self._target_value) is None:
             raise HomeAssistantError("Missing target value on device.")
@@ -121,19 +121,19 @@ class ZwaveVolumeNumberEntity(ZWaveBaseEntity, NumberEntity):
             self.correction_factor = 1
 
         # Entity class attributes
-        self._attr_min_value = 0
-        self._attr_max_value = 1
-        self._attr_step = 0.01
+        self._attr_native_min_value = 0
+        self._attr_native_max_value = 1
+        self._attr_native_step = 0.01
         self._attr_name = self.generate_name(include_value_name=True)
 
     @property
-    def value(self) -> float | None:
+    def native_value(self) -> float | None:
         """Return the entity value."""
         if self.info.primary_value.value is None:
             return None
         return float(self.info.primary_value.value) / self.correction_factor
 
-    async def async_set_value(self, value: float) -> None:
+    async def async_set_native_value(self, value: float) -> None:
         """Set new value."""
         await self.info.node.async_set_value(
             self.info.primary_value, round(value * self.correction_factor)
diff --git a/homeassistant/components/zwave_me/number.py b/homeassistant/components/zwave_me/number.py
index efa7ceb8603..2fa82514626 100644
--- a/homeassistant/components/zwave_me/number.py
+++ b/homeassistant/components/zwave_me/number.py
@@ -40,13 +40,13 @@ class ZWaveMeNumber(ZWaveMeEntity, NumberEntity):
     """Representation of a ZWaveMe Multilevel Switch."""
 
     @property
-    def value(self):
+    def native_value(self):
         """Return the unit of measurement."""
         if self.device.level == 99:  # Scale max value
             return 100
         return self.device.level
 
-    def set_value(self, value: float) -> None:
+    def set_native_value(self, value: float) -> None:
         """Update the current value."""
         self.controller.zwave_api.send_command(
             self.device.id, f"exact?level={str(round(value))}"