1 """BleBox sensor entities."""
8 SensorEntityDescription,
12 CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
16 UnitOfElectricCurrent,
17 UnitOfElectricPotential,
28 from .
import BleBoxConfigEntry
29 from .entity
import BleBoxEntity
34 device_class=SensorDeviceClass.PM1,
35 native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
39 device_class=SensorDeviceClass.PM25,
40 native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
44 device_class=SensorDeviceClass.PM10,
45 native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
49 device_class=SensorDeviceClass.TEMPERATURE,
50 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
53 key=
"powerConsumption",
54 device_class=SensorDeviceClass.ENERGY,
55 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
56 state_class=SensorStateClass.TOTAL,
60 device_class=SensorDeviceClass.HUMIDITY,
61 native_unit_of_measurement=PERCENTAGE,
65 device_class=SensorDeviceClass.WIND_SPEED,
66 native_unit_of_measurement=UnitOfSpeed.METERS_PER_SECOND,
70 device_class=SensorDeviceClass.ILLUMINANCE,
71 native_unit_of_measurement=LIGHT_LUX,
74 key=
"forwardActiveEnergy",
75 device_class=SensorDeviceClass.ENERGY,
76 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
79 key=
"reverseActiveEnergy",
80 device_class=SensorDeviceClass.ENERGY,
81 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
85 device_class=SensorDeviceClass.POWER,
86 native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
90 device_class=SensorDeviceClass.POWER,
91 native_unit_of_measurement=UnitOfPower.WATT,
95 device_class=SensorDeviceClass.APPARENT_POWER,
96 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
100 device_class=SensorDeviceClass.VOLTAGE,
101 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
105 device_class=SensorDeviceClass.CURRENT,
106 native_unit_of_measurement=UnitOfElectricCurrent.MILLIAMPERE,
110 device_class=SensorDeviceClass.FREQUENCY,
111 native_unit_of_measurement=UnitOfFrequency.HERTZ,
118 config_entry: BleBoxConfigEntry,
119 async_add_entities: AddEntitiesCallback,
121 """Set up a BleBox entry."""
124 for feature
in config_entry.runtime_data.features.get(
"sensors", [])
125 for description
in SENSOR_TYPES
126 if description.key == feature.device_class
132 """Representation of a BleBox sensor feature."""
136 feature: blebox_uniapi.sensor.BaseSensor,
137 description: SensorEntityDescription,
139 """Initialize a BleBox sensor feature."""
145 """Return the state."""
146 return self._feature.native_value
150 """Return the time when the sensor was last reset, if implemented."""
151 native_implementation = getattr(self._feature,
"last_reset",
None)
153 return native_implementation
or super().last_reset
None __init__(self, blebox_uniapi.sensor.BaseSensor feature, SensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, BleBoxConfigEntry config_entry, AddEntitiesCallback async_add_entities)