From a2539188964253f930344ec563e52497d270f939 Mon Sep 17 00:00:00 2001 From: Necroneco Date: Mon, 28 Sep 2026 12:04:51 +0800 Subject: [PATCH] fix: replace deprecated CONCENTRATION_* unit constants (#1801) --- .../xiaomi_home/miot/miot_device.py | 22 ++++++++++++++----- .../xiaomi_home/miot/specs/specv2entity.py | 18 +++++++++++---- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/custom_components/xiaomi_home/miot/miot_device.py b/custom_components/xiaomi_home/miot/miot_device.py index c506a0d..dcdd6da 100644 --- a/custom_components/xiaomi_home/miot/miot_device.py +++ b/custom_components/xiaomi_home/miot/miot_device.py @@ -52,14 +52,9 @@ import logging from homeassistant.helpers.entity import Entity from homeassistant.const import ( - CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, - CONCENTRATION_PARTS_PER_BILLION, - CONCENTRATION_PARTS_PER_MILLION, DEGREE, LIGHT_LUX, REVOLUTIONS_PER_MINUTE, - PERCENTAGE, SIGNAL_STRENGTH_DECIBELS, UnitOfBloodGlucoseConcentration, UnitOfEnergy, @@ -105,6 +100,23 @@ from .miot_spec import ( MIoTSpecValueRange ) +try: # UnitOfDensity and UnitOfRatio are introduced in HA core 2026.7 + from homeassistant.const import UnitOfDensity, UnitOfRatio + CONCENTRATION_MICROGRAMS_PER_CUBIC_METER = ( + UnitOfDensity.MICROGRAMS_PER_CUBIC_METER) + CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER = ( + UnitOfDensity.MILLIGRAMS_PER_CUBIC_METER) + CONCENTRATION_PARTS_PER_MILLION = UnitOfRatio.PARTS_PER_MILLION + CONCENTRATION_PARTS_PER_BILLION = UnitOfRatio.PARTS_PER_BILLION + PERCENTAGE = UnitOfRatio.PERCENTAGE +except ImportError: + from homeassistant.const import ( + CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, + CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, + CONCENTRATION_PARTS_PER_BILLION, + CONCENTRATION_PARTS_PER_MILLION, + PERCENTAGE) + _LOGGER = logging.getLogger(__name__) diff --git a/custom_components/xiaomi_home/miot/specs/specv2entity.py b/custom_components/xiaomi_home/miot/specs/specv2entity.py index ba9aee0..2d10b7a 100644 --- a/custom_components/xiaomi_home/miot/specs/specv2entity.py +++ b/custom_components/xiaomi_home/miot/specs/specv2entity.py @@ -50,12 +50,22 @@ from homeassistant.components.sensor import SensorStateClass from homeassistant.components.event import EventDeviceClass from homeassistant.components.binary_sensor import BinarySensorDeviceClass -from homeassistant.const import (CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, - CONCENTRATION_PARTS_PER_MILLION, - EntityCategory, LIGHT_LUX, UnitOfEnergy, +from homeassistant.const import (EntityCategory, LIGHT_LUX, UnitOfEnergy, UnitOfPower, UnitOfElectricCurrent, UnitOfElectricPotential, UnitOfTemperature, - UnitOfPressure, PERCENTAGE) + UnitOfPressure) + +try: # UnitOfDensity and UnitOfRatio are introduced in HA core 2026.7 + from homeassistant.const import UnitOfDensity, UnitOfRatio + CONCENTRATION_MICROGRAMS_PER_CUBIC_METER = ( + UnitOfDensity.MICROGRAMS_PER_CUBIC_METER) + CONCENTRATION_PARTS_PER_MILLION = UnitOfRatio.PARTS_PER_MILLION + PERCENTAGE = UnitOfRatio.PERCENTAGE +except ImportError: + from homeassistant.const import ( + CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, + CONCENTRATION_PARTS_PER_MILLION, + PERCENTAGE) # pylint: disable=pointless-string-statement """SPEC_DEVICE_TRANS_MAP