1 """Helpers for sensor entities."""
3 from __future__
import annotations
5 from datetime
import date, datetime
11 from .
import SensorDeviceClass
13 _LOGGER = logging.getLogger(__name__)
18 value: str, entity_id: str, device_class: SensorDeviceClass | str |
None
19 ) -> datetime | date |
None:
20 """Parse datetime string to a data or datetime."""
21 if device_class == SensorDeviceClass.TIMESTAMP:
22 if (parsed_timestamp := dt_util.parse_datetime(value))
is None:
23 _LOGGER.warning(
"%s rendered invalid timestamp: %s", entity_id, value)
26 if parsed_timestamp.tzinfo
is None:
28 "%s rendered timestamp without timezone: %s", entity_id, value
32 return parsed_timestamp
35 if (parsed_date := dt_util.parse_date(value))
is not None:
38 _LOGGER.warning(
"%s rendered invalid date %s", entity_id, value)
datetime|date|None async_parse_date_datetime(str value, str entity_id, SensorDeviceClass|str|None device_class)