Use b'\xce\xbc` for micro sign instead of b'\xc2\xb5'

This commit is contained in:
jbouwh
2025-05-14 04:57:45 +00:00
parent 1889f0ef66
commit b3074d272a
34 changed files with 186 additions and 186 deletions

View File

@@ -61,7 +61,7 @@
"display_pm_standard": {
"name": "Display PM standard",
"state": {
"ugm3": "µg/m³",
"ugm3": "μg/m³",
"us_aqi": "US AQI"
}
},

View File

@@ -92,7 +92,7 @@ SENSOR_DESCRIPTIONS = {
key="radiation_rate",
translation_key="radiation_rate",
name="Radiation Dose Rate",
native_unit_of_measurement="μSv/h",
native_unit_of_measurement="μSv/h", # b'\xc2\xb5'
state_class=SensorStateClass.MEASUREMENT,
suggested_display_precision=2,
scale=0.001,

View File

@@ -72,7 +72,7 @@ SENSOR_DESCRIPTIONS = {
key=str(BTHomeExtendedSensorDeviceClass.CHANNEL),
state_class=SensorStateClass.MEASUREMENT,
),
# Conductivity (µS/cm)
# Conductivity (μS/cm)
(
BTHomeSensorDeviceClass.CONDUCTIVITY,
Units.CONDUCTIVITY,
@@ -215,7 +215,7 @@ SENSOR_DESCRIPTIONS = {
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
),
# PM10 (µg/m3)
# PM10 (μg/m3)
(
BTHomeSensorDeviceClass.PM10,
Units.CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
@@ -225,7 +225,7 @@ SENSOR_DESCRIPTIONS = {
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
),
# PM2.5 (µg/m3)
# PM2.5 (μg/m3)
(
BTHomeSensorDeviceClass.PM25,
Units.CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
@@ -318,7 +318,7 @@ SENSOR_DESCRIPTIONS = {
key=str(BTHomeSensorDeviceClass.UV_INDEX),
state_class=SensorStateClass.MEASUREMENT,
),
# Volatile organic Compounds (VOC) (µg/m3)
# Volatile organic Compounds (VOC) (μg/m3)
(
BTHomeSensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
Units.CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,

View File

@@ -35,7 +35,7 @@ from .const import (
UNIT_PREFIXES = [
selector.SelectOptionDict(value="n", label="n (nano)"),
selector.SelectOptionDict(value="µ", label="µ (micro)"),
selector.SelectOptionDict(value="μ", label="μ (micro)"),
selector.SelectOptionDict(value="m", label="m (milli)"),
selector.SelectOptionDict(value="k", label="k (kilo)"),
selector.SelectOptionDict(value="M", label="M (mega)"),

View File

@@ -61,7 +61,7 @@ ATTR_SOURCE_ID = "source"
UNIT_PREFIXES = {
None: 1,
"n": 1e-9,
"µ": 1e-6,
"μ": 1e-6,
"m": 1e-3,
"k": 1e3,
"M": 1e6,

View File

@@ -163,7 +163,7 @@ SENSORS: dict[str | None, SensorEntityDescription] = {
native_unit_of_measurement=UnitOfSpeed.METERS_PER_SECOND,
state_class=SensorStateClass.MEASUREMENT,
),
"µg/m³": SensorEntityDescription(
"μg/m³": SensorEntityDescription(
key="concentration|microgram_per_cubic_meter",
translation_key="concentration",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,

View File

@@ -105,7 +105,7 @@ SENSORS: Final[list[FytaSensorEntityDescription]] = [
FytaSensorEntityDescription(
key="light",
translation_key="light",
native_unit_of_measurement="μmol/s⋅m²",
native_unit_of_measurement="μmol/s⋅m²", # b'\xc2\xb5'
state_class=SensorStateClass.MEASUREMENT,
value_fn=lambda plant: plant.light,
),

View File

@@ -291,7 +291,7 @@ class NitrogenDioxideSensor(AirQualitySensor):
class VolatileOrganicCompoundsSensor(AirQualitySensor):
"""Generate a VolatileOrganicCompoundsSensor accessory as VOCs sensor.
Sensor entity must return VOC in µg/m3.
Sensor entity must return VOC in μg/m3.
"""
def create_services(self) -> None:

View File

@@ -480,7 +480,7 @@ def temperature_to_states(temperature: float, unit: str) -> float:
def density_to_air_quality(density: float) -> int:
"""Map PM2.5 µg/m3 density to HomeKit AirQuality level."""
"""Map PM2.5 μg/m3 density to HomeKit AirQuality level."""
if density <= 9: # US AQI 0-50 (HomeKit: Excellent)
return 1
if density <= 35.4: # US AQI 51-100 (HomeKit: Good)
@@ -493,7 +493,7 @@ def density_to_air_quality(density: float) -> int:
def density_to_air_quality_pm10(density: float) -> int:
"""Map PM10 µg/m3 density to HomeKit AirQuality level."""
"""Map PM10 μg/m3 density to HomeKit AirQuality level."""
if density <= 54: # US AQI 0-50 (HomeKit: Excellent)
return 1
if density <= 154: # US AQI 51-100 (HomeKit: Good)
@@ -506,7 +506,7 @@ def density_to_air_quality_pm10(density: float) -> int:
def density_to_air_quality_nitrogen_dioxide(density: float) -> int:
"""Map nitrogen dioxide µg/m3 to HomeKit AirQuality level."""
"""Map nitrogen dioxide μg/m3 to HomeKit AirQuality level."""
if density <= 30:
return 1
if density <= 60:
@@ -519,7 +519,7 @@ def density_to_air_quality_nitrogen_dioxide(density: float) -> int:
def density_to_air_quality_voc(density: float) -> int:
"""Map VOCs µg/m3 to HomeKit AirQuality level.
"""Map VOCs μg/m3 to HomeKit AirQuality level.
The VOC mappings use the IAQ guidelines for Europe released by the WHO (World Health Organization).
Referenced from Sensirion_Gas_Sensors_SGP3x_TVOC_Concept.pdf

View File

@@ -130,7 +130,7 @@ class NumberDeviceClass(StrEnum):
CONDUCTIVITY = "conductivity"
"""Conductivity.
Unit of measurement: `S/cm`, `mS/cm`, `µS/cm`
Unit of measurement: `S/cm`, `mS/cm`, `μS/cm`
"""
CURRENT = "current"
@@ -162,7 +162,7 @@ class NumberDeviceClass(StrEnum):
DURATION = "duration"
"""Fixed duration.
Unit of measurement: `d`, `h`, `min`, `s`, `ms`, `µs`
Unit of measurement: `d`, `h`, `min`, `s`, `ms`, `μs`
"""
ENERGY = "energy"
@@ -240,25 +240,25 @@ class NumberDeviceClass(StrEnum):
NITROGEN_DIOXIDE = "nitrogen_dioxide"
"""Amount of NO2.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
NITROGEN_MONOXIDE = "nitrogen_monoxide"
"""Amount of NO.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
NITROUS_OXIDE = "nitrous_oxide"
"""Amount of N2O.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
OZONE = "ozone"
"""Amount of O3.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
PH = "ph"
@@ -270,19 +270,19 @@ class NumberDeviceClass(StrEnum):
PM1 = "pm1"
"""Particulate matter <= 1 μm.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
PM10 = "pm10"
"""Particulate matter <= 10 μm.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
PM25 = "pm25"
"""Particulate matter <= 2.5 μm.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
POWER_FACTOR = "power_factor"
@@ -359,7 +359,7 @@ class NumberDeviceClass(StrEnum):
SULPHUR_DIOXIDE = "sulphur_dioxide"
"""Amount of SO2.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
TEMPERATURE = "temperature"
@@ -371,7 +371,7 @@ class NumberDeviceClass(StrEnum):
VOLATILE_ORGANIC_COMPOUNDS = "volatile_organic_compounds"
"""Amount of VOC.
Unit of measurement: `µg/m³`, `mg/m³`
Unit of measurement: `μg/m³`, `mg/m³`
"""
VOLATILE_ORGANIC_COMPOUNDS_PARTS = "volatile_organic_compounds_parts"
@@ -383,7 +383,7 @@ class NumberDeviceClass(StrEnum):
VOLTAGE = "voltage"
"""Voltage.
Unit of measurement: `V`, `mV`, `µV`, `kV`, `MV`
Unit of measurement: `V`, `mV`, `μV`, `kV`, `MV`
"""
VOLUME = "volume"
@@ -430,7 +430,7 @@ class NumberDeviceClass(StrEnum):
Weight is used instead of mass to fit with every day language.
Unit of measurement: `MASS_*` units
- SI / metric: `µg`, `mg`, `g`, `kg`
- SI / metric: `μg`, `mg`, `g`, `kg`
- USCS / imperial: `oz`, `lb`
"""

View File

@@ -263,7 +263,7 @@ def correct_db_schema_precision(
)
precision_columns = _get_precision_column_types(table_object)
# Attempt to convert timestamp columns to µs precision
# Attempt to convert timestamp columns to μs precision
session_maker = instance.get_session
engine = instance.engine
assert engine is not None, "Engine should be set"

View File

@@ -158,7 +158,7 @@ class SensorDeviceClass(StrEnum):
CONDUCTIVITY = "conductivity"
"""Conductivity.
Unit of measurement: `S/cm`, `mS/cm`, `µS/cm`
Unit of measurement: `S/cm`, `mS/cm`, `μS/cm`
"""
CURRENT = "current"
@@ -190,7 +190,7 @@ class SensorDeviceClass(StrEnum):
DURATION = "duration"
"""Fixed duration.
Unit of measurement: `d`, `h`, `min`, `s`, `ms`, `µs`
Unit of measurement: `d`, `h`, `min`, `s`, `ms`, `μs`
"""
ENERGY = "energy"
@@ -270,25 +270,25 @@ class SensorDeviceClass(StrEnum):
NITROGEN_DIOXIDE = "nitrogen_dioxide"
"""Amount of NO2.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
NITROGEN_MONOXIDE = "nitrogen_monoxide"
"""Amount of NO.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
NITROUS_OXIDE = "nitrous_oxide"
"""Amount of N2O.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
OZONE = "ozone"
"""Amount of O3.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
PH = "ph"
@@ -300,19 +300,19 @@ class SensorDeviceClass(StrEnum):
PM1 = "pm1"
"""Particulate matter <= 1 μm.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
PM10 = "pm10"
"""Particulate matter <= 10 μm.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
PM25 = "pm25"
"""Particulate matter <= 2.5 μm.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
POWER_FACTOR = "power_factor"
@@ -390,7 +390,7 @@ class SensorDeviceClass(StrEnum):
SULPHUR_DIOXIDE = "sulphur_dioxide"
"""Amount of SO2.
Unit of measurement: `µg/m³`
Unit of measurement: `μg/m³`
"""
TEMPERATURE = "temperature"
@@ -402,7 +402,7 @@ class SensorDeviceClass(StrEnum):
VOLATILE_ORGANIC_COMPOUNDS = "volatile_organic_compounds"
"""Amount of VOC.
Unit of measurement: `µg/m³`, `mg/m³`
Unit of measurement: `μg/m³`, `mg/m³`
"""
VOLATILE_ORGANIC_COMPOUNDS_PARTS = "volatile_organic_compounds_parts"
@@ -414,7 +414,7 @@ class SensorDeviceClass(StrEnum):
VOLTAGE = "voltage"
"""Voltage.
Unit of measurement: `V`, `mV`, `µV`, `kV`, `MV`
Unit of measurement: `V`, `mV`, `μV`, `kV`, `MV`
"""
VOLUME = "volume"
@@ -461,7 +461,7 @@ class SensorDeviceClass(StrEnum):
Weight is used instead of mass to fit with every day language.
Unit of measurement: `MASS_*` units
- SI / metric: `µg`, `mg`, `g`, `kg`
- SI / metric: `μg`, `mg`, `g`, `kg`
- USCS / imperial: `oz`, `lb`
"""

View File

@@ -197,7 +197,7 @@ SENSOR_TYPES = (
attribute=TMRW_ATTR_PRECIPITATION_TYPE,
value_map=PrecipitationType,
),
# Data comes in as ppb, convert to µg/m^3
# Data comes in as ppb, convert to μg/m^3
# Molecular weight of Ozone is 48
TomorrowioSensorEntityDescription(
key="ozone",
@@ -221,7 +221,7 @@ SENSOR_TYPES = (
device_class=SensorDeviceClass.PM10,
state_class=SensorStateClass.MEASUREMENT,
),
# Data comes in as ppb, convert to µg/m^3
# Data comes in as ppb, convert to μg/m^3
# Molecular weight of Nitrogen Dioxide is 46.01
TomorrowioSensorEntityDescription(
key="nitrogen_dioxide",
@@ -240,7 +240,7 @@ SENSOR_TYPES = (
device_class=SensorDeviceClass.CO,
state_class=SensorStateClass.MEASUREMENT,
),
# Data comes in as ppb, convert to µg/m^3
# Data comes in as ppb, convert to μg/m^3
# Molecular weight of Sulphur Dioxide is 64.07
TomorrowioSensorEntityDescription(
key="sulphur_dioxide",

View File

@@ -496,7 +496,7 @@ UNITS = (
),
UnitOfMeasurement(
unit=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
aliases={"ug/m3", "µg/m3", "ug/m³"},
aliases={"ug/m3", "μg/m3", "ug/m³"},
device_classes={
SensorDeviceClass.NITROGEN_DIOXIDE,
SensorDeviceClass.NITROGEN_MONOXIDE,

View File

@@ -664,7 +664,7 @@ class UnitOfElectricCurrent(StrEnum):
class UnitOfElectricPotential(StrEnum):
"""Electric potential units."""
MICROVOLT = "µV"
MICROVOLT = "μV" # b'\xce\xbcV'
MILLIVOLT = "mV"
VOLT = "V"
KILOVOLT = "kV"
@@ -693,7 +693,7 @@ class UnitOfTemperature(StrEnum):
class UnitOfTime(StrEnum):
"""Time units."""
MICROSECONDS = "μs"
MICROSECONDS = "μs" # b'\xce\xbcs'
MILLISECONDS = "ms"
SECONDS = "s"
MINUTES = "min"
@@ -814,7 +814,7 @@ class UnitOfMass(StrEnum):
GRAMS = "g"
KILOGRAMS = "kg"
MILLIGRAMS = "mg"
MICROGRAMS = "µg"
MICROGRAMS = "μg" # b'\xce\xbg'
OUNCES = "oz"
POUNDS = "lb"
STONES = "st"
@@ -832,13 +832,13 @@ class UnitOfConductivity(
"""Conductivity units."""
SIEMENS_PER_CM = "S/cm"
MICROSIEMENS_PER_CM = "µS/cm"
MICROSIEMENS_PER_CM = "μS/cm" # b'\xce\xbcS/cm'
MILLISIEMENS_PER_CM = "mS/cm"
# Deprecated aliases
SIEMENS = "S/cm"
"""Deprecated: Please use UnitOfConductivity.SIEMENS_PER_CM"""
MICROSIEMENS = "µS/cm"
MICROSIEMENS = "μS/cm" # 'b'\xce\xbcS/cm'
"""Deprecated: Please use UnitOfConductivity.MICROSIEMENS_PER_CM"""
MILLISIEMENS = "mS/cm"
"""Deprecated: Please use UnitOfConductivity.MILLISIEMENS_PER_CM"""
@@ -909,9 +909,9 @@ class UnitOfPrecipitationDepth(StrEnum):
# Concentration units
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final = "µg/m³"
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final = "μg/m³" # b'\xce\xbcg/m\xc2\xb3'
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: Final = "mg/m³"
CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT: Final = "μg/ft³"
CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT: Final = "μg/ft³" # b'\xce\xbcg/ft\xc2\xb3'
CONCENTRATION_PARTS_PER_CUBIC_METER: Final = "p/m³"
CONCENTRATION_PARTS_PER_MILLION: Final = "ppm"
CONCENTRATION_PARTS_PER_BILLION: Final = "ppb"

View File

@@ -622,7 +622,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '84fce612f5b8-pm01',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[indoor][sensor.airgradient_pm1-state]
@@ -631,7 +631,7 @@
'device_class': 'pm1',
'friendly_name': 'Airgradient PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_pm1',
@@ -675,7 +675,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '84fce612f5b8-pm10',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[indoor][sensor.airgradient_pm10-state]
@@ -684,7 +684,7 @@
'device_class': 'pm10',
'friendly_name': 'Airgradient PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_pm10',
@@ -728,7 +728,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '84fce612f5b8-pm02',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[indoor][sensor.airgradient_pm2_5-state]
@@ -737,7 +737,7 @@
'device_class': 'pm25',
'friendly_name': 'Airgradient PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_pm2_5',
@@ -833,7 +833,7 @@
'supported_features': 0,
'translation_key': 'raw_pm02',
'unique_id': '84fce612f5b8-pm02_raw',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[indoor][sensor.airgradient_raw_pm2_5-state]
@@ -842,7 +842,7 @@
'device_class': 'pm25',
'friendly_name': 'Airgradient Raw PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_raw_pm2_5',

View File

@@ -36,7 +36,7 @@
'supported_features': 0,
'translation_key': 'co',
'unique_id': '123-456-co',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_carbon_monoxide-state]
@@ -47,7 +47,7 @@
'limit': 4000,
'percent': 4,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_carbon_monoxide',
@@ -207,7 +207,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-456-no2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_nitrogen_dioxide-state]
@@ -219,7 +219,7 @@
'limit': 25,
'percent': 64,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_nitrogen_dioxide',
@@ -266,7 +266,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-456-o3',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_ozone-state]
@@ -278,7 +278,7 @@
'limit': 100,
'percent': 42,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_ozone',
@@ -325,7 +325,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-456-pm1',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_pm1-state]
@@ -335,7 +335,7 @@
'device_class': 'pm1',
'friendly_name': 'Home PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_pm1',
@@ -382,7 +382,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-456-pm10',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_pm10-state]
@@ -394,7 +394,7 @@
'limit': 45,
'percent': 14,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_pm10',
@@ -441,7 +441,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-456-pm25',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_pm2_5-state]
@@ -453,7 +453,7 @@
'limit': 15,
'percent': 29,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_pm2_5',
@@ -557,7 +557,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-456-so2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_sulphur_dioxide-state]
@@ -569,7 +569,7 @@
'limit': 40,
'percent': 35,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_sulphur_dioxide',

View File

@@ -144,7 +144,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'test-serial-number_PM10',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[entry_pm2_5]
@@ -181,7 +181,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'test-serial-number_PM25',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[entry_temperature]
@@ -314,7 +314,7 @@
'device_class': 'pm10',
'friendly_name': 'Test Sensor PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.test_sensor_pm10',
@@ -330,7 +330,7 @@
'device_class': 'pm25',
'friendly_name': 'Test Sensor PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.test_sensor_pm2_5',

View File

@@ -253,14 +253,14 @@ _LOGGER = logging.getLogger(__name__)
{
"sensor_entity": "sensor.test_device_18b2_pm10",
"friendly_name": "Test Device 18B2 Pm10",
"unit_of_measurement": "µg/m³",
"unit_of_measurement": "μg/m³",
"state_class": "measurement",
"expected_state": "7170",
},
{
"sensor_entity": "sensor.test_device_18b2_pm25",
"friendly_name": "Test Device 18B2 Pm25",
"unit_of_measurement": "µg/m³",
"unit_of_measurement": "μg/m³",
"state_class": "measurement",
"expected_state": "3090",
},
@@ -296,7 +296,7 @@ _LOGGER = logging.getLogger(__name__)
"sensor.test_device_18b2_volatile_organic_compounds"
),
"friendly_name": "Test Device 18B2 Volatile Organic Compounds",
"unit_of_measurement": "µg/m³",
"unit_of_measurement": "μg/m³",
"state_class": "measurement",
"expected_state": "307",
},
@@ -607,14 +607,14 @@ async def test_v1_sensors(
{
"sensor_entity": "sensor.test_device_18b2_pm10",
"friendly_name": "Test Device 18B2 Pm10",
"unit_of_measurement": "µg/m³",
"unit_of_measurement": "μg/m³",
"state_class": "measurement",
"expected_state": "7170",
},
{
"sensor_entity": "sensor.test_device_18b2_pm25",
"friendly_name": "Test Device 18B2 Pm25",
"unit_of_measurement": "µg/m³",
"unit_of_measurement": "μg/m³",
"state_class": "measurement",
"expected_state": "3090",
},
@@ -650,7 +650,7 @@ async def test_v1_sensors(
"sensor.test_device_18b2_volatile_organic_compounds"
),
"friendly_name": "Test Device 18B2 Volatile Organic Compounds",
"unit_of_measurement": "µg/m³",
"unit_of_measurement": "μg/m³",
"state_class": "measurement",
"expected_state": "307",
},

View File

@@ -829,7 +829,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'xx:xx:xx:xx:xx:xx:xx:xx-01-042a-particulate_matter_pm2_5',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[config_entry_options0-sensor_payload14-expected14][sensor.starkvind_airpurifier_pm25-state]
@@ -838,7 +838,7 @@
'device_class': 'pm25',
'friendly_name': 'STARKVIND AirPurifier PM25',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.starkvind_airpurifier_pm25',
@@ -1377,7 +1377,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00:00:00:00:00:00:00:01-02-0113-air_quality_formaldehyde',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[config_entry_options0-sensor_payload2-expected2][sensor.airquality_1_ch2o-state]
@@ -1386,7 +1386,7 @@
'device_class': 'volatile_organic_compounds',
'friendly_name': 'AirQuality 1 CH2O',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airquality_1_ch2o',
@@ -1483,7 +1483,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00:00:00:00:00:00:00:01-02-0113-air_quality_pm2_5',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[config_entry_options0-sensor_payload2-expected2][sensor.airquality_1_pm25-state]
@@ -1492,7 +1492,7 @@
'device_class': 'pm25',
'friendly_name': 'AirQuality 1 PM25',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airquality_1_pm25',
@@ -1699,7 +1699,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00:00:00:00:00:00:00:01-02-0113-air_quality_formaldehyde',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[config_entry_options0-sensor_payload3-expected3][sensor.airquality_1_ch2o-state]
@@ -1708,7 +1708,7 @@
'device_class': 'volatile_organic_compounds',
'friendly_name': 'AirQuality 1 CH2O',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airquality_1_ch2o',
@@ -1805,7 +1805,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00:00:00:00:00:00:00:01-02-0113-air_quality_pm2_5',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[config_entry_options0-sensor_payload3-expected3][sensor.airquality_1_pm25-state]
@@ -1814,7 +1814,7 @@
'device_class': 'pm25',
'friendly_name': 'AirQuality 1 PM25',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airquality_1_pm25',
@@ -1910,7 +1910,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00:00:00:00:00:00:00:01-02-0113-air_quality_formaldehyde',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[config_entry_options0-sensor_payload4-expected4][sensor.airquality_1_ch2o-state]
@@ -1919,7 +1919,7 @@
'device_class': 'volatile_organic_compounds',
'friendly_name': 'AirQuality 1 CH2O',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airquality_1_ch2o',
@@ -2016,7 +2016,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00:00:00:00:00:00:00:01-02-0113-air_quality_pm2_5',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[config_entry_options0-sensor_payload4-expected4][sensor.airquality_1_pm25-state]
@@ -2025,7 +2025,7 @@
'device_class': 'pm25',
'friendly_name': 'AirQuality 1 PM25',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.airquality_1_pm25',

View File

@@ -103,7 +103,7 @@
'supported_features': 0,
'translation_key': 'c6h6',
'unique_id': '123-c6h6',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_benzene-state]
@@ -112,7 +112,7 @@
'attribution': 'Data provided by GIOŚ',
'friendly_name': 'Home Benzene',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_benzene',
@@ -159,7 +159,7 @@
'supported_features': 0,
'translation_key': 'co',
'unique_id': '123-co',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_carbon_monoxide-state]
@@ -168,7 +168,7 @@
'attribution': 'Data provided by GIOŚ',
'friendly_name': 'Home Carbon monoxide',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_carbon_monoxide',
@@ -215,7 +215,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-no2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_nitrogen_dioxide-state]
@@ -225,7 +225,7 @@
'device_class': 'nitrogen_dioxide',
'friendly_name': 'Home Nitrogen dioxide',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_nitrogen_dioxide',
@@ -339,7 +339,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-o3',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_ozone-state]
@@ -349,7 +349,7 @@
'device_class': 'ozone',
'friendly_name': 'Home Ozone',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_ozone',
@@ -463,7 +463,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-pm10',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_pm10-state]
@@ -473,7 +473,7 @@
'device_class': 'pm10',
'friendly_name': 'Home PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_pm10',
@@ -587,7 +587,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-pm25',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_pm2_5-state]
@@ -597,7 +597,7 @@
'device_class': 'pm25',
'friendly_name': 'Home PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_pm2_5',
@@ -711,7 +711,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '123-so2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.home_sulphur_dioxide-state]
@@ -721,7 +721,7 @@
'device_class': 'sulphur_dioxide',
'friendly_name': 'Home Sulphur dioxide',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.home_sulphur_dioxide',

View File

@@ -183,7 +183,7 @@ async def test_gvh5106(hass: HomeAssistant) -> None:
pm25_sensor_attributes = pm25_sensor.attributes
assert pm25_sensor.state == "0"
assert pm25_sensor_attributes[ATTR_FRIENDLY_NAME] == "H5106 4E05 Pm25"
assert pm25_sensor_attributes[ATTR_UNIT_OF_MEASUREMENT] == "µg/m³"
assert pm25_sensor_attributes[ATTR_UNIT_OF_MEASUREMENT] == "μg/m³"
assert pm25_sensor_attributes[ATTR_STATE_CLASS] == "measurement"
assert await hass.config_entries.async_unload(entry.entry_id)

View File

@@ -365,14 +365,14 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00:00:00:00:00:00_1_2576_2580',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'state': dict({
'attributes': dict({
'device_class': 'pm25',
'friendly_name': 'Airversa AP2 1808 PM2.5 Density',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'entity_id': 'sensor.airversa_ap2_1808_pm2_5_density',
'state': '3.0',

View File

@@ -95,7 +95,7 @@
'supported_features': 0,
'translation_key': <PinecilNumber.CALIBRATION_OFFSET: 'calibration_offset'>,
'unique_id': 'c0:ff:ee:c0:ff:ee_calibration_offset',
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'µV'>,
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'μV'>,
})
# ---
# name: test_state[number.pinecil_calibration_offset-state]
@@ -106,7 +106,7 @@
'min': 100,
'mode': <NumberMode.BOX: 'box'>,
'step': 1,
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'µV'>,
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'μV'>,
}),
'context': <ANY>,
'entity_id': 'number.pinecil_calibration_offset',

View File

@@ -566,7 +566,7 @@
'supported_features': 0,
'translation_key': <PinecilSensor.TIP_VOLTAGE: 'tip_voltage'>,
'unique_id': 'c0:ff:ee:c0:ff:ee_tip_voltage',
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'µV'>,
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'μV'>,
})
# ---
# name: test_sensors[sensor.pinecil_raw_tip_voltage-state]
@@ -575,7 +575,7 @@
'device_class': 'voltage',
'friendly_name': 'Pinecil Raw tip voltage',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'µV'>,
'unit_of_measurement': <UnitOfElectricPotential.MICROVOLT: 'μV'>,
}),
'context': <ANY>,
'entity_id': 'sensor.pinecil_raw_tip_voltage',

View File

@@ -135,7 +135,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'MW2-2E247F93-B570-46A6-B827-920E9E10F966_pm1',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[sensor.test_air_conditioner_pm1-state]
@@ -144,7 +144,7 @@
'device_class': 'pm1',
'friendly_name': 'Test air conditioner PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.test_air_conditioner_pm1',
@@ -188,7 +188,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'MW2-2E247F93-B570-46A6-B827-920E9E10F966_pm10',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[sensor.test_air_conditioner_pm10-state]
@@ -197,7 +197,7 @@
'device_class': 'pm10',
'friendly_name': 'Test air conditioner PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.test_air_conditioner_pm10',
@@ -241,7 +241,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'MW2-2E247F93-B570-46A6-B827-920E9E10F966_pm2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[sensor.test_air_conditioner_pm2_5-state]
@@ -250,7 +250,7 @@
'device_class': 'pm25',
'friendly_name': 'Test air conditioner PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.test_air_conditioner_pm2_5',

View File

@@ -468,7 +468,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00000000000004D2-000000000000008F-MatterNodeDevice-2-PM1Sensor-1068-0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[air_purifier][sensor.air_purifier_pm1-state]
@@ -477,7 +477,7 @@
'device_class': 'pm1',
'friendly_name': 'Air Purifier PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.air_purifier_pm1',
@@ -521,7 +521,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00000000000004D2-000000000000008F-MatterNodeDevice-2-PM10Sensor-1069-0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[air_purifier][sensor.air_purifier_pm10-state]
@@ -530,7 +530,7 @@
'device_class': 'pm10',
'friendly_name': 'Air Purifier PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.air_purifier_pm10',
@@ -574,7 +574,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00000000000004D2-000000000000008F-MatterNodeDevice-2-PM25Sensor-1066-0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[air_purifier][sensor.air_purifier_pm2_5-state]
@@ -583,7 +583,7 @@
'device_class': 'pm25',
'friendly_name': 'Air Purifier PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.air_purifier_pm2_5',
@@ -1017,7 +1017,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PM1Sensor-1068-0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[air_quality_sensor][sensor.lightfi_aq1_air_quality_sensor_pm1-state]
@@ -1026,7 +1026,7 @@
'device_class': 'pm1',
'friendly_name': 'lightfi-aq1-air-quality-sensor PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.lightfi_aq1_air_quality_sensor_pm1',
@@ -1070,7 +1070,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PM10Sensor-1069-0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[air_quality_sensor][sensor.lightfi_aq1_air_quality_sensor_pm10-state]
@@ -1079,7 +1079,7 @@
'device_class': 'pm10',
'friendly_name': 'lightfi-aq1-air-quality-sensor PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.lightfi_aq1_air_quality_sensor_pm10',
@@ -1123,7 +1123,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PM25Sensor-1066-0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensors[air_quality_sensor][sensor.lightfi_aq1_air_quality_sensor_pm2_5-state]
@@ -1132,7 +1132,7 @@
'device_class': 'pm25',
'friendly_name': 'lightfi-aq1-air-quality-sensor PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.lightfi_aq1_air_quality_sensor_pm2_5',

View File

@@ -981,7 +981,7 @@
'supported_features': 0,
'translation_key': 'pmsx003_pm1',
'unique_id': 'aa:bb:cc:dd:ee:ff-pms_p0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_pmsx003_pm1-state]
@@ -990,7 +990,7 @@
'device_class': 'pm1',
'friendly_name': 'Nettigo Air Monitor PMSx003 PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_pmsx003_pm1',
@@ -1037,7 +1037,7 @@
'supported_features': 0,
'translation_key': 'pmsx003_pm10',
'unique_id': 'aa:bb:cc:dd:ee:ff-pms_p1',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_pmsx003_pm10-state]
@@ -1046,7 +1046,7 @@
'device_class': 'pm10',
'friendly_name': 'Nettigo Air Monitor PMSx003 PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_pmsx003_pm10',
@@ -1093,7 +1093,7 @@
'supported_features': 0,
'translation_key': 'pmsx003_pm25',
'unique_id': 'aa:bb:cc:dd:ee:ff-pms_p2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_pmsx003_pm2_5-state]
@@ -1102,7 +1102,7 @@
'device_class': 'pm25',
'friendly_name': 'Nettigo Air Monitor PMSx003 PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_pmsx003_pm2_5',
@@ -1261,7 +1261,7 @@
'supported_features': 0,
'translation_key': 'sds011_pm10',
'unique_id': 'aa:bb:cc:dd:ee:ff-sds011_p1',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_sds011_pm10-state]
@@ -1270,7 +1270,7 @@
'device_class': 'pm10',
'friendly_name': 'Nettigo Air Monitor SDS011 PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_sds011_pm10',
@@ -1317,7 +1317,7 @@
'supported_features': 0,
'translation_key': 'sds011_pm25',
'unique_id': 'aa:bb:cc:dd:ee:ff-sds011_p2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_sds011_pm2_5-state]
@@ -1326,7 +1326,7 @@
'device_class': 'pm25',
'friendly_name': 'Nettigo Air Monitor SDS011 PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_sds011_pm2_5',
@@ -1653,7 +1653,7 @@
'supported_features': 0,
'translation_key': 'sps30_pm1',
'unique_id': 'aa:bb:cc:dd:ee:ff-sps30_p0',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_sps30_pm1-state]
@@ -1662,7 +1662,7 @@
'device_class': 'pm1',
'friendly_name': 'Nettigo Air Monitor SPS30 PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_sps30_pm1',
@@ -1709,7 +1709,7 @@
'supported_features': 0,
'translation_key': 'sps30_pm10',
'unique_id': 'aa:bb:cc:dd:ee:ff-sps30_p1',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_sps30_pm10-state]
@@ -1718,7 +1718,7 @@
'device_class': 'pm10',
'friendly_name': 'Nettigo Air Monitor SPS30 PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_sps30_pm10',
@@ -1765,7 +1765,7 @@
'supported_features': 0,
'translation_key': 'sps30_pm25',
'unique_id': 'aa:bb:cc:dd:ee:ff-sps30_p2',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_sps30_pm2_5-state]
@@ -1774,7 +1774,7 @@
'device_class': 'pm25',
'friendly_name': 'Nettigo Air Monitor SPS30 PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_sps30_pm2_5',
@@ -1821,7 +1821,7 @@
'supported_features': 0,
'translation_key': 'sps30_pm4',
'unique_id': 'aa:bb:cc:dd:ee:ff-sps30_p4',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_sensor[sensor.nettigo_air_monitor_sps30_pm4-state]
@@ -1829,7 +1829,7 @@
'attributes': ReadOnlyDict({
'friendly_name': 'Nettigo Air Monitor SPS30 PM4',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.nettigo_air_monitor_sps30_pm4',

View File

@@ -610,7 +610,7 @@ async def test_sensor_unit(
EntityMetric(
metric_name="sensor_unit_u0xb5g_per_mu0xb3",
domain="sensor",
friendly_name="SPS30 PM <1µm Weight concentration",
friendly_name="SPS30 PM <1μm Weight concentration",
entity="sensor.sps30_pm_1um_weight_concentration",
).withValue(3.7069).assert_in_metrics(body)
@@ -1920,7 +1920,7 @@ async def sensor_fixture(
unique_id="sensor_7",
unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
suggested_object_id="sps30_pm_1um_weight_concentration",
original_name="SPS30 PM <1µm Weight concentration",
original_name="SPS30 PM <1μm Weight concentration",
)
set_state_with_entry(hass, sensor_7, 3.7069)
data["sensor_7"] = sensor_7

View File

@@ -29,15 +29,15 @@ UNITS_OF_MEASUREMENT = {
SensorDeviceClass.HUMIDITY: PERCENTAGE, # % of humidity in the air
SensorDeviceClass.ILLUMINANCE: LIGHT_LUX, # current light level lx
SensorDeviceClass.MOISTURE: PERCENTAGE, # % of water in a substance
SensorDeviceClass.NITROGEN_DIOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen dioxide
SensorDeviceClass.NITROGEN_MONOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen monoxide
SensorDeviceClass.NITROUS_OXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen oxide
SensorDeviceClass.OZONE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of ozone
SensorDeviceClass.PM1: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of PM1
SensorDeviceClass.PM10: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of PM10
SensorDeviceClass.PM25: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of PM2.5
SensorDeviceClass.NITROGEN_DIOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of nitrogen dioxide
SensorDeviceClass.NITROGEN_MONOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of nitrogen monoxide
SensorDeviceClass.NITROUS_OXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of nitrogen oxide
SensorDeviceClass.OZONE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of ozone
SensorDeviceClass.PM1: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of PM1
SensorDeviceClass.PM10: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of PM10
SensorDeviceClass.PM25: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of PM2.5
SensorDeviceClass.SIGNAL_STRENGTH: SIGNAL_STRENGTH_DECIBELS, # signal strength (dB/dBm)
SensorDeviceClass.SULPHUR_DIOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of sulphur dioxide
SensorDeviceClass.SULPHUR_DIOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of sulphur dioxide
SensorDeviceClass.TEMPERATURE: "C", # temperature (C/F)
SensorDeviceClass.PRESSURE: UnitOfPressure.HPA, # pressure (hPa/mbar)
SensorDeviceClass.POWER: "kW", # power (W/kW)
@@ -47,7 +47,7 @@ UNITS_OF_MEASUREMENT = {
SensorDeviceClass.POWER_FACTOR: PERCENTAGE, # power factor (no unit, min: -1.0, max: 1.0)
SensorDeviceClass.REACTIVE_ENERGY: UnitOfReactiveEnergy.VOLT_AMPERE_REACTIVE_HOUR, # reactive energy (varh)
SensorDeviceClass.REACTIVE_POWER: UnitOfReactivePower.VOLT_AMPERE_REACTIVE, # reactive power (var)
SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of vocs
SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # μg/m³ of vocs
SensorDeviceClass.VOLTAGE: "V", # voltage (V)
SensorDeviceClass.GAS: UnitOfVolume.CUBIC_METERS, # gas (m³)
}

View File

@@ -951,7 +951,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'a3a970ea-e09c-9c04-161b-94c934e21666_main_veryFineDustSensor_veryFineDustLevel_veryFineDustLevel',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[da_ac_airsensor_01001][sensor.eeomoniteo_peulreoseu_pm1-state]
@@ -960,7 +960,7 @@
'device_class': 'pm1',
'friendly_name': '에어모니터 플러스 PM1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.eeomoniteo_peulreoseu_pm1',
@@ -1004,7 +1004,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'a3a970ea-e09c-9c04-161b-94c934e21666_main_dustSensor_dustLevel_dustLevel',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[da_ac_airsensor_01001][sensor.eeomoniteo_peulreoseu_pm10-state]
@@ -1013,7 +1013,7 @@
'device_class': 'pm10',
'friendly_name': '에어모니터 플러스 PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.eeomoniteo_peulreoseu_pm10',
@@ -1057,7 +1057,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'a3a970ea-e09c-9c04-161b-94c934e21666_main_dustSensor_fineDustLevel_fineDustLevel',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[da_ac_airsensor_01001][sensor.eeomoniteo_peulreoseu_pm2_5-state]
@@ -1066,7 +1066,7 @@
'device_class': 'pm25',
'friendly_name': '에어모니터 플러스 PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.eeomoniteo_peulreoseu_pm2_5',
@@ -2820,7 +2820,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'F8042E25-0E53-0000-0000-000000000000_main_dustSensor_dustLevel_dustLevel',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[da_ac_rac_100001][sensor.corridor_a_c_pm10-state]
@@ -2829,7 +2829,7 @@
'device_class': 'pm10',
'friendly_name': 'Corridor A/C PM10',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.corridor_a_c_pm10',
@@ -2873,7 +2873,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'F8042E25-0E53-0000-0000-000000000000_main_dustSensor_fineDustLevel_fineDustLevel',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
})
# ---
# name: test_all_entities[da_ac_rac_100001][sensor.corridor_a_c_pm2_5-state]
@@ -2882,7 +2882,7 @@
'device_class': 'pm25',
'friendly_name': 'Corridor A/C PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.corridor_a_c_pm2_5',

View File

@@ -361,7 +361,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '400s-purifier-pm25',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
])
# ---
@@ -399,7 +399,7 @@
'device_class': 'pm25',
'friendly_name': 'Air Purifier 400s PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.air_purifier_400s_pm2_5',
@@ -547,7 +547,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': '600s-purifier-pm25',
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
])
# ---
@@ -585,7 +585,7 @@
'device_class': 'pm25',
'friendly_name': 'Air Purifier 600s PM2.5',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'µg/m³',
'unit_of_measurement': 'μg/m³',
}),
'context': <ANY>,
'entity_id': 'sensor.air_purifier_600s_pm2_5',

View File

@@ -262,7 +262,7 @@ async def test_xiaomi_hhccjcy01(hass: HomeAssistant) -> None:
cond_sensor_attribtes = cond_sensor.attributes
assert cond_sensor.state == "599"
assert cond_sensor_attribtes[ATTR_FRIENDLY_NAME] == "Plant Sensor 3E7A Conductivity"
assert cond_sensor_attribtes[ATTR_UNIT_OF_MEASUREMENT] == "µS/cm"
assert cond_sensor_attribtes[ATTR_UNIT_OF_MEASUREMENT] == "μS/cm"
assert cond_sensor_attribtes[ATTR_STATE_CLASS] == "measurement"
moist_sensor = hass.states.get("sensor.plant_sensor_3e7a_moisture")
@@ -351,7 +351,7 @@ async def test_xiaomi_hhccjcy01_not_connectable(hass: HomeAssistant) -> None:
cond_sensor_attribtes = cond_sensor.attributes
assert cond_sensor.state == "599"
assert cond_sensor_attribtes[ATTR_FRIENDLY_NAME] == "Plant Sensor 3E7A Conductivity"
assert cond_sensor_attribtes[ATTR_UNIT_OF_MEASUREMENT] == "µS/cm"
assert cond_sensor_attribtes[ATTR_UNIT_OF_MEASUREMENT] == "μS/cm"
assert cond_sensor_attribtes[ATTR_STATE_CLASS] == "measurement"
moist_sensor = hass.states.get("sensor.plant_sensor_3e7a_moisture")
@@ -438,7 +438,7 @@ async def test_xiaomi_hhccjcy01_only_some_sources_connectable(
cond_sensor_attribtes = cond_sensor.attributes
assert cond_sensor.state == "599"
assert cond_sensor_attribtes[ATTR_FRIENDLY_NAME] == "Plant Sensor 3E7A Conductivity"
assert cond_sensor_attribtes[ATTR_UNIT_OF_MEASUREMENT] == "µS/cm"
assert cond_sensor_attribtes[ATTR_UNIT_OF_MEASUREMENT] == "μS/cm"
assert cond_sensor_attribtes[ATTR_STATE_CLASS] == "measurement"
moist_sensor = hass.states.get("sensor.plant_sensor_3e7a_moisture")
@@ -653,7 +653,7 @@ async def test_hhccjcy10_uuid(hass: HomeAssistant) -> None:
cond_sensor_attr = cond_sensor.attributes
assert cond_sensor.state == "91"
assert cond_sensor_attr[ATTR_FRIENDLY_NAME] == "Plant Sensor 5BFC Conductivity"
assert cond_sensor_attr[ATTR_UNIT_OF_MEASUREMENT] == "µS/cm"
assert cond_sensor_attr[ATTR_UNIT_OF_MEASUREMENT] == "μS/cm"
assert cond_sensor_attr[ATTR_STATE_CLASS] == "measurement"
moist_sensor = hass.states.get("sensor.plant_sensor_5bfc_moisture")

View File

@@ -118,7 +118,7 @@ def test_deprecated_unit_of_conductivity_alias() -> None:
"""Test UnitOfConductivity deprecation."""
# Test the deprecated members are aliases
assert set(const.UnitOfConductivity) == {"S/cm", "µS/cm", "mS/cm"}
assert set(const.UnitOfConductivity) == {"S/cm", "μS/cm", "mS/cm"}
def test_deprecated_unit_of_conductivity_members(