Add another implementation of Weather Client using publicly-available weather API
Opened this issue · 0 comments
calvinmclean commented
Description
Add another implementation of weather.Client
that uses a publicly-available weather API to remove the current hardware barrier for weather-based watering.
Requirements
- Allow disabling certain features of the client (maybe disable rain data if an API doesn't provide reliable data). An option for implementing this would be to have multiple interfaces and use an assertion to check if methods are available. Other option is to have empty implementation of these methods.
- Add new interfaces to Weather Client to implement support for certain features: ForecastClient and HistoricalClient
Open Questions
- Consider adding support for multiple Weather Clients because this allows using
- This will be tricky to implement in a clean way
- Consider adding support for forecasting data instead of just historical data
- This relates to the requirement of adding clients that are partial implementations since some services might have forecast data only (or no forecast data)
- This also relates to multiple Weather Clients, especially if some are partial implementations