DS1307 Time Source¶
You first need to set up the I2C component.
# Example configuration entry time: - platform: ds1307 id: ds1307_time
address (Optional, int): Manually specify the I²C address of the RTC. Defaults to
All other options from Base Time Configuration.
This Action triggers a synchronization of the current system time to the RTC hardware.
The DS1307 component will not write the RTC clock if not triggered explicitly by this action.
on_...: - ds1307.write_time # in case you need to specify the DS1307 id - ds1307.write_time: id: ds1307_time
This Action triggers a synchronization of the current system time from the RTC hardware.
The DS1307 component will automatically read the RTC clock every 15 minutes by default and synchronize the
system clock when a valid timestamp was read from the RTC. (The
update_interval can be changed.)
This action can be used to trigger additional synchronizations.
on_...: - ds1307.read_time # in case you need to specify the DS1307 id - ds1307.read_time: id: ds1307_time
Full Configuration Example¶
In a typical setup, you will have at least one additional time source to synchronize the RTC with. Such an external time source might not always be available e.g. due to a limited network connection. In order to have a valid, reliable system time, the system should read the RTC once at start and then try to synchronize with an external reliable time source. When a synchronization to another time source was successful, the RTC can be resynchronized.
esphome: on_boot: then: # read the RTC time once when the system boots ds1307.read_time: time: - platform: ds1307 # repeated synchronization is not necessary unless the external RTC # is much more accurate than the internal clock update_interval: never - platform: homeassistant # instead try to synchronize via network repeatedly ... on_time_sync: then: # ... and update the RTC when the synchronization was successful ds1307.write_time: