Home Assistant Unofficial Reference 2024.12.1
helpers.py
Go to the documentation of this file.
1 """Helpers for sensor entities."""
2 
3 from __future__ import annotations
4 
5 from datetime import date, datetime
6 import logging
7 
8 from homeassistant.core import callback
9 from homeassistant.util import dt as dt_util
10 
11 from . import SensorDeviceClass
12 
13 _LOGGER = logging.getLogger(__name__)
14 
15 
16 @callback
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)
24  return None
25 
26  if parsed_timestamp.tzinfo is None:
27  _LOGGER.warning(
28  "%s rendered timestamp without timezone: %s", entity_id, value
29  )
30  return None
31 
32  return parsed_timestamp
33 
34  # Date device class
35  if (parsed_date := dt_util.parse_date(value)) is not None:
36  return parsed_date
37 
38  _LOGGER.warning("%s rendered invalid date %s", entity_id, value)
39  return None
datetime|date|None async_parse_date_datetime(str value, str entity_id, SensorDeviceClass|str|None device_class)
Definition: helpers.py:19