Home Assistant Unofficial Reference 2024.12.1
datetime.py
Go to the documentation of this file.
1 """Demo platform that offers a fake date/time entity."""
2 
3 from __future__ import annotations
4 
5 from datetime import UTC, datetime
6 
7 from homeassistant.components.datetime import DateTimeEntity
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.core import HomeAssistant
10 from homeassistant.helpers.device_registry import DeviceInfo
11 from homeassistant.helpers.entity_platform import AddEntitiesCallback
12 
13 from . import DOMAIN
14 
15 
17  hass: HomeAssistant,
18  config_entry: ConfigEntry,
19  async_add_entities: AddEntitiesCallback,
20 ) -> None:
21  """Set up the demo datetime platform."""
23  [
25  "datetime",
26  "Date and Time",
27  datetime(2020, 1, 1, 12, 0, 0, tzinfo=UTC),
28  "mdi:calendar-clock",
29  False,
30  ),
31  ]
32  )
33 
34 
36  """Representation of a Demo date/time entity."""
37 
38  _attr_has_entity_name = True
39  _attr_name = None
40  _attr_should_poll = False
41 
42  def __init__(
43  self,
44  unique_id: str,
45  device_name: str,
46  state: datetime,
47  icon: str,
48  assumed_state: bool,
49  ) -> None:
50  """Initialize the Demo date/time entity."""
51  self._attr_assumed_state_attr_assumed_state = assumed_state
52  self._attr_icon_attr_icon = icon
53  self._attr_native_value_attr_native_value = state
54  self._attr_unique_id_attr_unique_id = unique_id
55 
56  self._attr_device_info_attr_device_info = DeviceInfo(
57  identifiers={
58  # Serial numbers are unique identifiers within a specific domain
59  (DOMAIN, unique_id)
60  },
61  name=device_name,
62  )
63 
64  async def async_set_value(self, value: datetime) -> None:
65  """Update the date/time."""
66  self._attr_native_value_attr_native_value = value
67  self.async_write_ha_stateasync_write_ha_state()
None __init__(self, str unique_id, str device_name, datetime state, str icon, bool assumed_state)
Definition: datetime.py:49
None async_set_value(self, datetime value)
Definition: datetime.py:64
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: datetime.py:20