Clock and Timers

The pictures show two RTC modules which can be used with the core software, the DS1307 and the PCF8563, which are both battery backed for when power is withdrawn. 

The core software requires an RTC for when precisely timed module function executions are required and for displaying the time. Where an RTC module is connected, this is taken as the time and used. The MQTT server is expected to have an RTC publish queue to which the module can subscribe for time updates, and will either synchronise the local RTC with that time, or run a software version of the RTC, using that time.

The MQTT publish queue for time setting will need to be configured to provide sufficiently frequent updates to ensure sufficient accuracy is maintained.

If there isn't an RTC reference available, timed module executions will not be called, but relative executions and subscribed functions will continue to be called.

Software to implement these ideas can be viewed on github here