1 """Support for Vilfo Router sensors."""
3 from dataclasses
import dataclass
8 SensorEntityDescription,
17 ATTR_API_DATA_FIELD_BOOT_TIME,
18 ATTR_API_DATA_FIELD_LOAD,
28 @dataclass(frozen=True, kw_only=True)
30 """Describes Vilfo sensor entity."""
35 SENSOR_TYPES: tuple[VilfoSensorEntityDescription, ...] = (
38 translation_key=ATTR_LOAD,
39 native_unit_of_measurement=PERCENTAGE,
40 api_key=ATTR_API_DATA_FIELD_LOAD,
44 translation_key=ATTR_BOOT_TIME,
45 api_key=ATTR_API_DATA_FIELD_BOOT_TIME,
46 device_class=SensorDeviceClass.TIMESTAMP,
53 config_entry: ConfigEntry,
54 async_add_entities: AddEntitiesCallback,
56 """Add Vilfo Router entities from a config_entry."""
57 vilfo = hass.data[DOMAIN][config_entry.entry_id]
59 entities = [
VilfoRouterSensor(vilfo, description)
for description
in SENSOR_TYPES]
65 """Define a Vilfo Router Sensor."""
67 entity_description: VilfoSensorEntityDescription
68 _attr_has_entity_name =
True
70 def __init__(self, api, description: VilfoSensorEntityDescription) ->
None:
75 identifiers={(DOMAIN, api.host, api.mac_address)},
76 name=ROUTER_DEFAULT_NAME,
77 manufacturer=ROUTER_MANUFACTURER,
78 model=ROUTER_DEFAULT_MODEL,
79 sw_version=api.firmware_version,
85 """Return whether the sensor is available or not."""
86 return self.
apiapi.available
89 """Update the router data."""
None __init__(self, api, VilfoSensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)