1 """Support for Broadlink sensors."""
3 from __future__
import annotations
8 SensorEntityDescription,
14 UnitOfElectricCurrent,
15 UnitOfElectricPotential,
23 from .const
import DOMAIN
24 from .entity
import BroadlinkEntity
26 SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
29 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
30 device_class=SensorDeviceClass.TEMPERATURE,
31 state_class=SensorStateClass.MEASUREMENT,
35 device_class=SensorDeviceClass.AQI,
39 native_unit_of_measurement=PERCENTAGE,
40 device_class=SensorDeviceClass.HUMIDITY,
41 state_class=SensorStateClass.MEASUREMENT,
45 translation_key=
"light",
49 translation_key=
"noise",
53 native_unit_of_measurement=UnitOfPower.WATT,
54 device_class=SensorDeviceClass.POWER,
55 state_class=SensorStateClass.MEASUREMENT,
59 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
60 device_class=SensorDeviceClass.VOLTAGE,
61 state_class=SensorStateClass.MEASUREMENT,
65 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
66 device_class=SensorDeviceClass.CURRENT,
67 state_class=SensorStateClass.MEASUREMENT,
71 translation_key=
"overload",
72 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
73 device_class=SensorDeviceClass.CURRENT,
74 state_class=SensorStateClass.MEASUREMENT,
78 translation_key=
"total_consumption",
79 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
80 device_class=SensorDeviceClass.ENERGY,
81 state_class=SensorStateClass.TOTAL_INCREASING,
88 config_entry: ConfigEntry,
89 async_add_entities: AddEntitiesCallback,
91 """Set up the Broadlink sensor."""
92 device = hass.data[DOMAIN].devices[config_entry.entry_id]
93 sensor_data = device.update_manager.coordinator.data
96 for description
in SENSOR_TYPES
97 if description.key
in sensor_data
101 sensor_data[description.key] != 0
102 or device.api.type
not in {
"RM4PRO",
"RM4MINI"}
109 """Representation of a Broadlink sensor."""
111 _attr_has_entity_name =
True
113 def __init__(self, device, description: SensorEntityDescription) ->
None:
114 """Initialize the sensor."""
122 """Update the state of the entity."""
None __init__(self, device, SensorEntityDescription description)
def _update_state(self, data)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)