1 """Sensor for monitoring the size of a file."""
3 from __future__
import annotations
5 from datetime
import datetime
11 SensorEntityDescription,
20 from .
import FileSizeConfigEntry
21 from .const
import DOMAIN
22 from .coordinator
import FileSizeCoordinator
24 _LOGGER = logging.getLogger(__name__)
29 translation_key=
"size",
30 native_unit_of_measurement=UnitOfInformation.MEGABYTES,
31 device_class=SensorDeviceClass.DATA_SIZE,
32 state_class=SensorStateClass.MEASUREMENT,
36 translation_key=
"size_bytes",
37 entity_registry_enabled_default=
False,
38 native_unit_of_measurement=UnitOfInformation.BYTES,
39 device_class=SensorDeviceClass.DATA_SIZE,
40 state_class=SensorStateClass.MEASUREMENT,
41 entity_category=EntityCategory.DIAGNOSTIC,
45 translation_key=
"last_updated",
46 entity_registry_enabled_default=
False,
47 device_class=SensorDeviceClass.TIMESTAMP,
48 entity_category=EntityCategory.DIAGNOSTIC,
52 translation_key=
"created",
53 entity_registry_enabled_default=
False,
54 device_class=SensorDeviceClass.TIMESTAMP,
55 entity_category=EntityCategory.DIAGNOSTIC,
62 entry: FileSizeConfigEntry,
63 async_add_entities: AddEntitiesCallback,
65 """Set up the platform from config entry."""
68 for description
in SENSOR_TYPES
73 """Filesize sensor."""
75 _attr_has_entity_name =
True
79 description: SensorEntityDescription,
81 coordinator: FileSizeCoordinator,
83 """Initialize the Filesize sensor."""
86 entry_id
if description.key ==
"file" else f
"{entry_id}-{description.key}"
90 entry_type=DeviceEntryType.SERVICE,
91 identifiers={(DOMAIN, entry_id)},
96 """Return the value of the sensor."""
97 value: float | int | datetime = self.coordinator.data[
float|int|datetime native_value(self)
None __init__(self, SensorEntityDescription description, str entry_id, FileSizeCoordinator coordinator)
None async_setup_entry(HomeAssistant hass, FileSizeConfigEntry entry, AddEntitiesCallback async_add_entities)