跳转到内容

DS1307 时间源

你首先需要设置 I2C 组件。

# 配置示例
time:
- platform: ds1307
id: ds1307_time
  • address (可选,整数):手动指定 RTC 的 I²C 地址。默认为 0x68。
  • 基础时间配置 中的所有其他选项。

此动作触发将当前系统时间同步到 RTC 硬件。

NOTE

DS1307 组件不会写入 RTC 时钟,除非通过此动作显式触发。

on_...:
- ds1307.write_time
# 如果需要指定 DS1307 的 ID
- ds1307.write_time:
id: ds1307_time

此动作触发从 RTC 硬件同步当前系统时间。

NOTE

DS1307 组件默认每 15 分钟自动读取 RTC 时钟一次,并在从 RTC 读取有效时间戳时同步 系统时钟。(update_interval 可以更改。) 此动作可用于触发额外的同步。

on_...:
- ds1307.read_time
# 如果需要指定 DS1307 的 ID
- ds1307.read_time:
id: ds1307_time

在典型设置中,你至少会有一个额外的时间源来与 RTC 同步。这种 外部时间源可能并不总是可用的,例如由于网络连接有限。 为了拥有有效、可靠的系统时间,系统应在启动时读取一次 RTC,然后尝试 与外部可靠的时间源同步。 当与另一个时间源的同步成功后,可以重新同步 RTC。

esphome:
on_boot:
then:
# 系统启动时读取一次 RTC 时间
ds1307.read_time:
time:
- platform: ds1307
# 除非外部 RTC
# 比内部时钟准确得多,否则无需重复同步
update_interval: never
- platform: homeassistant
# 改为尝试通过网络重复同步……
on_time_sync:
then:
# ……并在同步成功后更新 RTC
ds1307.write_time: