Add support for time zones and sunrise/sunset calculation #1840
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add support for time zones and sunrise/sunset calculation.
The System Clock class stores the local time and performs conversion to UTC.
This is the reverse of standard practice, and causes complications when timezones change.
This PR corrects this, and adds a port of the arduino Timezone class to provide rule-based
conversion between UTC and local times accounting for arbitrary time zones and daylight savings.
The SolarCalculator class is also included so that sunrise and sunset times can be calculated.
This is helpful for automation of lighting, for example.
The
SystemClock_NTP
sample has been updated to demonstrate all this.