This commit is contained in:
Home Assistant Version Control committed 2026-09-04 11:31:51 +00:00
1 parent 64c401593c
commit a0b8f10638
23 files changed
+5343 -79

No files matched your search

+19 -5
View File
@@ -2,14 +2,14 @@
from typing import Any, cast
from homeassistant.components.number import NumberEntity
from homeassistant.components.number import NumberDeviceClass, NumberEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_DEVICE_ID, CONF_SWITCHES, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from midealan.device import MideaDevice
from .const import DEVICES, DOMAIN
from .const import DEVICES, DOMAIN, supports_device
from .midea_devices import MIDEA_DEVICES
from .midea_entity import MideaEntity
@@ -28,9 +28,19 @@ async def async_setup_entry(
"dict",
MIDEA_DEVICES[device.device_type]["entities"],
).items():
if config["type"] == Platform.NUMBER and entity_key in extra_switches:
dev = MideaNumber(device, entity_key)
numbers.append(dev)
if (
config["type"] != Platform.NUMBER
or not supports_device(device.model, device.subtype, config)
or (not config.get("default") and entity_key not in extra_switches)
):
continue
required_attribute = config.get("required_attribute")
if (
required_attribute is not None
and required_attribute not in device.attributes
):
continue
numbers.append(MideaNumber(device, entity_key))
async_add_entities(numbers)
@@ -43,6 +53,10 @@ class MideaNumber(MideaEntity, NumberEntity):
self._max_value = self._config.get("max")
self._min_value = self._config.get("min")
self._step_value = self._config.get("step")
self._attr_device_class: NumberDeviceClass | None = self._config.get(
"device_class",
)
self._attr_native_unit_of_measurement = self._config.get("unit")
def _resolve_bound(self, bound: Any) -> float: # ruff:ignore[any-type]
"""Resolve a min/max/step config value to a concrete number.