Home Assistant Unofficial Reference 2024.12.1
datetime.py
Go to the documentation of this file.
1 """Support for esphome datetimes."""
2 
3 from __future__ import annotations
4 
5 from datetime import datetime
6 from functools import partial
7 
8 from aioesphomeapi import DateTimeInfo, DateTimeState
9 
10 from homeassistant.components.datetime import DateTimeEntity
11 import homeassistant.util.dt as dt_util
12 
13 from .entity import EsphomeEntity, esphome_state_property, platform_async_setup_entry
14 
15 
16 class EsphomeDateTime(EsphomeEntity[DateTimeInfo, DateTimeState], DateTimeEntity):
17  """A datetime implementation for esphome."""
18 
19  @property
20  @esphome_state_property
21  def native_value(self) -> datetime | None:
22  """Return the state of the entity."""
23  state = self._state_state
24  if state.missing_state:
25  return None
26  return dt_util.utc_from_timestamp(state.epoch_seconds)
27 
28  async def async_set_value(self, value: datetime) -> None:
29  """Update the current datetime."""
30  self._client_client.datetime_command(self._key_key, int(value.timestamp()))
31 
32 
33 async_setup_entry = partial(
34  platform_async_setup_entry,
35  info_type=DateTimeInfo,
36  entity_type=EsphomeDateTime,
37  state_type=DateTimeState,
38 )