Repo created

This commit is contained in:
Fr4nz D13trich 2025-11-21 15:11:39 +01:00
parent d6b5d53060
commit d90a1dc8df
2145 changed files with 210227 additions and 2 deletions

546
docs/CHANGELOG_4.x.md Normal file
View file

@ -0,0 +1,546 @@
# Version 4.6.14-beta (2023-01-07)
**Weather sources**
- [AccuWeather] Fix snow quantity being 10 times lower
- [AccuWeather] Request texts in Imperial units if precipitation unit in app is configured as inch
- [Météo-France] Fix normals (missing in January, shifted by one month on other months)
**Other improvements and fixes**
- Fix incorrect degree day in Fahrenheit
- Show 2 decimals instead of 1 when precipitation unit is inch
- Fix air quality index being always shown as 250 when index > 250
**Translations**
- Initial translation added for Hindi (thanks Chandra Mohan Jha!)
- Translations updated
# Version 4.6.13-beta (2023-01-03)
**Other improvements and fixes**
- Compute wet bulb temperature from approximate formula when data is missing
- Daily and tomorrow notifications: allow to expand to see full text (thanks @danielzhang130!)
- [Baidu IP location] Fix not working with default API key
- [Baidu IP location] Show a more specific error when API limit is reached
**Translations**
- Translations updated
**Technical**
- Targets SDK 34 (Android 14)
# Version 4.6.12-beta (2023-12-05)
**Weather sources**
- [Open-Meteo] Extend Air quality forecast to 7 days where available
**Other improvements and fixes**
- By default, Breezy Weather will no longer refresh in background if your battery is low. It used to be opt-in. It can still be disabled in settings.
- Possible improvements to the weather update in background for some devices
**Translations**
- Bosanski added (thanks @SecularSteve!)
- Dansk added (thanks @peetabix!)
- Translations updated
# Version 4.6.11-beta (2023-11-08)
**Other improvements and fixes**
- Fix some weather texts not being updated after a forced refresh after a language change
**Translations**
- Translations updated
# Version 4.6.10-beta (2023-10-20)
Due to a technical change, any existing alerts will be cleared when updating to this version. They will be back on your next weather refresh.
**Weather sources**
- [PirateWeather] Order alerts by priority
**Other improvements and fixes**
- Technical changes to try to make notifications of alerts more reliable when they are duplicate (send a new notification if the priority changed, for example)
- Fix weekly widgets opening wrong days if yesterday is reported (@Cod3dDOT)
- Fix missing unit and conversion on Notification-widget native style
**Translations**
- Croatian added (thanks @Spajki001!)
- Translations updated
# Version 4.6.9-beta (2023-10-10)
**Weather sources**
- Fix fail to refresh for some sources when locale uses a different numbering system than (Western) Arabic numbers.
**Translations**
- Swedish added (thanks P.O!)
- Kabyle added (thanks ButterflyOfFire!)
- Translations updated
# Version 4.6.8-beta (2023-09-23)
**Weather sources**
- [Open-Meteo] Add support for new current, with better accuracy (15 min vs 1 hour when possible), and additional current variables (previously extrapolated from hourly forecast)
**Translations**
- Translations updated
# Version 4.6.7-beta (2023-09-19)
- Fix issues with trend widgets (@Cod3dDOT)
- Fix issues encountered when sharing crash logs
- Translations updated
# Version 4.6.6-beta (2023-09-16)
**Behavior changes**
- Temperature unit will now follow locale preference if it was never defined. Example: you were using the app with the temperature unit set as Celsius (the previous default) in English (US). It will now switch to Fahrenheit (but you can still of course redefine it to something else). This change is mostly to help first-time users having directly their temperature in the unit that makes the most sense to them.
- No longer allow to switch day/night temperature order in widgets to remove a confusion about which night it is about
- “Day / Night” option for widget backgrounds was replaced by “Follow app preference” to improve consistency (@Cod3dDOT)
**Other improvements and fixes**
- Add an algorithm for weather icon computing for sources without weather icon by half days (@Cod3dDOT). MET Norway and Open-Meteo will benefit the most from it.
- [Gadgetbridge] Send additional data for versions 0.76+ (@joserebelo)
- GPS and live wallpaper are no longer marked as required Android features to avoid some issues installing the app on some devices
- Translations updated
# Version 4.6.5-beta (2023-09-01)
**Weather sources**
- [Open-Meteo] Add experimental support for precipitation in the next hour as a primary source (works best in Europe)
- [Open-Meteo] Add experimental support for precipitation in the next hour as a secondary source (works best in Europe)
- [Open-Meteo] Show pressure at sea level instead of surface pressure to make it consistent with other sources
- [MET Norway] Add cloud cover (@Cod3dDOT)
**Other fixes**
- [Gadgetbridge] Fix probability of precipitation (@Cod3dDOT)
- [Gadgetbridge] Fix daily forecasts (will only start from tomorrow now)
- [Notification-widget] Fix temperature icon in status bar not displaying if unit is set to Kelvin. Temperature icon in status bar is no longer supported on Android 5.0 and 5.1 due to technical constraints.
**Translations**
- Dutch translation completed (thank you @BabyBenefactor!)
- Hungarian translation completed (thank you Viktor Blaskó!)
- Initial support for Basque (thank you @desertorea!)
- Translations updated
# Version 4.6.4-beta (2023-08-21)
**New features**
- Experimental support for Gadgetbridge added (@Cod3dDOT)
**Other fixes**
- Fix current location unable to refresh if choosing a main source that has no reverse geocoding support
- Fix wrong radius for sun animation (@Cod3dDOT)
**Translations**
- Translations updated
# Version 4.6.3-beta (2023-08-20)
**Other fixes**
- Fix wrong threshold lines name on daily and hourly trends widgets
**Translations**
- Serbian translation completed (thank you @nexiRS!)
- Translations updated
# Version 4.6.2-beta (2023-08-18)
**Weather sources**
- [AccuWeather] Fix would report no alerts if at least one alert didnt contain a start or end time (can happen with flood alerts for example)
**Other fixes**
- Fix missing a day or two at the end of the daily forecast
- Fix crash when a location was not updated for more than "half the length of daily forecast" days
# Version 4.6.1-beta (2023-08-17)
**Weather sources**
- [Météo France] Alerts: add "Bulletin de Vigilance météo" support
- [Météo France] Alerts: add "Situation actuelle", "Prévisibilité et incertitudes" and other stuff like that to existing alerts
**Other fixes**
- Fix missing monochrome icon
# Version 4.6.0-beta (2023-08-16)
This new version introduces major changes in the way weather refreshes. While it brings nice new features with it, as there are now many different combination for weather sources that we cant fully test, we welcome your bug reports about any regression introduced in this version, so we can fix them before new release becomes stable.
**New data**
- Yesterday is now shown as a day in daily forecast (on supported sources).
- Temperature normals added (with a fallback to average temperature when not supported by source).
- As a consequence “yesterday temperature lines” have been replaced by “temperature normals lines”.
**Weather refresh**
- If weather source doesnt already provide it, app will now keep history back to yesterday 00:00. This will allow you to see details of the previous day, and will ensure a day is always full (daytime was notably missing on MET Norway source after 18:00). Works best 48 hours after a location has been added.
- When one or more secondary weather sources fail, app will refresh other sources that succeeded and restore cached data for failing sources. An error will still be displayed to inform you in case you need to take action.
- App will now tell you which source is failing.
- When changing a source, app will now automatically refresh data instead of expecting the user to force refresh manually.
- Secondary weather sources will no longer silently fail.
- Background update will now silently fail in the following cases to avoid unnecessary notification spam: network unavailable, server timeout. No weather update will happen.
- Background update will now silently fail in the following cases to avoid unnecessary notification spam: location permission missing (background location permission missing will still be reported), Android location not enabled, current location could not be found. Weather update will happen with previously found position. If current location was never found at least once, it will be reported as an error (will NOT silently fail).
- App will no longer show any message about data still being valid or refresh restrictions, it will automatically handle it, including merging still valid data with invalid data that just got refreshed (can happen when using multiple sources).
**Weather sources**
- [AccuWeather] Add support for temperature normals.
- [Météo-France] Add support for temperature normals.
- [Météo-France] Add support for temperature normals as a secondary source.
**Design**
- Logo got a refresh.
- Add a third place to the location list icon to not make it confusing with “itinerary” icon.
- A circled dot symbol is now shown next to location name on main screen if using current location.
**Other improvements and fixes**
- Fix incorrect alert source leading to crash in some cases.
- Required swipe distance to go to next location is now 50 % screen width (instead of 20 %) to make it less prone to errors.
- Current location will no longer wait 10 seconds to get a GPS fix if the info is available sooner
- Wind direction is fixed in hourly trends.
- Fix missing credits for secondary features when same as main source.
- Make alerts always take full width on alerts full page
**Translations**
- Initial support for Norwegian Bokmål added (thank you @Visnes!)
- Latvian translation is now complete (thank you Niks Rodžers!)
- Translations updated
# Version 4.5.4-beta (2023-08-10)
Some users reported issues with API limit reached, please check if you use OpenWeather or Pirate Weather as your main or secondary weather source!
Improvements to the error handling will be worked on for next major version.
**Weather sources**
- [PirateWeather] Bundled API key removed as monthly limit was reached on the 10th of the month (meaning it cant be used again before Sep 1st) and we dont want make false hopes to users by showing it in the list of available sources.
**Other fixes**
- Fix air quality data disappearing when allergen set as secondary source (but not air quality), and allergen data disappearing when air quality set as secondary source (but not allergen)
- Day / Night mode for locations has been moved to a new preference. It will also apply to some dialogs of the location now (others are still WIP).
- Change location list icon to use multiple place points instead of a bookmark (for "saved" locations)
- Fix clock icon tint on Android versions < 7.0
**Translations**
- Latvian translation added (thanks Eduards Lusts!), only app name translated for the moment
- Translations updated
# Version 4.5.3-beta (2023-08-08)
Emergency fix for current location not working on sources with reverse geocoding feature.
# Version 4.5.2-beta (2023-08-08)
**New features**
- Add Beaufort scale as an option for wind speed “unit”
**Weather sources**
- [HERE] Fix description of weather condition
**Other fixes**
- Fix live wallpaper being black after reboot
- Also apply "Yesterday line" option on widgets (@Cod3dDOT + @papjul)
- Fix cancelled weather sources changes being remembered (but not applied) on reopening preferences dialog
- Remove "Refresh" shortcut (feature no longer existed)
- Add abuse prevention mechanism
**Translations**
- Put AM/PM instead of :00 on hourly trends for devices configured to not use 24 hours system
- Translations updated
# Version 4.5.1-beta (2023-08-06)
**New features**
- Allow to change main source for a manually added location.
**Weather sources**
- [AccuWeather] Was not showing in secondary source list, fixed
- [MET Norway] Add weather text
- [OpenWeather] Add more days of air quality
**Other fixes**
- Fix wind direction on daily/hourly trends
- Fix some widgets crash when weather text was missing (detected on MET Norway)
- Fix wrong daytime/nighttime computing on some sources when location timezone is different than device timezone
- Add missing vertical scrolls for phones with small displays on location settings
**Translations**
- Some Open-Meteo weather texts were reworded to make it easier to make them common with other sources
- Dutch and Russian updated
# Version 4.5.0-beta (2023-08-04)
Due to a technical change, cached weather data will be cleared on update.
**New features**
- Support for secondary weather sources, allows you to complete missing data with other sources (air quality, allergens, precipitations by minute, alerts). Available from the “Edit” button in the footer of the main screen.
- IP.SB is now available as an alternative to GPS and Baidu IP Location. Its based on IP so it provides less accurate results than GPS, but its fast and provides rather close results in our experience. Use it if you would like to use current location without giving your exact GPS position to weather source.
- Add a setting to allow changing the default location search source for weather sources which dont have a location search feature.
- Add GeoNames as optional location search source. This source has fuzzy search support, but is rate-limited so only switch if you need it.
- Add privacy policy of app and sources in the About section (Info icon) of Settings
- Show licenses of our dependencies in the About section (@Cod3dDOT)
**Data**
- Initial implementation of wind gusts on compatible weather sources. Display only in daily details at the moment.
**Animations**
- When animations are disabled, it will now for some of them show static elements (clouds, sun, stars) (@Cod3dDOT)
- Reduce meteor spawning on clear night condition (@Cod3dDOT)
- Fix sensor stuttering (@Cod3dDOT)
- Fix Fog condition always showing Clear instead
**Weather sources**
- [HERE] Full support added (@Cod3dDOT)
- [Open-Meteo] Add air quality and allergens support as secondary source
- [AccuWeather] Add minutely and alerts support as secondary source
- [AccuWeather] Fix locations displayed in parenthesis (existing locations will need to be re-added)
- [AccuWeather] Fix missing location name when localized name was not available (will now fallback to English name)
- [AccuWeather] Fix allergens card being shown on countries where it is not supported
- [AccuWeather] Fix weather data refresh failure when using Developer portal
- [MET Norway] Add air quality and minutely support as secondary source
- [OpenWeather] Add minutely and alerts support as secondary source
- [OpenWeather] Fix precipitation probability (@Cod3dDOT)
- [Pirate Weather] Add minutely and alerts support as secondary source
- [Météo-France] Add minutely and alerts support as secondary source
- [ATMO AuRA] Is no longer provided as part of Météo-France. Needs to be added as a secondary source for compatible locations.
**Other fixes**
- Fix location no longer updated when tapped for the first time
- Fix contrast issue on Main screen Allergen card in some cases
- Fix "Material You - Current" widget not being resizable to 2 cells on height (@Cod3dDOT)
- Fix reverse geocoding would replace longitude and latitude of current location resulting in weather data for city coordinates instead of current coordinates
- Fix database keeping old "current location" weather data, making app data size grow
- Fix overwrite of weather data when "current location" and a manually added city shared the same city and weather source (issue particularly noticeable with AccuWeather)
**Translations**
- Slovak added (Kuko)
- Ukrainian added (@Cod3dDOT)
- Others updated
# Version 4.4.1-beta (2023-07-28)
- Add Allergens support for Open-Meteo source (Europe only at the moment). Allergens are different than AccuWeather ones (North America only).
- Uses universal scale for all allergens, regardless of weather sources
- New per-location settings dialog (will be improved in next versions)
- Allergens are now sorted by name
- Add support for Pirate Weather (thanks Cod3d.!)
- Fix crash on Android < 7.0
- Updated translations
# Version 4.4.0-beta (2023-07-25)
This version brings new logic that automatically completes missing data (for example, uses hourly data to extrapolate daily value for this data). This logic which was initially implemented per source is now transparently implemented for all sources. This means that even novice developers that want to add new sources will now be able to do it without having to care about that, making this task easier than ever.
If you notice any data that was available on v4.3.0-beta for a source and is now missing on v4.4.0-beta, please report it in a GitHub issue.
- When current details are missing from a source, app will now pick the closest hour forecast. Following this change, some sources will now have more current details.
- Sun & Moon & Moon phase is now available for all sources, it will be computed if data is missing from source.
- This fixes an issue with MET Norway where icons were always daytime on days 2+ due to missing sun info
- This also fixes many errors with midnight sun and polar night.
- Fix day and night temperature for OpenWeather which was completely broken and could show higher temperature at night than during the day.
- When dew point is missing and relative humidity and air temperature are available, it will be automatically computed.
- When degree day is missing, it will be calculated according to EU formula (check [Day details documentation](docs/DAY_DETAILS.md) for more info).
- When degree day is 0, it will no longer be shown.
- When temperature < 10 °C and wind speed > 4.8 km/h, and wind chill temperature is missing, it will be automatically computed.
- Fix top appbar/status bar visibility issues
- Make hourly trends less compressed.
- Add a “Help me choose” button on weather selection dialogs.
- Fix OpenWeather icons being always daytime.
- Fix alert list page was always scrolled to bottom
- When tapping on an alert (either from notification or from main screen), it will now jump to the top of this alert
- Fix cards no longer animated when entering screen
- Fix changing icon pack required a full restart of the app
- Revert swipe when trying to make the location list empty or cancelling a weather source update on current location.
- Remove clunky last daily forecast on Open-Meteo, MF, MET No, OpenWeather to avoid showing incomplete/incorrect data
- “Alerts to follow” message will no longer take you to past alerts, and alert list page will no longer show past alerts
- Fix contrast issue with next hour precipitation graph in light theme
- Fix search failure on Open-Meteo / GeoNames when country code was empty (Antarctica, for example)
- Updated translations.
# Version 4.3.0-beta (2023-07-20)
/!\ Custom API keys were reset in this version, following a move to a separate config store from the main app /!\
- [Regression fix] Sometimes, app would get stuck refreshing. It should no longer happen now.
- [Regression fix] If app fails to find current location, it will now refresh weather data for latest known position. In background, it will silently ignore error, while on main screen, it will show a snackbar to let user know that while it was refreshed, there was a problem finding current position.
- Add “start on boot” workaround for non-standard devices (such as MIUI) which didnt have background workers resume after reboot
- Weather source for current location can now be chosen directly from the location list instead of going to settings, which was unintuitive and could be confusing.
- Add no network error on location search
- Throw error when trying to locate outside China when using Baidu IP location, instead of positioning on 0, 0
- Update resident feature to work with a 20 km radius instead of relying on 0.8 degrees.
- 中国 provider search now allows you to search for Chinese cities by its English name.
- [Technical] Many improvements to providers implementation for developers
- Added Kurdish Sorani translation (thanks anyone00!)
- Updated translations
# Version 4.2.1-beta (2023-07-16)
- Bring back detailed error (API key missing, API limit reached, no network, etc) on refresh failure instead of just “Weather failed”
- Added more errors (server timeout, failed to find location within reasonable time, parsing error, etc)
- Added detailed error for the location search as well
- Every setting change forced refreshing weather data, now it will only happen on language change or on current location provider change to avoid unnecessary refreshes
- Fix widgets were force refreshing weather data
- Fix issue when adding widgets
- Updated translations
# Version 4.2.0-beta (2023-07-15)
Background updates logic was entirely rewritten in this version.
- Refresh progress is now displayed in notification when weather update is happening
- If there are locations which failed to refresh in background, a notification will inform you and you will be able to access an error log for details (experimental).
- When having multiple locations, refreshes are done in parallel
- A preference was added to be able to ignore background refreshes when battery is low
- Today and tomorrow forecast notifications are now sent even if network is not available at requested time
- Fix alert notification logic being executed multiple times resulting in same alert being sent multiple times (this doesnt fix duplicate alerts emitted as different alerts by AccuWeather).
- Fix app bar was not completely disappearing on main screen when scrolling fast
- Added Lithuanian translation (thanks Deividas Paukštė!)
- Updated translations
# Version 4.1.3-beta (2023-07-14)
- Add Nowcast for Nordic Area on MET No provider
- Add Air Quality for Norway on MET No provider
- Fix "Tap here to see alerts" not working
- Fix alert colors sometimes having low contrast
- Migrate to new sunrise API version for MET No, fix weather not being able to refresh when there were two moon rise during the same day
- Fix incorrect data being displayed in daily/hourly trends when data was unavailable (data from previous hours/days was being redrawn)
- Daily/Hourly trends will no longer show 0 when data is unavailable
- Fix lines being disconnected when weather icon is missing in daily/hourly trends
- Add "No direction" icon for wind on daily/hourly trends
- Keep moonrise/set and phase only for first day on Météo-France, instead of reusing data from first day on all days
- Fix precipitation talkback was always saying "No precipitation" in Daily precipitation trend
- Restore scroll behavior from Geometric Weather on main screen
- Fix display of refresh time on main screen on tablets
- Only display translators of the current language in settings
- Fix incorrect night temperature on OpenWeather and MF providers
- Fix Vietnamese language was not showing
- Added Bulgarian translation (thanks elgratea!)
- Updated translations
# Version 4.1.2-beta (2023-07-11)
- The following data can now handle decimals: temperatures (including all feels like temperature), dew point, UV index. Due to the technical nature of the change, existing cached data will be deleted on update and will be available again on next refresh.
- Alerts are now more visible and alert color is used when the weather provider supports it
- Add more info when tapping on air quality card or specific pollutant
- Cards now show on top right at what time they apply
- Make top bar small center aligned for location list, which fixes a stuttering issue at the same occasion
- Location search will now show advices if there are no search results instead of doing nothing
- No longer ask for notification permission (Android 13+) when adding location, show a dismissible info on location list instead
- Add additional settings from Android app info
- Fix Chronus icon packs not working
- Revert let Android 13 users revoke their permissions
- Translation updates
# Version 4.1.1-beta (2023-07-09)
- Location list is now empty on first install and app only requires location permissions if user wants to add its current location
- Add a dialog box for notification permission request
- Fix systematic crash on opening app on Android below R.
- Update Vietnamese translation.
# Version 4.1.0-beta (2023-07-08)
- Most of the code has been rewritten in Kotlin, which will make the app more reliable in the future.
- All notification channels are now declared on startup, so you can disable them before receiving at least one notification.
- Add precipitations in next hour for China provider.
- Fix current location not working for some providers.
- Fix crash in daily view when air quality is not available.
- Fix readability for Update method setting.
- Fix Beijing sometimes being added as location.
- Fix semi colon spacing in Hourly dialog.
- Fix Today sometimes not showing on the right column in notification-widget.
- Many null-safety checks added to avoid potential crashes, especially in widgets.
- Fix tap on a day on week widget didnt open day detail if view style was 5 days.
- Fix dont open location list when tapping on alerts.
- Fix first letter of weather text is not capitalized with OpenWeather provider.
- Fix wallpaper settings not opening in some cases.
- Fix tile not collapsing after being tapped on.
- Fix sensor was always queried regardless of gravity sensor preference.
- Fix weather data refresh when hourly temperature is partially available from API.
- Translation updates, Vietnamese added (thanks minb!).
- Support for weather data on cLock on CyanogenMod 5.0 was removed (unmaintained dependency, Im not even sure it still worked).
# Version 4.0.5-alpha (2023-06-29)
- Add troubleshooting settings.
- Add more AccuWeather settings.
- Make widgets reconfigurable on recent Android versions.
- Update German, Italian and Portuguese (Brazil) translations.
- Fix location search results for AccuWeather (province was saved as city name, and city as district). Already existing locations must be re-added.
- Add small Celsius/Fahrenheit unit for temperature on main screen header.
- Fix back button in location list.
- Fix switch for Persistent notification widget
- Fix disabled settings could be switched on/off
- Fix could not re-add hourly air quality trend
- Last weather provider used for location search is now remembered.
- Dont display Details/Live card if there is no data to display.
- Replace direction with arrow in wind short descriptions to help a bit in tight spaces.
- Various fixes and code improvements.
# Version 4.0.4-alpha (2023-06-26)
- Add current, hourly and daily air quality for Open-Meteo with credits.
- New settings organization and better wording. Some settings were reset to default.
- Fix daily trends and hourly trends configuration.
- Fix icon packs link.
- Fix some contrasts issues.
# Version 4.0.3-alpha (2023-06-25)
- Add current, hourly and daily air quality for AccuWeather.
- Add more detailed error messages.
- Fix icon color in light mode.
- Fix details not showing when all details were removed from header.
# Version 4.0.2-alpha (2023-06-25)
- Current details shown on header can now be configured in settings. Details not shown on header will display in the Details card.
- Fix refresh time not updating
- Update icons
- Make background immersive when app is loading
- Translation updates: Chinese (simplified), German
# Version 4.0.1-alpha (2023-06-24)
- Translation available from Weblate
- Make dividers thinner on main screen
- Fix vertical alignment of refresh time on main screen
- Fix monochrome icon
- Optimize new icons
- Require a restart when changing "Background animation" or "Gravity sensor" settings
# Version 4.0.0-alpha (2023-06-21)
Initial version of Breezy Weather fork
- New providers (Open-Meteo, MET Norway)
- Additional data for other providers
- New header design for main screen
- More Material 3 components
- Add hourly air quality
- Add Plume AQI scale for air quality widget
- Allow to disable background animation
- Documentation
- Translation updates thanks to contributors
- Tons of fixes
- Many non-visible improvements to the code

796
docs/CHANGELOG_5.x.md Normal file
View file

@ -0,0 +1,796 @@
# Version 5.4.8 (2025-06-22)
**Improvements and fixes**
- Add “Open in another app” in home screen action bar, to allow viewing the exact coordinates of the location in a maps application.
- Add back alternate calendar to Daily details screen
- Fix wrong valid time indication for the Air quality card
- Show an error message when trying to add twice the same location with the same forecast source
**Weather sources**
- [CWA] Removed trust in HiPKI by Chunghwa Telecom Certificate Authority, following upstream change of CA
- [Nominatim] Fix not showing up in the `freenet` flavor
- [NWS] Will now report an error when data from the observation station is outdated, and fallback to current hour forecast data, instead of displaying outdated “current” info
- [Pirate Weather] Now available in the `freenet` flavor (was open sourced a few months ago)
- [Pirate Weather] Fix incorrect units for precipitation
**Translations**
- Translations updated
- Translation added and completed for Thai (@wwwwwwari, @achn-syps)
# Version 5.4.7 (2025-04-28)
**Improvements and fixes**
- Fix for “Network unavailable” when using VPN on Android < 10
- Fix for word-break to new line when using a custom system font (Samsung or Motorola devices for example)
**Weather sources**
- [Atmo France] fix for no pollen in Paris, Marseille and Lyon
- [CWA] Fix failure to refresh due to server side changes on 2025-04-28
- [CWA] Fix failure to refresh on Android < 14
- [Open Meteo] Update weather model list (adds KMA, migrate deprecated models)
**Translations**
- Translations updated
# Version 5.4.6 (2025-04-19)
**Improvements and fixes**
- Background update will no longer execute when VPN is on, but no other Internet-providing transport is enabled
- Background update errors will now be grouped by location
- When changing an unit, widgets will now update automatically, instead of waiting for the next refresh to apply the new units
- Adjusted thresholds for pollen levels of alder, birch, grass, mugwort, olive and ragweed
**Weather sources**
- [Atmo France] added as new Pollen source for France (still early, may not work in all regions)
**Translations**
- Translations updated
**Technical**
- [Android] Improved current location request (@min7-i)
# Version 5.4.5 (2025-03-03)
**Improvements and fixes**
- Fix refreshing errors (and potential missing place name) in the following case: using current location + using Android as location source + using country-specific sources + position remained the same
**Translations**
- Translations updated
# Version 5.4.4 (2025-03-02)
**Improvements and fixes**
- Fix crash of the nowcasting chart in some cases resulting in app always crashing on opening
**Accessibility**
- Fix content description of the nowcasting chart
**Translations**
- Translations updated
# Version 5.4.3 (2025-02-28)
**New features**
- Address lookup source: allows to choose a source different from forecast source for address lookup of current location. Docs were updated to use the terms “address lookup” where it was previously called “reverse geocoding”
**Removed features**
- [Live Wallpaper] Removed animations to fix an abnormal memory/power consumption. If you have expertise with shaders, please check #1665 for a possible way to bring them back
**Improvements and fixes**
- Add support for devices with 16 KB page sizes
- The location list drawer will now always be closed by default if you only have 1 location (@DogacTanriverdi)
- [Alert screen] Allow to select the description of the alert to copy it
**Weather sources**
- [Android Geocoder] added as possible Address lookup source on devices supporting it
- [MET Norway] fix missing as possible current source in some cases
- [Nominatim] added as possible Address lookup source
- [SMHI] fix failing to refresh in some cases (manually added locations will need to be re-added)
**Accessibility**
- Main screen: details in header should now be read in the correct order by screen readers
- Main screen: fix, clicking on a day or an hour will now correctly open details on screen readers
- Main screen: improved content description of detail items, daily and hourly trend items
- Main screen: removed unused ability to tap on cards which was confusing for screen readers
- Main screen: add detailed content description of the nowcasting chart
- Main screen: make daily/hourly tabs appear as tabs in screen readers
- Main screen: added headlines to allow for quick jump between cards, on Android >= 9
- Daily details screen: improved content descriptions
- Alerts: improved content description (in Main screen and Detailed alerts screen)
- Temperature units will now be read as "degree celsius" instead of "degree C" on Android >= 7
**Translations**
- Translations updated
# Version 5.4.2 (2025-02-08)
**Improvements and fixes**
- Refresh errors are now detailed again (regression introduced in v5.3)
- Redesigned daily details screen to be more in line with the rest of the app
- Added tabs to the daily details screen to switch more easily between days
- Redesigned cards in location list to be more in line with the rest of the app
- Locations with currently active alerts will now be highlighted
- Last update of the location will be displayed on outdated locations (based on configured refresh rate)
- Removed less relevant information from the location card
- Added ability to customize the name of a manually added location (in Edit location > Location preferences)
- Improve user experience of settings requiring the notification permission (@min7-i)
- Fix main screen displaying an incorrect current temperature, when the location has never been refreshed and forecast source failed to refresh
**Weather sources**
- [Open-Meteo] Fix snow quantity reported 10 times too low
- [AccuWeather] Fix missing pollen when not using AccuWeather as forecast source
- [AccuWeather] Fix missing forecast when using Developer portal (custom API keys)
- [CWA] Fix daily bulletin not being displayed in some cases (@chunshek)
- [HKO] Ignore non-sense values sent by the server (@chunshek)
**Translations**
- Translations updated
- Fix 12-hour formatting in Korean (only on Android >= 7)
# Version 5.4.1 (2024-01-03)
**Improvements and fixes**
- Fix crash of Weather source settings screen
**Weather sources**
- [ATMO GrandEst] Fix missing default key in release builds
- [Atmo Hauts-de-France] Fix missing default key in release builds
- [AtmoSud] Fix missing default key in release builds
**Translations**
- Translations updated
# Version 5.4.0 (2024-12-28)
**Improvements and fixes**
- Greatly improve weather update time, especially when using different sources on a single location (see technical section for details)
- Sources not configured will now be shown as disabled in the source list so that you know they exist
- When adding current location, you will no longer be able to select a source only compatible with some parts of the world. You will need to have your position found with a worldwide source at least once first.
- App will now report more strictly errors if you are using a non-compatible source (please report any false positive)
- It's now possible to always being able to select “None” as an option for air quality, pollen, nowcasting, alerts, normals sources.
- Fix normals not working in some cases
- “Location access is off” error introduced in v5.3 will no longer be reported when running in background
**Weather sources**
- [AccuWeather] When alerts by coordinates is unavailable, it will now fallback to alerts for your city instead of failing completely
- [ATMO GrandEst] Added as a new source for air quality in Grand Est (France)
- [Atmo Hauts-de-France] Added as a new source for air quality in Hauts-de-France (France)
- [AtmoSud] Added as a new source for air quality in Provence-Alpes-Côte dAzur (France)
- [EKUK] Added as a new source for air quality in Estonia (@chunshek). Pollen will come later this year
- [EPD] Added as a new source for air quality in Hong Kong (@chunshek)
- [Ilmateenistus] Added as a new source for forecast in Estonia (@chunshek)
- [Météo-France] Add support for alerts in oversea territories
- [Météo-France] Fix alert error when refreshing at midnight
- [Météo-France] Deduplicated bulletin when the bulletin is the same for today and tomorrow
- [Météo-France] Add back support for normals in France, Monaco and Andorra
**Translations**
- Translations updated
- Fixed duplicate Indonesian and Hebrew languages in the standard flavor
**Technical**
- Major refactoring of sources to merge main and secondary sources logic
- Improved weather update process time by optimizing date parsing functions
- Improved weather update process time by running all sources of the location in parallel
- Remove refreshing locations in parallel in background in favor of previous point
- Optimized filesize of the Natural Earth offline geocoding
# Version 5.3.1 (2024-12-12)
**Improvements and fixes**
- Fix being notified of an older stable version when running a pre-release version
- Fix daily urticaceae value
**Weather sources**
- [ATMO AURA] Fix source no longer showing up in the region it is supported
- [BrightSky] Fix not working when using it as a secondary current source
- [CWA] Emergency fix for unscheduled server side change (@chunshek)
**Translations**
- Translation added for Irish (Aindriú Mac Giolla Eoin)
- Translation completed for Tamil (தமிழ் நேரம்)
- Translations updated
# Version 5.3.0 (2024-12-07)
**New features**
- Current weather source: It is now possible to select a “current weather” source different from the main (forecast) source
- Added support for more administration levels (province, regions, county, departments, etc) on locations. Existing manually added locations will need to be re-added
- Added night sky background for splash screen when using the app in dark mode (@min7-i)
**Improvements and fixes**
- Sources are now split by continents in the source dialog to make it easier to find a specific national source
- Sources now contains the country they are from in their name when relevant (@chunshek)
- When a source failed to refresh a specific feature, Breezy Weather will now attempt to continue refreshing other features while restoring the old data for failed features, when possible. A non-blocking error message mentioning the failed feature(s) will be visible in that case.
- Fix no error message when location permission was previously denied (@min7-i)
- New refresh error message: “Location access is off” when permission is granted but system disabled (@min7-i)
- Main screen is now able to show more than one error at a time (instead of only displaying the first one) (@min7-i)
- Allow to reset sources instance URL config by clearing it
- Nowcasting chart: honor disabled “Threshold lines on charts” preference
- Show minutes on the hourly chart on 24-hour system, so that users from a “not rounded hour” timezone such as India can see the correct minute
- Fix dialogs theme on main screen (@min7-i)
- Fix location preferences dialog being cut on small screens (@min7-i)
- Fix snackbar no longer appearing after changing some preferences in some cases (@min7-i)
- Fix snackbar appearing above some items (@min7-i)
- Fix freeze after applying some settings in some cases (@min7-i)
- Fix dark mode theme not immediately applied in the location list (@min7-i)
- Various fixes of alignment on tablets and/or landscape mode (@min7-i)
- Fix margin issues on today/tomorrow notifications on old Android versions (@min7-i)
- Fix dark mode not immediately changed on Edit location screen in case Dark mode setting is changed (@Mushfiq1060)
- Fix duplicate drawer + location list icons in portrait mode on tablets in some cases (@ecawthorne)
- Fix hourly pressure tab disappearing when pressure for the whole period is either all below or all above normal pressure threshold
- Fix hourly tabs disappearing sometimes (@ccyybn)
**Weather sources**
- **Worldwide**
- [Open-Meteo] Add KNMI, DMI and UK Met Office as options for specific weather model to use
- [WMO SWIC] Add support for more alert details (full description, instructions, translations) for most countries. Work remains to be done in some countries such as India or Argentina.
- **Africa**
- [ANAM-BF] Added as a secondary alert source option for Burkina Faso. Also available in freenet flavor (@chunshek)
- [ANAMET] Added as a secondary alert source option for Togo. Also available in freenet flavor (@chunshek)
- [DCCMS] Added as a secondary alert/normals source option for Malawi. Also available in freenet flavor (@chunshek)
- [DMN] Added as a secondary alert/normals source option for Niger. Also available in freenet flavor (@chunshek)
- [DWR] Added as a secondary alert source option for Gambia. Also available in freenet flavor (@chunshek)
- [EMI] Added as a secondary alert/normals source option for Ethiopia. Also available in freenet flavor (@chunshek)
- [GMet] Added as a secondary alert source option for Ghana. Also available in freenet flavor (@chunshek)
- [IGEBU] Added as a secondary alert source option for Burundi. Also available in freenet flavor (@chunshek)
- [INM-GB] Added as a secondary alert source option for Guinea Bissau. Also available in freenet flavor (@chunshek)
- [Mali-Météo] Added as a secondary alert source option for Mali. Also available in freenet flavor (@chunshek)
- [Météo Bénin] Added as a secondary alert/normals source option for Bénin. Also available in freenet flavor (@chunshek)
- [Météo Tchad] Added as a secondary alert/normals source option for Chad. Also available in freenet flavor (@chunshek)
- [Mettelsat RDC] Added as a secondary alert source option for DR Congo. Also available in freenet flavor (@chunshek)
- [MSD] Added as a secondary alert source option for Zimbabwe. Also available in freenet flavor (@chunshek)
- [SMA Seychelles] Added as a secondary alert/normals source option for Seychelles. Also available in freenet flavor (@chunshek)
- [SMA Sudan] Added as a secondary alert source option for Sudan. Also available in freenet flavor (@chunshek)
- [SSMS] Added as a secondary alert source option for South-Sudan. Also available in freenet flavor (@chunshek)
- **Asia**
- [BMD] Added as a main source option for Bangladesh (@chunshek)
- [BMKG] Added as a main and secondary current/alert/air quality source option for Indonesia (@chunshek)
- [CWA] Ensure the source will still work after CWA planned changes for after 2024-12-10 (@chunshek)
- [CWA] Optimized refresh time (@chunshek)
- [CWA] Add support for daily bulletin (@chunshek)
- [CWA] Fix wind speed when >= 11 m/s (@chunshek)
- [Hong Kong Observatory] Added as a main and secondary current/alert/normals source option for Hong Kong (@chunshek)
- [IMD] Added as a main source option for India (@chunshek)
- [JMA] Added as a main and secondary current/alert/normals source option for Japan (@chunshek)
- [MGM] Added as a main and secondary current/alert/normals source option for Türkiye (@chunshek)
- [NAMEM] Added as a main and secondary current/normals/air quality source option for Mongolia. (@chunshek)
- [PAGASA] Added as a main source option for Philippines (@chunshek)
- [SMG] Added as a main and secondary current/alert/air quality/normals source option for Macau. (@chunshek)
- **Europe**
- [AEMET] Added as a main and secondary current/normals source option for Spain (@chunshek)
- [IMS] Added as possible current source + add weather texts support + various improvements (@chunshek)
- [IPMA] Added as a main and secondary alert source option for Portugal (@chunshek)
- [LHMT] Added as a main and secondary current/alert source option for Lithuania (@chunshek)
- [LVĢMC] Added as a main and secondary current/alert source option for Latvia (@chunshek)
- [MET Norway] Fix alerts not working when used as a secondary source
- [Met Office] Added as a main source option for United Kingdom. Requires an API key. (@bunburya)
- [MeteoLux] Added as a main and secondary current/alert source option for Luxembourg. (@chunshek)
- [Météo-France] Add support for next-day alerts
- **North America**
- [NWS] Added as possible current source for United States (@chunshek)
- [NWS] Various improvements in daily data, weather texts and alerts (@chunshek)
- Miscellaneous
- Add translation for a few source names and privacy policies
- Location presets updated for some countries following the addition of many weather sources (@chunshek)
**Translations**
- Translations updated
**Technical**
- Update to targetSdk 35
- Refactoring + new features in sources
# Version 5.2.8 (2024-09-15)
**Improvements and fixes**
- Show precipitation probability when > 0 % (previously > 5 %)
- [Tablet] If the location list is not empty, it will no longer open by default in portrait mode on tablets with large resolution
**Sources**
- [MET Norway] Add support for alerts in Norway-only as main or secondary source (API is in beta, so might not be perfectly reliable)
- [Open-Meteo] Fix precipitation nowcasting values being 4 times lower than expected
- [ECCC] Fix failure to refresh when wind direction received from observation station is empty
- [Gadgetbridge] Add missing fields (wind, UV, precipitation probability) (@joserebelo)
**Translations**
- Translations updated
# Version 5.2.7 (2024-08-08)
**Improvements and fixes**
- Change of behavior: on Android 10+, by default, day/night mode for locations is no longer enabled.
- Add temperature normals in the daily detailed view
- Fix trailing whitespaces returning inconsistent search results (@mags0ft)
- Fix location permission dialog being shown twice when resuming app (@ecawthorne)
- Fix prompt for background location permission not being shown
- Cards fade in and other elements preferences cant work if animations are disabled at Android system level, greying out these options in this case (@ecawthorne)
- Add the app to the weather category. Might be useful for assistants or launchers. (@devycarol)
**Sources**
- [Servizio Meteo AM] Fix some failures to refresh (@chunshek)
- [Open-Meteo] Fix precipitation nowcasting when used as a secondary source (@min7-i)
- [China] Fix very small values in the nowcasting chart
- [Baidu IP location] Show “API unauthorized” error message when API key is invalid, instead of “Failed to find current location”
**Translations**
- Initial translation added for Occitan (mercé Quentin!)
- Translations updated
# Version 5.2.6 (2024-07-17)
**New features**
- [Standard version] Add an option to periodically check for app updates in the background. Available from `Settings` > `Background updates`. Disabled by default.
- Allow to manually check for updates from `Settings` > `About` (icon). In the `freenet` flavor where non-free networks are not allowed, the button only asks to open the link in an external browser.
**Improvements and fixes**
- Fix title not changing when going in a subcategory of settings (@min7-i)
- Fix crash in old Android versions when trying to set location permissions that dont exist (@min7-i)
**Sources**
- [Servizio Meteo AM] Added as a possible primary source (@chunshek)
- [AccuWeather, IMS] Fix text not being in Hebrew when selected language is Hebrew
- Updated recommendations for new locations (existing locations must be modified manually, or re-added):
| Location | Source type | Old | New |
|----------|-------------|------------|-------------------|
| Italy | Main source | Open-Meteo | Servizio Meteo AM |
# Version 5.2.5 (2024-06-27)
**Improvements and fixes**
- Add apparent temperature computing when missing (@chunshek). Will generally improve feels like temperature, as it avoids fallback to the -less useful- wet bulb temperature.
- Improve wind chill computing (@chunshek).
- Fix wrong category for UV when between two categories in some cases
- Add one more decimal precision to the following pressure units: inHg, atm, kgf/cm²
- Fix a day shift on some sources when adding a location from a different timezone that is already “tomorrow”
- Fix hourly feels like not working in some cases
- Fix “Edit location” dialog theme (@min7-i)
- Fix day/night theme not respecting sunset/sunrise in alerts and pollen pages (@min7-i)
- Recompute sun and moon data when sources return data from the wrong day (fixes some places being always “nighttime”)
**Sources**
- [CWA] Added as available experimental main source in Taiwan (@chunshek)
- [CWA] Added as available experimental secondary source in Taiwan for air quality, alerts and normals (@chunshek)
- [NWS] Fix parsing issues when probability of thunder contains decimals
- [Météo-France] Fix not showing as a suggested normals secondary source when not using Météo-France as main source
- [ECCC] Fix refreshing issues in locations observing midnight sun
- [China] Fix hourly forecast being shifted by one hour (@JiunnTarn)
- [Open-Meteo] Disable ability to select more than one model at a time which would result in a failure to refresh
**Translations**
- Translations updated
- Hebrew translation added and completed (@nvurgaft, Doge)
- Initial translation for Galician added (@adrianhermida)
# Version 5.2.4 (2024-06-01)
**Improvements and fixes**
- Reorganized location list actions
- Fix back button not correctly intercepted in widget config on Android >= 13 (@min7-i)
- Fix notification-related settings not propagated immediately on Android >= 13 (@min7-i)
- Fix today/tomorrow notification being silent on some devices (@min7-i)
- Reduce lag on refresh on low-end devices/slow sources (@jayyuz)
- Fix another crash case when sending data to Gadgetbridge (@kosmoz)
**Translations**
- Translations updated
- Dansk translation completed (thanks Rasmus!)
# Version 5.2.3 (2024-05-05)
**Improvements and fixes**
- Fix nowcasting values on sources with values 10-minute by 10-minute or more
- [Alert page] Status bar black text on dark background when theme is light with day/night mode enabled (@suyashgupta25)
- Adjust contrast of some caption texts in dark mode (@suyashgupta25)
**Sources**
- [Open-Meteo] Allow to select “GFS GraphCast” model individually
- [AccuWeather] Prevent user from selecting incompatible preferences
**Translations**
- Translations updated
- Initial translation added for Bengali (thanks Manab Ray!)
# Version 5.2.2 (2024-04-24)
**Improvements and fixes**
- Cap refresh rate of live wallpaper to 60 Hz, to avoid consuming too much battery
**Sources**
- [GeoSphere Austria] Fix precipitation values
- [Pirate Weather] Fix parsing error due to server changes
**Translations**
- Translations updated
- Tamil added (thanks Naveen!)
# Version 5.2.1 (2024-04-20)
**Improvements and fixes**
- We no longer send notifications for alerts with minimal to no known threat to life or property, to avoid spamming in some countries where these kind of alerts are sent daily. Alerts with unknown severity may still be sent.
- Moved “Edit location” button from footer to a pencil icon on top right
- Fix sun or moon not showing in ephemeris card with some sources when the sun/moon is setting the day after
- Fix crash when sending data to Gadgetbridge in some cases
- Fix moving to next location when swiping on the nowcasting chart (@min7-i)
**Translations**
- Translations updated
- Fix formatting of Chinese calendar day of the month (@CoelacanthusHex)
# Version 5.2.0 (2024-04-15)
**IMPORTANT changes**
- `gplay` flavor was removed, Fused location is now available natively in all flavors for Android >= 12 with no proprietary library. Migration path: use the `standard` flavor
- `fdroid` flavor was renamed `freenet` to avoid confusion with the store. Obtainium users need to take action to change their regular expression to catch the new name
- OpenWeatherMap OneCall API will no longer be available without requiring billing information in June 2024. As a consequence, we switched to other endpoints that unfortunately dont support alerts and minutely. You will have to use a different secondary source if you want to keep receiving these info. If you use a custom API key, you might want to make sure your API key is subscribed to the following products: Current and 3-hourly.
- If you were using “Send data to Gadgetbridge” feature, you will need to go back to `Settings` > `Widgets` to define which apps you want to send data to
- Lunar calendar is no longer available on Android < 7.0
**New feature**
- New (better) chart for precipitation nowcasting: more accurate with a bar chart, has light/medium/heavy thresholds to help interpret the data, has start time and end time on the marker, now supports RtL languages
- Alternate calendars (from `Settings` > `Appearance`) for Android >= 7.0. Currently supported: Chinese, Dangi, Indian National, Islamic and Persian.
**Sources**
- [GeoSphere Austria] Added as main source in Austria and nearby
- [GeoSphere Austria] Added as secondary source for air quality in Europe and nearby
- [GeoSphere Austria] Added as secondary source for precipitation nowcasting in Austria and nearby
- [GeoSphere Austria] Added as secondary source for alerts in Austria
- [Gadgetbridge] We are now able to send data for secondary locations
- [AccuWeather] Fix fail to refresh when using a language not supported by AccuWeather (noticed on Central Kurdish, Esperanto and Interlingua), now fallbacks to English
- [Open-Meteo] Fix workaround location search issue when result list is empty (will show instructions instead of an error)
- [Open-Meteo] Fix issues related to DST
- [Open-Meteo] Fix location search failed when at least one result didnt have a timezone info
- [DMI] Add severity/colors to alerts
- [Android location source] Added support for native Fused on Android >= 12
**Improvements**
- Improved privacy of the “Send Gadgetbridge data” which now allows you to select which apps you want to send data to, instead of all compatible apps.
- Added source for each alert for compatible sources
- [Widgets] “Material You - Current” automatically adapt size to the frame on Android >= 12
- [Widgets] “Material You - Current” add preview
- [Widgets] Added a custom subtitle keyword for a summary of pollen indexes
- Background updates: secondary locations (when used) are now refreshed once a day
- Add a new error message “Server unavailable”
- Improved time picker for forecast notification (now supports 12-hour system), also fixes a crash on Android 14 QPR2 (@min7-i)
**Fixes**
- [Widgets] “Material You - Current” Tap to open app now works again
- [Widgets] Day + Vertical - To fix a crash when using Android < 12, the clock when displayed as analog will no longer set the correct timezone on Android < 12 (this feature is not available on these versions)
- Fix wrong number displayed on the daily feels like chart
- Fix current location keeping old timezone on some sources, when travelling to a different timezone
- Fix “Stay informed” card stays visible after allowing notifications via settings / app-info
- Fix extra padding on bottom of keyboard on location search (@min7-i)
- The sensor manager is no longer queried if the gravity sensor preference is disabled (fix a trigger on GrapheneOS)
- Fix back button in a sub settings menu exited settings instead of going back to main settings screen (@min7-i)
- Fix color of the “change source” button on location search (@min7-i)
- Fix live wallpaper refresh rate (was capped at 60 Hz)
- Fix non-configured sources showing as options for secondary sources
**Translations**
- Translations updated
- Initial translation added for Eesti (thanks Priit Jõerüüt!)
# Version 5.1.8 (2024-03-30)
Due to a technical change, if you had set up a different language than your system language, you will have to set it again on update.
**New features**
- Added ability to change the background weather and time for each location
**Weather sources**
- [WMO SWIC] Switch to newer v3.0 endpoint for alerts, should be more reliable and much faster
- [WMO SWIC] Updated alert colors to v3.0
- Default alert colors for sources not providing colors (DMI, ECCC, OpenWeather, Pirate Weather) were also updated to match alert colors of WMO SWIC v3.0
**Improvements and fixes**
- Precipitation nowcast is now a dedicated card
- Fix crash on Android < 7.0
- Fix live wallpaper non-auto weather kind
- A new error type “Invalid or incomplete data received from server” was added
- Fix display issue when changing main source sometimes resulted in empty value for secondary sources
- Add error handling to “change instance URL” feature of self-hostable sources
- [Widgets] Fix clock and dates didnt honor timezone of the location (used system timezone instead)
- [Widgets] Fix clock font preference reset every time configuration screen was entered
- [Widgets] Fix Material You - Forecast not being available on some devices
- [Widgets] Fix Material You - Current proportions
**Translations**
- Translations updated
- Basic support added for British English (supports a few spelling differences), also added to Australian English and Canadian English (new)
- Improved date formatting work for Android 7.0+ is now complete
- Chinese is now handled as Simplified Chinese and Traditional Chinese to ease the work of translators
- Fix - All non-weather-related texts are now properly updated on language change (weather-related texts still require a refresh of locations)
# Version 5.1.7 (2024-03-20)
**Improvements and fixes**
- [Privacy] If you enabled sending data to Gadgetbridge, Breezy Weather will no longer share your longitude, latitude and if your location is your current position with Gadgetbridge or any other app.
- [Privacy] The “Send weather data to Gadgetbridge” option was renamed “Broadcast my weather data to other apps” as any app can “pretend to be Gadgetbridge”. A confirmation dialog will appear to make the user confirm they fully understand the risks.
- [Privacy] The “Send weather data to Gadgetbridge” (which is off by default, unless you enabled it) will be turned off on all devices on update to let users decide if they still want to enable it.
- For sources not providing colors, we now make the color of the alert dynamic based on severity instead of always orange. This scale is the same as the one used by World Meteorological Organization and may differ with colors usually provided by your national provider. For sources without severity, this will fallback to Unknown color.
**Weather sources**
- Updated recommendations for new locations (existing locations must be modified manually, or re-added):
| Location | Source type | Old | New |
|-----------|-------------|-------------|--------------------|
| Hong Kong | Alert | AccuWeather | WMO Severe Weather |
**Translations**
- Translations updated
# Version 5.1.6 (2024-03-19)
**Improvements and fixes**
- Allow to enable Gadgetbridge if Smartspacer generic weather plugin is installed
- Fix cypress, hazel and hornbeam pollen not correctly saved to database
**Weather sources**
- [Open-Meteo] Added ability to choose your own self-hosted instance in the settings
- [Bright Sky (DWD)] Added ability to choose your own self-hosted instance in the settings
- [Recosanté] Added ability to choose your own self-hosted instance in the settings
**Translations**
- Translations updated
- Added Interlingua (very limited support at the moment) (thanks @softinterlingua)
- Date formatting was improved on Android 7.0+ for many languages, including languages not currently supported. On lower Android versions, it will fallback to ISO 8601 formatting for short format, and weekday / day / month / year for long format. More improvements will come in later versions (mostly on widgets).
# Version 5.1.5 (2024-03-16)
*Just a re-release of v5.1.4 to include some technical build adjustments to prepare for release in default F-Droid repo.*
**Translations**
- Translations updated
# Version 5.1.4-beta (2024-03-16)
**New features**
- We now have our own repo for F-Droid and Google Play flavors of Breezy Weather. If you want to switch from our current repo (Standard flavor) to a different flavor, you should remove the repo for the Standard flavor first to avoid getting updates for the wrong flavor. [Link to Breezy Weather F-Droid repos](https://github.com/breezy-weather/fdroid-repo/blob/main/README.md)
**Weather sources**
- [World Meteorological Organization (WMO) Severe Weather] Added experimental support as secondary alert source. Translations are not supported (yet). Please report as soon as possible if you encounter a refresh error, making sure you mention the country of your location in the issue.
- [ECCC] Add sunshine duration
- [Natural Earth] Improve detection of small islands/countries
- [Recosanté] Fix refresh error on Friday
- Updated recommendations for new locations (existing locations must be modified manually, or re-added):
| Location | Source type | Old | New |
|----------|-------------|-------------|-------------|
| France | Pollen | Open-Meteo | Recosanté |
**Improvements and fixes**
- Background weather update will now only process the first location, unless you have multi cities usage. This makes the process more green and efficient, and other secondary locations will automatically be updated when you open them instead (this means that if you dont check these locations very often, it will no longer uselessly refresh them in the background). A document has been written to describe in details how the full weather update process work: https://github.com/breezy-weather/breezy-weather/blob/main/docs/UPDATES.md
- Fix AccuWeather being the default weather source instead of automatic recommendations
- Fix "Please wait a few seconds before retrying" when adding a location
- Fix some sources not being available for current location if current location didnt change
- Fix notification-widget not being restored on reboot
**Translations**
- Translations updated
# Version 5.1.3-beta (2024-03-13)
**New features**
- Per-location per-source preferences
**Weather sources**
- [Open-Meteo] Allow to choose weather models per-location
**Improvements and fixes**
- Add troubleshooting for “Source no longer available” error
**Translations**
- Translations updated
# Version 5.1.2-beta (2024-03-13)
**New features**
- Sunshine duration daily chart (for compatible sources)
**Improvements and fixes**
- “Hours of sun” was removed and split into:
- “Daylight duration” which was moved to Sun section
- “Sunshine duration” for compatible sources
- Icon pack selection dialog was rewritten in Material 3
- You will now have a confirmation dialog before opening a link
- [Text widget] Fix custom subtitle being cut if on multiple lines
**Translations**
- Translations updated
# Version 5.1.1-beta (2024-03-12)
**Improvements and fixes**
- Main screen pollen card will now only show pollens with at least one day where concentration > 0. Behavior remains the same on daily page and pollen details page.
- App should no longer prank you by changing the name of a location you just added from search
**Weather sources**
- [Recosanté] Add as secondary pollen source for France.
- [Open-Meteo] Replaced “hours of sun” with “sunshine duration” since we have that info in the API
- [Bright Sky (DWD)] Replaced “hours of sun” with “sunshine duration” since we have that info in the API
- [Bright Sky (DWD)] Added to the `fdroid` flavor, since its open source.
**Translations**
- Translations updated
# Version 5.1.0-beta (2024-03-08)
**New features**
- Breezy Weather now comes in 3 flavors:
- Standard: this is the version you used so far
- Google Play: same as Standard + proprietary Fused location from Google Play Services. Useful if you use “Current location” feature AND have Google Play Services installed on your device. Otherwise, you should use the standard version.
- F-Droid: this version removes support for any weather sources which are not libre and self-hostable, so you are sure to get a 100% FOSS experience and not connect by mistake to a non-free network. There are plans to add this version to the default F-Droid repository.
**Improvements and fixes**
- [Widgets] Custom subtitle - A keyword was added for current and daily air quality index
- [Widgets] Text widget - Add support for custom subtitle
- [Widgets] Text widget - Add ability to hide header (i.e. only show custom subtitle)
- [Widgets] Trend widgets - Make text easier to read (@min7-i)
- Add a second way to delete location from location preferences (Edit button in footer) (will only show if there is at least 2 locations in the list as location list cannot be empty)
- Better mapping for icons of Chronus icon packs (@min7-i)
- Fix weather data refresh failure on Android < 7.1.1 for weather sources using Lets encrypt certificates
- Fix loop issues when manually refreshing and encountering weather refresh failures (will now wait at least 10 seconds before retrying)
**Weather sources**
- [Israel Meteorological Service] Added as main source
- [Israel Meteorological Service] Added as secondary alert source
- [MET IE] Fix 12-hour system issue
- [MET IE] Add warnings as main source in Ireland-only
- [MET IE] Add warnings as secondary source in Ireland-only
- [MET IE] Add reverse geocoding in Ireland-only
- Updated recommendations for new locations (existing locations must be modified manually, or re-added):
| Location | Source type | Old | New |
|-------------------------------|-------------|-------------|-------------------------------|
| Israel, West Bank, Gaza Strip | Main source | Open-Meteo | Israel Meteorological Service |
| Ireland | Alerts | AccuWeather | MET Éireann |
**Removed features**
- Pixel icon pack is no longer bundled. You will have to [download it manually](https://github.com/breezy-weather/pixel-icon-provider/releases).
- All other non-free assets were replaced/removed
**Translations**
- Translations updated
# Version 5.0.3-alpha (2024-03-02)
**Improvements and fixes**
- You can now choose to always use a specific weather source for new locations instead of Breezy Weather recommendations (Settings > Weather sources)
- Bring back “auto” mode for Live Wallpaper
- Add colors to cloud cover hourly chart
- Use a different font for temperature icon in status bar to improve readability (@min7-i)
**Weather sources**
- [Natural Earth] Added as an offline country-only reverse geocoding source. Helps providing the compatible weather sources for each location.
- [ECCC] Fix missing observation text
- Fix mismatching text with current weather condition in some very rare cases
**Translations**
- Translations updated
# Version 5.0.2-alpha (2024-02-27)
**Improvements and fixes**
- Dont display “Feels like” tab in Daily and Hourly trends if there is no data
- Fallback to real temperature if feels like temperature is missing in hourly feels like chart to avoid weird looking chart
- Compute missing relative humidity if we have temperature and dew point (useful for DWD)
- Fix weather text showing “Clear sky” when weather condition is unknown
- Remove the ability to select a main weather source incompatible with that country
- Fix widgets not updating after a widget config change
- Fix contrast issue when using monochrome theme (@min7-i)
**Translations**
- Translations updated
- Comma were replaced by 、 in Chinese and Japanese languages. If you use a different character than “,” for comma in your language, please open an issue on GitHub (not available through Weblate).
# Version 5.0.1-alpha (2024-02-26)
**Fixes**
- Fix crash when adding more than 4 or 5 current details in header
- Fix weather source failing in loop (noticed with NWS source, for example)
- Fallback to real temperature if feels like temperature is missing in daily feels like chart to avoid weird looking chart
# Version 5.0.0-alpha (2024-02-26)
We found a proprietary dependency in the database component. To get rid of it, we chose to use a different database component and not offer any migration. You will have to re-add your locations. Your preferences are safe.
This an **alpha release**. Use it at your own risk. If you do, report any issue you found to help stabilizing the app! Stay on v4.6.14 for now if you want a stable release and are not concerned about the proprietary dependency.
Unfinished things that will be in a future 5.0.x version:
- Bring back temporarily removed "auto" option for live wallpaper
- Offline reverse geocoding to get location presets for current location
- [UX] Improve weather sources dialog to be less overwhelming
- Maybe release a stable v4.6.15 that inform users that next version will empty location list, if there are too many reports
**New features and main improvements**
- Design refresh of current details in header
- New daily chart: feels like temperature
- New hourly chart: feels like temperature
- New hourly chart: humidity / dew point
- New hourly chart: pressure
- New hourly chart: cloud cover
- New hourly chart: visibility
- Better precipitation notifications, now based on precipitation minute by minute (not supported by all weather sources)
- Location search no longer asks you to choose your weather source, which may have been confusing. Instead, you will make a search, and when tapping on a location in the result list, location will be set up with a preset of main and secondary sources we recommend that varies depending on the country of that location. You are able to change these sources before confirming adding of that location. At the moment, this only affects manually added locations and experience of adding of current location remains unchanged due to technical reasons (no reverse geocoding available).
- Following that change, the purpose of the “Change source” button on bottom of location search is to change the default location search source (which was previously found rather hidden in settings) instead of the weather source to use with locations.
**Weather sources**
- [Danmarks Meteorologiske Institut (DMI)] Added support as a worldwide main source, with alerts for Denmark-only
- [Danmarks Meteorologiske Institut (DMI)] Added support as a secondary source for alerts in Denmark-only
- [China] Added support as a secondary source for minutely, alerts and air quality in China-only
- [National Weather Service (NWS)] Added support as a main source in United States of America and territories-only
- [National Weather Service (NWS)] Added support as a secondary source for alerts in United States of America and territories-only
- [Bright Sky (DWD)] Added support as a main source in Germany-only
- [Bright Sky (DWD)] Added support as a secondary source for alerts in Germany-only
- [Environment and Climate Change Canada] Added support as a main source in Canada-only
- [Environment and Climate Change Canada] Added support as a secondary source for alerts and normals in Canada-only
- [SMHI] Added support as a main source in Sweden-only
- [MET Éireann] Added support as a main source in Ireland-only (alerts not yet supported)
- [AccuWeather] Added support as a secondary-source for air quality, pollen and normals
- [AccuWeather] Fix normals (missing in January, shifted by one month on other months)
- [MET Norway] Fix precipitation in the next hour failing in some cases
- [PirateWeather] Retrieve 168 hours of forecast
- [PirateWeather] Fix precipitation probability
- [HERE] Remove support for NWS alerts, they were never filtered according to the location (was returning all alerts from USA!), so use directly NWS source instead
- [HERE] Remove as a location search source as other sources are more reliable to be used with the new location search page
**Other improvements and fixes**
- [Weather refresh] Various improvements to missing data computing/extrapolating
- [Alerts] Show alert color icon on alert details page
- [Location list] Swiping left on a manually added location now opens the weather sources preferences instead of (un)setting resident location status
- [Location weather sources preferences] Clarified features supported by main source in secondary weather sources preferences. For exemple, at the moment of writing, Open-Meteo doesn't support alerts. If your main source is Open-Meteo and you don't have a secondary source set for Alerts, it showed “Main source”, now it will show “None” instead.
- [Location weather sources preferences] Fix secondary source choices not updating when changing main weather source (if main source supports secondary features, it wouldn't be showing in secondary sources list)
- [Location weather sources preferences] Fix a display issue of “alert source” instead of “normals source” in secondary weather sources settings of a location
- [Location weather sources preferences] Fix duplicate location when main weather source is changed to an existing same location with same weather source
- [Location weather sources preferences] Fix when changing main weather source, saving previously redirected to first location in location list. Now, it will stay on the correct location
- [Notifications] Fix crash when today/tomorrow notification was received on Android 14
- [Notification-widget] Fix temperature icon in status bar being cut off on some devices (@min7-i)
- [Weather refresh] When background updates are disabled, when opening a location, it will now automatically refresh if it was last refreshed more than 1.5 hours ago
- [Settings] When background updates are disabled, make user aware that “Notifications of weather alerts” and “Notifications of precipitations” are unavailable by greying the options in settings
- [Widgets] Fix clock day vertical widget in vertical or tile mode was showing decimals to current temperature
- Fix UV index description being sometimes wrong
- Fix all alert dialogs that had too much padding in content compared to title.
**Removed features**
- Resident locations. Undocumented, encourages bad practices (two identical locations to be refreshed) and terrible technical implementation. May be brought back differently if you can provide well-thought use cases, functional specifications, and a better technical implementation.
- Widget layout option “Oreo (Google Sans)” (Oreo without Google Sans remains available). We dont have licensing rights of the Google Sans font. Customizing font on widgets was also an unofficial feature that was removed with a security update released in 2021, so that feature didnt work for most devices anyway.
**Translations**
- Translation added and completed for Беларуская (thanks @kilimov25!)
- Translation added and completed for Македонски (thanks @ikocevski7 and @kilimov25!)
- Initial translation added for Esperanto
- Initial translation added for فارسی (thanks Aspen!)
- Translations updated

329
docs/COVERAGE.md Normal file
View file

@ -0,0 +1,329 @@
# Coverage
This page documents the coverage status of weather sources around the world in Breezy Weather. Before you submit a request for a new source, please check this document to see if it has been considered for coverage in the past.
In general, a weather source can be considered for inclusion in the official release of Breezy Weather if it meets the following requirements:
- **Geolocation availability:** A source should be able to provide data directly from geographical coordinates (latitude and longitude) directly, or return forecast locations from given coordinates. Breezy Weather is a mobile app, and is primary used for querying weather forecasts on the go. It is not enough to for a source to provide forecast from location names alone.
- **Data format:** A source should provide its forecast data in JSON or XML format.
- **Forecast availability:** _(for Forecast sources)_ A source should provide hourly forecast. The minimum frequency should be 6-hourly. Sources providing current observation, air pollution, pollen, alerts, or temperature normals WITHOUT hourly forecast can be implemented as a “Secondary Source.”
- **Privacy requirement:** If an API key is needed to access the data, it should not ask for personally identifiable information such as credit card or telephone number.
- **Concentration requirement:** _(for Air Quality and Pollen sources)_ A source must provide air pollutant concentration data in µg/m³, mg/m³, ppb, or ppm. Pollen concentration must be in pollen count /m³. If the data source only provides a calculated index, it cannot be included in Breezy Weather, since every country has its own AQI standard which is often different from others.
## Summary
- [Africa](#africa)
- [Asia &amp; the Middle East](#asia--the-middle-east)
- [Europe](#europe)
- [North America](#north-america)
- [South America](#south-america)
- [Oceania](#oceania)
- [Other sources](#other-sources)
## Africa
> [ClimWeb](https://github.com/wmo-raf/climweb) is an open source web CMS created by WMO Regional Office For Africa for use by National Meteorological and Hydrological Services in Africa. As of v0.9.4, ClimWeb offers alerts and temperature normals in JSON format, but weather forecasts are in HTML only. ClimWeb sources are implemented as Secondary Sources for Alerts and Temperature Normals from Breezy Weather v5.3.0.
| Country/Territory | Agency | Status | Last Checked |
|---------------------------------------------------|------------------------------------------------------|----------------------------------|--------------|
| 🇩🇿 Algeria | [Météo Algérie](https://www.meteo.dz/) | | |
| 🇦🇴 Angola | [INAMET](http://inamet.gov.ao/) | | |
| 🇧🇯 Benin | [Météo Benin](http://www.meteobenin.bj/) (ClimWeb) | ⚠️📊 Alerts, Normals from v5.3.0 | 2024-11-30 |
| 🇧🇼 Botswana | BMS | ❌ only on Facebook | |
| 🇮🇴 British Indian Ocean Territory | | | |
| 🇧🇫 Burkina Faso | [ANAM-BF](https://www.meteoburkina.bf/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇧🇮 Burundi | [IGEBU](https://www.igebu.bi/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇨🇻 Cabo Verde | [INMG](https://www.inmg.gov.cv/) | | |
| 🇨🇲 Cameroon | | | |
| 🇨🇫 Central African Republic | | | |
| 🇹🇩 Chad | [Météo Tchad](https://www.meteotchad.org/) (ClimWeb) | ⚠️📊 Alerts, Normals from v5.3.0 | 2024-11-30 |
| 🇰🇲 Comoros | | | |
| 🇨🇬 Congo | [DirMet](https://www.dirmet.cg/) | | |
| 🇨🇮 Côte dIvoire | [Sodexam](https://sodexam.com/) | | |
| 🇨🇩 Democratic Republic of Congo | [Mettelsat](https://www.meteordcongo.cd/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇩🇯 Djibouti | ANM | ❌ only on Facebook | |
| 🇪🇬 Egypt | | | |
| 🇬🇶 Equatorial Guinea | | | |
| 🇪🇷 Eritrea | | | |
| 🇸🇿 Eswatini | [Swazimet](http://www.swazimet.gov.sz/) | | |
| 🇪🇹 Ethiopia | [EMI](https://www.ethiomet.gov.et/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇹🇫 French Southern Territories | | Uninhabited | |
| 🇬🇦 Gabon | | | |
| 🇬🇲 Gambia | [DWR](https://meteogambia.org/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇬🇭 Ghana | [GMet](https://www.meteo.gov.gh/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇬🇳 Guinea | | | |
| 🇬🇼 Guinea-Bissau | [INM](https://www.meteoguinebissau.org/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇰🇪 Kenya | [KMD](https://meteo.go.ke/) | | |
| 🇱🇸 Lesotho | [Lesmet](https://www.lesmet.org.ls/) | | |
| 🇱🇷 Liberia | | | |
| 🇱🇾 Libya | [LNMC](https://www.lnmc.ly/) | | |
| 🇲🇬 Madagascar | [Météo Madagascar](https://www.meteomadagascar.mg/) | | |
| 🇲🇼 Malawi | [DCCMS](https://www.metmalawi.gov.mw/) (ClimWeb) | ⚠️📊 Alerts, Normals from v5.3.0 | 2024-11-30 |
| 🇲🇱 Mali | [Mali-Météo](https://malimeteo.ml/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇲🇷 Mauritania | | | |
| 🇲🇺 Mauritius | [MMS](http://metservice.intnet.mu/) | | |
| 🇾🇹 Mayotte | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇲🇦 Morocco | [Maroc Météo](https://www.marocmeteo.ma/) | | |
| 🇲🇿 Mozambique | [INM](https://www.inam.gov.mz/) | | |
| 🇳🇦 Namibia | [NMS](http://www.meteona.com/) | | |
| 🇳🇪 Niger | [DMN](https://www.niger-meteo.ne/) (ClimWeb) | ⚠️📊 Alerts, Normals from v5.3.0 | 2024-11-30 |
| 🇳🇬 Nigeria | [NiMet](https://www.nimet.gov.ng/) | | |
| 🇷🇪 Réunion | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇷🇼 Rwanda | [Meteo Rwanda](https://www.meteorwanda.gov.rw/) | | |
| 🇸🇹 Sao Tome &amp; Principe | [INM](https://inm.st/) | | |
| 🇸🇳 Senegal | [ANACIM](https://www.anacim.sn/) | | |
| 🇸🇨 Seychelles | [SMA](https://www.meteo.gov.sc/) (ClimWeb) | ⚠️📊 Alerts, Normals from v5.3.0 | 2024-11-30 |
| 🇸🇱 Sierra Leone | [SLMet](https://slmet.gov.sl/) | | |
| 🇸🇴 Somalia | | | |
| 🇿🇦 South Africa | [SAWS](https://www.weathersa.co.za/) | | |
| 🇸🇸 South Sudan | [SSMS](https://meteosouthsudan.com.ss/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇸🇭 St. Helena, Ascension &amp; Tristan da Cunha | | | |
| 🇸🇩 Sudan | [SMA](https://meteosudan.sd/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇹🇿 Tanzania | [TMA](https://www.meteo.go.tz/) | | |
| 🇹🇬 Togo | [Météo Togo](https://www.anamet-togo.com/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
| 🇹🇳 Tunisia | [INM](https://www.meteo.tn/) | | |
| 🇺🇬 Uganda | [UNMA](https://www.unma.go.ug/) | | |
| 🇪🇭 Western Sahara | | | |
| 🇿🇲 Zambia | ZMD | ❌ only on Facebook | 2024-12-05 |
| 🇿🇼 Zimbabwe | [MSD](https://www.weatherzw.org.zw/) (ClimWeb) | ⚠️ Alerts from v5.3.0 | 2024-11-30 |
## Asia &amp; the Middle East
| Country/Territory | Agency | Status | Last Checked |
|---------------------------|-----------------------------------------------|----------------------------------------------------------------------------------------|--------------|
| 🇦🇫 Afghanistan | [AMD](https://www.amd.gov.af/) | ❌ no geolocation, no hourly | 2024-11-30 |
| 🇦🇲 Armenia | [ARM](https://www.armmonitoring.am/) | | |
| 🇦🇿 Azerbaijan | [Azerbaijan](https://www.eco.gov.az/) | | |
| 🇧🇭 Bahrain | [Bahrain](https://www.bahrainweather.gov.bh/) | | |
| 🇧🇩 Bangladesh | [BMD](https://live6.bmd.gov.bd/) | ✅ included from v5.3.0 | |
| 🇧🇹 Bhutan | [NCHM](https://www.nchm.gov.bt/) | ❌ no geolocation, no hourly | 2024-11-30 |
| 🇧🇳 Brunei Darussalam | [BDMD](https://www.met.gov.bn/) | 🚧 _(in progress)_ | 2024-11-30 |
| 🇰🇭 Cambodia | [Cambodia](http://www.cambodiameteo.com/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇨🇳 China | Mixed China sources | ✅ included | |
| 🇭🇰 Hong Kong | [HKO](https://www.hko.gov.hk/) | ✅ included from v5.3.0 | |
| 🇮🇳 India | [IMD](https://mausam.imd.gov.in/) | ✅ included from v5.3.0 | |
| 🇮🇩 Indonesia | [BMKG](https://www.bmkg.go.id/) | ✅ included from v5.3.0 | |
| 🇮🇷 Iran | [IRIMO](https://www.irimo.ir/) | | |
| 🇮🇶 Iraq | [Iraq](http://www.meteoseism.gov.iq/) | | |
| 🇮🇱 Israel | [IMS](https://ims.gov.il/) | ✅ included from v5.1.0 | |
| 🇯🇵 Japan | [JMA](https://www.jma.go.jp/) | ✅ included from v5.3.0 | |
| 🇯🇴 Jordan | [Jordan](http://jometeo.gov.jo/) | | |
| 🇰🇿 Kazakhstan | [Kazhydromet](https://www.kazhydromet.kz/) | | |
| 🇰🇼 Kuwait | [Kuwait](https://www.met.gov.kw/) | | |
| 🇰🇬 Kyrgyzstan | [KyrgyzHydromet](https://meteo.kg/) | | |
| 🇱🇦 Laos | [DMH](https://dmhlao.la/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇱🇧 Lebanon | [Météo Liban](https://meteo.gov.lb/) | | |
| 🇲🇴 Macao | [SMG](https://www.smg.gov.mo/) | ✅ included from v5.3.0 | |
| 🇲🇾 Malaysia | [METMalaysia](https://www.met.gov.my/) | ❌ no geolocation, no hourly | 2024-11-30 |
| 🇲🇲 Myanmar | [Moezala](https://www.moezala.gov.mm/) | ❌ no geolocation, no hourly | 2024-11-30 |
| 🇲🇻 Maldives | [MMS](http://www.meteorology.gov.mv/) | ❌ no JSON | 2024-11-30 |
| 🇲🇳 Mongolia | [NAMEM](https://www.weather.gov.mn/) | ✅ included from v5.3.0 | |
| 🇳🇵 Nepal | [DHM](http://www.dhm.gov.np/) | ❌ no hourly | 2024-11-30 |
| 🇰🇵 North Korea | SHMA | ❌ no website | 2024-11-30 |
| 🇴🇲 Oman | [Oman](https://met.gov.om/) | | |
| 🇵🇰 Pakistan | [PMD](http://www.pmd.gov.pk/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇵🇸 Palestine | [PMD](https://www.pmd.ps/) | ❌ no hourly, no JSON | 2024-12-05 |
| 🇵🇭 Philippines | [PAGASA](https://www.pagasa.dost.gov.ph/) | ✅ included from v5.3.0 | |
| 🇶🇦 Qatar | [QWeather](http://qweather.gov.qa/) | | |
| 🇸🇦 Saudi Arabia | [NCM](https://ncm.gov.sa/) | | |
| 🇸🇬 Singapore | [MSS](https://www.weather.gov.sg/) | ❌ no hourly | 2024-11-30 |
| 🇱🇰 Sri Lanka | [Sri Lanka](https://meteo.gov.lk/) | ❌ no geolocation, no hourly | 2024-11-30 |
| 🇰🇷 South Korea | [KMA](https://data.kma.go.kr/) | ❌ [requires phone number](https://github.com/breezy-weather/breezy-weather/issues/593) | 2023-12-09 |
| 🇸🇾 Syria | SGDM | ❌ only on Facebook | |
| 🇹🇼 Taiwan | [CWA](https://www.cwa.gov.tw/) | ✅ included from v5.2.5 | |
| 🇹🇯 Tajikistan | [Tajikistan](https://www.meteo.tj/) | | |
| 🇹🇭 Thailand | [TMD](https://www.tmd.go.th/) | ❌ requires phone number | 2024-11-30 |
| 🇹🇱 Timor-Leste | [DNMG](https://www.dnmg.gov.tl) | ❌ website doesn't work | 2024-11-30 |
| 🇹🇷 Türkiye | [MGM](https://www.mgm.gov.tr/) | ✅ included from v5.3.0 | |
| 🇹🇲 Turkmenistan | [TGBG](https://meteo.gov.tm/) | | |
| 🇦🇪 United Arab Emirates | [NCM](https://www.ncm.gov.ae/) | | |
| 🇺🇿 Uzbekistan | [Ozgidromet](https://hydromet.uz/) | | |
| 🇻🇳 Vietnam | [NCHMF](https://nchmf.gov.vn/) | ❌ no geolocation, no hourly | 2024-11-30 |
| 🇾🇪 Yemen | [CAMA](https://cama.gov.ye/) | | |
## Europe
| Country/Territory | Agency | Status | Last Checked |
|-------------------------------|-------------------------------------------------------|---------------------------------------------------------------------------------------|--------------|
| 🇦🇽 Åland Is. | | | |
| 🇦🇱 Albania | | | |
| 🇦🇩 Andorra | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇦🇹 Austria | [GeoSphere Austria](https://www.geosphere.at/) | ✅ included from v5.2.0 | |
| 🇧🇾 Belarus | [BelHydromet](https://belgidromet.by/) | | |
| 🇧🇪 Belgium | [IRM](https://www.meteo.be/) | ❌ API not available to the public | 2024-11-30 |
| 🇧🇦 Bosnia &amp; Herzegovina | [FHMZBIH](https://www.fhmzbih.gov.ba/latinica/) | | |
| | [RHMZRS](https://rhmzrs.com/) | | |
| 🇧🇬 Bulgaria | [NIMH](https://www.meteo.bg/) | | |
| 🇭🇷 Croatia | [DHMZ](https://meteo.hr/) | | |
| 🇨🇾 Cyprus | [Cyprus](https://www.moa.gov.cy/) | | |
| 🇨🇿 Czechia | [CHMI](https://www.chmi.cz/) | | |
| 🇩🇰 Denmark | [DMI](https://www.dmi.dk) | ✅ included from v5.0.0 | |
| 🇪🇪 Estonia | [Ilmateenistus](https://www.ilmateenistus.ee/) | ✅ included from v5.4.0 | 2024-12-24 |
| 🇫🇴 Faroe Is. | [DMI](https://www.dmi.dk) | ✅ included from v5.0.0 | |
| 🇫🇮 Finland | [FMI](https://en.ilmatieteenlaitos.fi/) | [data in XML](https://github.com/breezy-weather/breezy-weather/issues/1211) | 2024-07-22 |
| 🇫🇷 France | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇬🇪 Georgia | [Georgia](https://meteo.gov.ge/) | | |
| 🇩🇪 Germany | [Bright Sky](https://brightsky.dev/) | ✅ included from v5.0.0 | |
| 🇬🇮 Gibraltar | [Met Office](https://www.metoffice.gov.uk/) | ✅ included from v5.3.0 | |
| 🇬🇷 Greece | [EMY](http://www.emy.gr/) | | |
| 🇬🇬 Guernsey | [Met Office](https://www.metoffice.gov.uk/) | ✅ included from v5.3.0 | |
| 🇭🇺 Hungary | [HungaroMet](https://www.met.hu/) | ❌ [no hourly](https://github.com/breezy-weather/breezy-weather/issues/821) | 2024-03-19 |
| 🇮🇸 Iceland | [IMO](https://en.vedur.is/) | ✅ included from v6.0.5 | 2025-08-23 |
| 🇮🇪 Ireland | [MET Éireann](https://www.met.ie/) | ✅ included from v5.0.0 | |
| 🇮🇲 Isle of Man | [Met Office](https://www.metoffice.gov.uk/) | ✅ included from v5.3.0 | |
| 🇮🇹 Italy | [Meteo AM](https://www.meteoam.it/) | ✅ Included from v5.2.6 | |
| 🇯🇪 Jersey | [Met Office](https://www.metoffice.gov.uk/) | ✅ included from v5.3.0 | |
| 🇽🇰 Kosovo | [IHMK](https://ihmk-rks.net/) | | |
| 🇱🇻 Latvia | [Latvia](https://videscentrs.lvgmc.lv/) | ✅ included from v5.3.0 | 2024-11-30 |
| 🇱🇮 Liechtenstein | [MeteoSwiss](https://www.meteoswiss.admin.ch/) | ❌ no geolocation | 2024-11-30 |
| 🇱🇹 Lithuania | [Lithuania](http://www.meteo.lt/) | ✅ included from v5.3.0 | 2024-11-30 |
| 🇱🇺 Luxembourg | [MeteoLux](https://www.meteolux.lu/) | ✅ included from v5.3.0 | |
| 🇲🇹 Malta | [Malta Airport](https://www.maltairport.com/weather/) | | |
| 🇲🇩 Moldova | [SHS](https://www.meteo.md/) | | |
| 🇲🇨 Monaco | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇲🇪 Montenegro | [ZHMS](https://www.meteo.co.me/) | | |
| 🇳🇱 Netherlands | [KNMI](https://www.knmi.nl/) | ❌ [no geolocation](https://github.com/breezy-weather/breezy-weather/issues/1025) | 2024-05-03 |
| 🇲🇰 North Macedonia | [UHMR](https://uhmr.gov.mk/) | | |
| 🇳🇴 Norway | [MET Norway](https://www.met.no/) | ✅ included from v4.0.0 | |
| 🇵🇱 Poland | [IMGW](https://www.imgw.pl/) | [open to contributions](https://github.com/breezy-weather/breezy-weather/issues/998) | 2024-12-01 |
| 🇵🇹 Portugal | [IPMA](https://www.ipma.pt/) | ✅ Included from v5.3.0 | |
| 🇷🇴 Romania | [Meteo România](https://www.meteoromania.ro/) | | |
| 🇷🇺 Russia | | | |
| 🇸🇲 San Marino | [Meteo AM](https://www.meteoam.it/) | ✅ Included from v5.2.6 | |
| 🇷🇸 Serbia | [Hidmet](https://www.hidmet.gov.rs/) | | |
| 🇸🇰 Slovakia | [SHMÚ](https://www.shmu.sk/) | | |
| 🇸🇮 Slovenia | [ARSO](https://www.arso.gov.si/) | | |
| 🇪🇸 Spain | [AEMET](https://www.aemet.es/) | ✅ included from v5.3.0 | |
| | [Meteogalicia](https://www.meteogalicia.gal/) | [open to contributions](https://github.com/breezy-weather/breezy-weather/issues/1066) | 2024-05-23 |
| 🇸🇯 Svalbard &amp; Jan Mayen | [MET Norway](https://www.met.no/) | ✅ included from v4.0.0 | |
| 🇸🇪 Sweden | [SMHI](https://www.smhi.se/) | ✅ included from v5.0.0 | |
| 🇨🇭 Switzerland | [MeteoSwiss](https://www.meteoswiss.admin.ch/) | ❌ no geolocation | 2024-11-30 |
| 🇺🇦 Ukraine | [UHC](https://www.meteo.gov.ua/) | | |
| 🇬🇧 United Kingdom | [Met Office](https://www.metoffice.gov.uk/) | ✅ included from v5.3.0 | |
| 🇻🇦 Vatican City | [Meteo AM](https://www.meteoam.it/) | ✅ included from v5.2.6 | |
## North America
| Country/Territory | Agency | Status | Last Checked |
|-----------------------------------------|------------------------------------------|------------------------|--------------|
| 🇦🇮 Anguilla | [ABMS](http://www.antiguamet.com/) | | |
| 🇦🇬 Antigua &amp; Barbuda | [ABMS](http://www.antiguamet.com/) | | |
| 🇦🇼 Aruba | [DMA](http://www.meteo.aw/) | | |
| 🇧🇸 Bahamas | [BDM](https://met.gov.bs/) | | |
| 🇧🇧 Barbados | [BMS](https://www.barbadosweather.org/) | | |
| 🇧🇿 Belize | [NMS](https://www.nms.gov.bz/) | | |
| 🇧🇲 Bermuda | [Bermuda Weather](https://weather.bm/) | ❌ no hourly, no JSON | 2024-11-29 |
| 🇧🇶 Bonaire, Sint Eustatius &amp; Saba | [KNMIDC](https://www.knmidc.org/) | | |
| 🇻🇬 British Virgin Is. | [ABMS](http://www.antiguamet.com/) | | |
| 🇨🇦 Canada | [ECCC](https://weather.gc.ca/) | ✅ included from v5.0.0 | |
| 🇰🇾 Cayman Is. | [CINWS](https://www.weather.gov.ky/) | | |
| 🇨🇷 Costa Rica | [IMN](https://www.imn.ac.cr/) | | |
| 🇨🇺 Cuba | [Insmet](http://www.insmet.cu/) | | |
| 🇨🇼 Curaçao | [Curaçao](https://www.meteo.cw/) | | |
| 🇩🇲 Dominica | [DMS](https://www.weather.gov.dm/) | | |
| 🇩🇴 Dominican Republic | [Indomet](https://onamet.gob.do/) | | |
| 🇸🇻 El Salvador | [MARN](https://www.snet.gob.sv/) | | |
| 🇬🇱 Greenland | [DMI](https://www.dmi.dk/) | ✅ included from v5.0.0 | |
| 🇬🇩 Grenada | [GAA](https://www.weather.gd/) | | |
| 🇬🇵 Guadeloupe | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇬🇹 Guatemala | [Insivumeh](https://insivumeh.gob.gt/) | | |
| 🇭🇹 Haiti | [UHM](https://www.meteo-haiti.gouv.ht/) | | |
| 🇭🇳 Honduras | | | |
| 🇯🇲 Jamaica | [Jamaica](https://metservice.gov.jm/) | | |
| 🇲🇶 Martinique | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇲🇽 Mexico | [SMN](https://smn.conagua.gob.mx/) | | |
| 🇲🇸 Montserrat | [ABMS](http://www.antiguamet.com/) | | |
| 🇳🇮 Nicaragua | [Ineter](https://www.ineter.gob.ni/) | | |
| 🇵🇦 Panama | [IMHPA](https://www.imhpa.gob.pa/) | | |
| 🇵🇷 Puerto Rico | [NWS](https://www.weather.gov/) | ✅ included from v5.0.0 | |
| 🇧🇱 St. Barthélemy | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇰🇳 St. Kitts &amp; Nevis | [ABMS](http://www.antiguamet.com/) | | |
| 🇱🇨 St. Lucia | [SLUMET](https://www.slumet.gov.lc/) | | |
| 🇲🇫 St. Martin (French Part) | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇵🇲 St. Pierre &amp; Miquelon | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇻🇨 St. Vincent &amp; the Grenadines | [SVGMET](https://www.meteo.gov.vc/) | | |
| 🇸🇽 Sint Maarten (Dutch part) | [MDS](https://www.meteosxm.com/) | | |
| 🇹🇹 Trinidad &amp; Tobago | [TTMS](https://www.metoffice.gov.tt/) | | |
| 🇹🇨 Turks &amp; Caicos Is. | [DDME](https://gov.tc/ddme/) | | |
| 🇺🇸 United States | [NWS](https://www.weather.gov/) | ✅ included from v5.0.0 | |
| 🇻🇮 U.S. Virgin Is. | [NWS](https://www.weather.gov/) | ✅ included from v5.0.0 | |
## South America
| Country/Territory | Agency | Status | Last Checked |
|-------------------------------------------------|---------------------------------------------|------------------------|--------------|
| 🇦🇷 Argentina | [SMN](https://www.smn.gob.ar/) | | |
| 🇧🇴 Bolivia | [Senamhi](https://senamhi.gob.bo/) | | |
| 🇧🇻 Bouvet Island | | Uninhabited | |
| 🇧🇷 Brazil | [INMET](https://portal.inmet.gov.br/) | | |
| 🇨🇱 Chile | [Chile](https://www.meteochile.gob.cl/) | | |
| 🇨🇴 Colombia | [IDEAM](https://www.ideam.gov.co/) | | |
| 🇪🇨 Ecuador | [INAMHI](https://www.inamhi.gob.ec/) | | |
| 🇫🇰 Falkland Islands (Malvinas) | [Met Office](https://www.metoffice.gov.uk/) | ✅ included from v5.3.0 | |
| 🇬🇫 French Guiana | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇬🇾 Guyana | [Hydromet](https://hydromet.gov.gy/) | | |
| 🇵🇾 Paraguay | [DMH](https://www.meteorologia.gov.py/) | | |
| 🇵🇪 Peru | [Senamhi](https://www.gob.pe/senamhi) | | |
| 🇬🇸 South Georgia &amp; the South Sandwich Is. | | Uninhabited | |
| 🇸🇷 Suriname | [Suriname](https://hydromet.sr/) | | |
| 🇺🇾 Uruguay | [Inumet](https://www.inumet.gub.uy/) | | |
| 🇻🇪 Venezuela | [Inameh](http://inameh.gob.ve/) | | |
## Oceania
| Country/Territory | Agency | Status | Last Checked |
|--------------------------------------|--------------------------------------------|----------------------------------------------------------------------------------|--------------|
| 🇦🇸 American Samoa | [NWS](https://www.weather.gov/) | ❌ NWS API does not support American Samoa | 2024-11-21 |
| 🇦🇺 Australia | [BOM](http://www.bom.gov.au/) | ❌ [restricted API](https://github.com/breezy-weather/breezy-weather/issues/1299) | 2024-09-14 |
| 🇨🇽 Christmas Island | [BOM](http://www.bom.gov.au/) | ❌ [restricted API](https://github.com/breezy-weather/breezy-weather/issues/1299) | 2024-09-14 |
| 🇨🇨 Cocos (Keeling) Is. | [BOM](http://www.bom.gov.au/) | ❌ [restricted API](https://github.com/breezy-weather/breezy-weather/issues/1299) | 2024-09-14 |
| 🇨🇰 Cook Is. | [CIMS](https://met.gov.ck/) | | |
| 🇫🇯 Fiji | [FMS](https://www.met.gov.fj/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇵🇫 French Polynesia | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇬🇺 Guam | [NWS](https://www.weather.gov/) | ✅ included from v5.0.0 | |
| 🇭🇲 Heard Island &amp; McDonald Is. | | Uninhabited | |
| 🇰🇮 Kiribati | [KMS](https://www.met.gov.ki/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇲🇭 Marshall Is. | [NWS](https://www.weather.gov/) | ❌ NWS API does not support Marshall Is. | 2024-11-21 |
| 🇫🇲 Micronesia | [NWS](https://www.weather.gov/) | ❌ NWS API does not support Micronesia | 2024-11-21 |
| 🇳🇷 Nauru | [FMS](https://www.met.gov.fj/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇳🇨 New Caledonia | [Météo-France](https://meteofrance.com/) | ✅ included | |
| 🇳🇿 New Zealand | [Met Service](https://www.metservice.com/) | ❌ free tier requires credit card info | 2024-12-01 |
| 🇳🇺 Niue | [FMS](https://www.met.gov.fj/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇳🇫 Norfolk Island | [Met Service](https://www.metservice.com/) | ❌ free tier requires credit card info | 2024-12-01 |
| 🇲🇵 Northern Mariana Is. | [NWS](https://www.weather.gov/) | ✅ included from v5.0.0 | |
| 🇵🇼 Palau | [NWS](https://www.weather.gov/) | ❌ NWS API does not support Palau | 2024-11-21 |
| 🇵🇬 Papua New Guinea | [PNGNWS](https://www.pngmet.gov.pg/) | | |
| 🇵🇳 Pitcairn | | | |
| 🇼🇸 Samoa | [SMD](http://www.samet.gov.ws/) | | |
| 🇸🇧 Solomon Is. | [SIMS](https://met.gov.sb/) | | |
| 🇹🇰 Tokelau | [FMS](https://www.met.gov.fj/) | ❌ no geolocation, no JSON | 2024-11-30 |
| 🇹🇴 Tonga | [TMS](http://met.gov.to/) | | |
| 🇹🇻 Tuvalu | [TMS](https://tuvmet.tv/) | | |
| 🇺🇲 U.S. Minor Outlying Is. | | Uninhabited | |
| 🇻🇺 Vanuatu | [VMGD](https://www.vmgd.gov.vu/) | | |
| 🇼🇫 Wallis &amp; Futuna | [Météo-France](https://meteofrance.com/) | ✅ included | |
## Other sources
| Source | Status | Last Checked |
|--------------------|--------------------------------------------------------------------------------------------|--------------|
| Atmo France | ✅ included from v5.4.6 | |
| EKUK | ✅ included from v5.4.0 | 2024-12-24 |
| EPD HK | ✅ included from v5.4.0 | 2024-12-19 |
| FOSS Public Alert | ✅ included from v6.0.5-alpha | |
| GeoNames | ✅ included from v4.5.0 | |
| HERE | ✅ included from v4.5.0 | |
| Natural Earth | ✅ included from v5.0.3 | |
| NCDR | ✅ included from v6.0.5-alpha | |
| NCEI | ✅ included from v6.0.5-alpha | |
| NLSC | ✅ included from v6.0.5-alpha | |
| Pirate Weather | ✅ included from v5.0.0 | |
| Recosanté | ✅ included from v5.1.1 | |
| WMO Severe Weather | ✅ included from v5.1.4 | |
| Apple WeatherKit | ❌ no free tier | |
| AROME PIAF | [data in `.grid` format](https://github.com/breezy-weather/breezy-weather/issues/847) | 2024-03-25 |
| Azure Maps | ❌ [requires credit card](https://github.com/breezy-weather/breezy-weather/issues/265) | 2023-08-04 |
| EPA AirNow | ❌ [no concentration](https://github.com/breezy-weather/breezy-weather/issues/929) | 2024-04-12 |
| Graphcast | ❌ [no API server](https://github.com/breezy-weather/breezy-weather/issues/576) | 2023-11-27 |
| HERE | ❌ [removed from v6.0.6](https://github.com/breezy-weather/breezy-weather/issues/1849) | 2025-08-24 |
| Microsoft Azure | ❌ free tier requires credit card info | |
| Pollenrapporten | ❌ [no geolocation](https://github.com/breezy-weather/breezy-weather/issues/758) | 2024-03-08 |
| QWeather | ❌ [privacy concern](https://github.com/breezy-weather/breezy-weather/pull/574) | 2024-04-11 |
| Seniverse | ❌ [no geolocation, no hourly](https://github.com/breezy-weather/breezy-weather/issues/508) | 2023-10-05 |
| Tomorrow.io | [open to contribution](https://github.com/breezy-weather/breezy-weather/issues/469) | 2023-09-28 |
| WeatherAPI | [open to contribution](https://github.com/breezy-weather/breezy-weather/issues/453) | 2023-09-08 |
| WeatherBit | ❌ free tier does not have hourly forecasts | |
| WetterOnline | ❌ [no geolocation](https://github.com/breezy-weather/breezy-weather/issues/1068) | 2024-05-23 |

18
docs/DAY_DETAILS.md Normal file
View file

@ -0,0 +1,18 @@
# Day details
*To be completed*
## Degree day
Degree day is basically the heat or cool need of a building.
This need will vary depending on where you live, on outdoor temperature, on quality of your building, etc.
If the weather source doesnt have this info available, we will calculate using a generic formula (the one used in EU) that way:
- If the daily mean outdoor air temperature ((min + max of the day)/2) is between 15 °C and 24 °C, then there is no heating or cooling degree day.
- If daily mean is < 15 °C, heating degree day = 18 °C - daily mean. For example, if daily mean is 13 °C, heating degree day = 5 °C
- If daily mean is > 24 °C, cooling degree day = daily mean - 21 °C. For example, if daily mean is 27 °C, cooling degree day = 6 °C
While the calculation is made using °C, this value is expressed in the unit you selected in preference.
More info: https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Heating_and_cooling_degree_days_-_statistics

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

454
docs/HOMEPAGE.md Normal file
View file

@ -0,0 +1,454 @@
# Main screen
This page intends to give some explanations to how features displayed in the main screen of Breezy Weather (version 6.0.2 and later) work and how they should be interpreted. Position of elements are described for a Left-to-Right display. [Click here to access main screen documentation of versions before 6.0.2](https://github.com/breezy-weather/breezy-weather/blob/v6.0.0-alpha/docs/HOMEPAGE.md).
Main screen shows the weather for the selected location, with an optional drawer showing location list on large display devices.
## Glossary
- Current weather: weather at the time of the last refresh
- Days splitting: Each day starts at 06:00 and ends at 29:59 (05:59 the day after). Days are split into two moments (or “half days”): daytime (06:00 to 17:59) and nighttime (18:00 to 29:59). *Some sources might use slightly different hours, such as China from 10:00 to 19:59 and from 20:00 to 31:59.*
## Theme
In the background, you can see an animation matching the current weather condition.
The color of the background depends on dark mode settings and whether the sun is up for the selected location:
| App dark mode¹ | Location-based dark mode | Sun is up | Sun is down |
|------------------|--------------------------------------|-----------|-------------|
| Light | Follow day/night | Light | Dark |
| Light | Always dark when app is in dark mode | Light | Dark |
| Dark | Follow day/night | Light | Dark |
| Dark | Always dark when app is in dark mode | Dark | Dark |
¹If set to “Follow system”, pick the current system dark mode to read this table
This animation is dynamic by default, but you can choose a static one in the settings (Appearance).
## App bar
On top, you have a back button to access location list and city name of the location on the left. On the right, you have an “Open in another app” button that lets you open this location coordinates in a compatible application. You also have an Edit button that lets you access different options specific to the location, such as:
- Reorganize main screen (applies to all locations)
- (Current location only) Change location service
- Change main weather source or secondary weather sources (air quality, allergens, precipitations minute by minute, alerts)
- Change source-specific preferences
Just below, you can see the last time of refresh.
## Header
Above weather blocks, you have details about current weather:
- A description of the current weather condition
- Temperature
- (If different from temperature) Feels like temperature
- The temperature for the current and next half days:
- Before 06:00, it will show yesterday nighttime min temperature (if available), followed by today daytime max temperature
- Before 18:00, it will show today daytime max temperature, followed by today nighttime min temperature
- After 18:00, it will show today nighttime min temperature, followed by tomorrow daytime max temperature
## Blocks
By default, blocks are configured to display in this order and can be reordered by drag & drop or from settings:
- Alerts (cannot be removed, will always show on top)
- Precipitation nowcasting
- Daily forecast
- Hourly forecast
- Precipitation
- Wind
- Air quality
- Pollen
- Humidity
- UV
- Visibility
- Pressure
- Sun
- Moon
- Clock (not enabled by default)
Some blocks may not show with some sources if the data is not available. Check [sources](SOURCES.md) for more info.
**All blocks can be tapped on to access more details.**
The number of small blocks displayed per row varies between 1 and 5 depending on your width display size and font scale.
### Alerts
The first blocks is always the Alerts.
Current alerts are listed with their starting time and ending time, if they are valid for a specific period.
If there are no alerts currently, but there are some scheduled for the future, it will be written, and you will be able to tap on the text to see the details of these future alerts.
### Nowcasting precipitation
Nowcasting precipitation, not to be confused with Precipitation, are the precipitations in the very short term, minute by minute.
This block will show when you selected a compatible Nowcasting source AND there are precipitation in the next hour(s).
You can drag a guideline on the chart to see the expected precipitation quantity 5 minute by 5 minute.
### Daily forecast
Daily forecast is made of multiple tabs called trends. Order of daily trends can be changed in settings.
For each trend, the day of the week or "Today" is shown on top of each column, and just below, the day of the month and the month are shown.
The number of columns shown at once depends on your display size and font scale.
When data is missing for the whole period, the tab will be hidden.
#### Temperature trends
From top to bottom:
- Weather condition of daytime (icon)
- Maximum temperature of daytime (graph)
- Minimum temperature of nighttime (graph)
- Weather condition of nighttime (icon)
- Maximum precipitation probability for the whole day (bar + text)
If weather source has normals data, it will show two lines with maximum and minimum temperature normals for the month of the first day in forecast. If normals are not available, it will fallback to use a median maximum and minimum temperature for the daily forecast period.
#### Air quality trends
Each column shows the maximum air quality index for the day (bar + text) from 00:00 to 23:59. More details about air quality index can be read in Air quality block section.
Bar color will have a different color according to air quality index:
- Green: from 0 to 20
- Yellow: from 21 to 50
- Orange: from 51 to 100
- Red: from 101 to 150
- Purple: from 151 to 250
- Brown: 251 and above
Two lines show two alert levels (20 and 150). It can be disabled in the settings (Appearance).
#### Wind trends
From top to bottom:
- Origin of the dominant wind with the highest speed during daytime (arrow icon)
- Highest wind speed of daytime (text + bar)
- Highest wind speed of nighttime (text + bar)
- Origin of the dominant wind with the highest speed during daytime (arrow icon)
Wind icons and speed bars have a different color according to Beaufort wind scale:
- Green: from 0 to 3
- Yellow: from 4 to 5
- Orange: from 6 to 7
- Red: from 8 to 9
- Purple: from 10 to 11
- Brown: 12 and above
Two lines are shown corresponding to show when wind speed is exceeding Gentle breeze level for daytime and for nighttime. It can be disabled in the settings (Appearance).
#### UV trends
Each column shows the maximum UV index for the day (bar + text).
Bar color will have a different color according to UV level:
- Green: from 0 to 2
- Yellow: from 3 to 5
- Orange: from 6 to 7
- Red: from 8 to 10
- Purple: 11 and above
A line shows the alert level (7). It can be disabled in the settings (Appearance).
#### Precipitation trends
From top to bottom:
- Weather condition of daytime (icon)
- Total of all precipitation for daytime (bar + text)
- Total of all precipitation for nighttime (bar + text)
- Weather condition of nighttime (icon)
#### Sunshine trends
Each column shows the sunshine duration in hours for the day (bar + text) from 00:00 to 23:59.
Bar color is always light orange. Its filled relative to the maximum daylight duration (from sunrise to sunset) of the daily forecast period. For example, if there are 6 hours of sunshine today, and the maximum daylight duration is 12 hours, the bar will be half-filled (50%).
#### Feels like trends
Feels like temperature is the first available data from this list:
- Source-provided feels like temperature
- Computed apparent temperature
- Computed wind chill temperature
- Computed Humidex
- Temperature
From top to bottom:
- Weather condition of daytime (icon)
- Maximum feels like temperature of daytime (graph)
- Minimum feels like temperature of nighttime (graph)
- Weather condition of nighttime (icon)
- Maximum precipitation probability for the whole day (bar + text)
If weather source has normals data, it will show two lines with maximum and minimum temperature normals for the month of the first day in forecast. If normals are not available, it will fallback to use a median maximum and minimum temperature for the daily forecast period.
### Hourly forecast
Just like daily forecast, hourly is made of the same tabs called trends. Order of hourly trends can be changed in settings.
For each trend, the hour is shown on top of each column. If it is the first hour listed or if it midnight, the subtitle will be highlighted.
Only the next 24 hours are displayed at most.
The number of columns shown at once depends on your display size and font scale.
When data is missing for the whole period, the tab will be hidden.
#### Temperature trends
From top to bottom:
- Weather condition of the hour (icon)
- Temperature of the hour (graph)
- Precipitation probability (text)
#### Air quality trends
Each column shows the air quality index for the hour (bar + text). More details about air quality index can be read in Air quality block section.
Bar color will have a different color according to air quality index:
- Green: from 0 to 20
- Yellow: from 21 to 50
- Orange: from 51 to 100
- Red: from 101 to 150
- Purple: from 151 to 250
- Brown: 251 and above
Two lines show two alert levels (20 and 150). It can be disabled in the settings (Appearance).
#### Wind trends
From top to bottom:
- Origin of the dominant wind of the hour (arrow icon)
- Wind speed of the hour (text + bar)
Wind icons and speed bars have a different color according to Beaufort wind scale:
- Green: from 0 to 3
- Yellow: from 4 to 5
- Orange: from 6 to 7
- Red: from 8 to 9
- Purple: from 10 to 11
- Brown: 12 and above
#### UV trends
Each column shows the UV index for the hour (bar + text).
Bar color will have a different color according to UV level:
- Green: from 0 to 2
- Yellow: from 3 to 5
- Orange: from 6 to 7
- Red: from 8 to 10
- Purple: 11 and above
A line shows the alert level (7). It can be disabled in the settings (Appearance).
#### Precipitation trends
From top to bottom:
- Weather condition of the hour (icon)
- Total of all precipitation for the hour (bar + text)
#### Feels like trends
From top to bottom:
- Weather condition of the hour (icon)
- Feels like temperature of the hour (graph)
#### Humidity / Dew point trends
From top to bottom:
- Weather condition of the hour (icon)
- Dew point of the hour (graph)
- Relative humidity percentage (text)
#### Pressure trends
From top to bottom:
- Weather condition of the hour (icon)
- Pressure of the hour (graph)
#### Cloud cover trends
Each column shows the cloud cover percentage for the hour (bar + text).
Two lines show two levels (clear sky and partly cloudy). It can be disabled in the settings (Appearance).
#### Visibility trends
From top to bottom:
- Weather condition of the hour (icon)
- Visibility of the hour (graph)
### Precipitation
Precipitation, not to be confused with the nowcasting chart, will show the expected precipitation quantity for the current half day (daytime at daytime, nighttime at nightime).
It will display the type of precipitation (rain, snow, sleet) in the text and as icon, if the information is known.
### Wind
This blocks shows the current wind, with the wind origin as a background arrow.
Below is a small text:
- When there are wind gusts, it will show this information
- Otherwise, the wind origin is written there
### Air quality
Air quality uses the [2023 Plume index](https://plumelabs.files.wordpress.com/2023/06/plume_aqi_2023.pdf) as a reference, and for SO2 and CO, it uses a similar scale based on [WHO recommendations from 2021](https://apps.who.int/iris/handle/10665/345329).
Tap on the block for more info about the thresholds.
AQIs above 250 follow a linear progression.
An AQI is calculated for O3, NO2, PM10 and PM2.5 pollutant, and the general AQI is the maximum value of these four.
The ¾ circle shows the general AQI, and its filled with a different color for each category, so you can easily see the pollution level. The maximum value for the circle and bars is 250. At greater value, the circle will always be fulfilled.
### Pollen
*Currently show pollens for current day, will be updated in the future to show for the current hour.*
Shows a maximum of two most dominant pollens (excluding mold) for that day, with at least concentration > 0. The details of supported allergens by the source can be seen by tapping on the block and accessing the pollen details page.
For each displayed pollen:
- On the left, there is an icon filled with a color representing the risk level
- On the right, name of the pollen, and below its risk level
### Humidity
Shows the relative humidity percentage, and the dew point.
In the background, you can see the block being filled by a percentage close to the relative humidity percentage (there are 5 different background images, so its always approximate).
### UV index
Shows the current UV index.
In the bottom of the block, there are 5 dots, with one of them enabled with the color of the current UV level. You can find details about the UV scale by tapping on the block.
### Visibility
Shows the current visibility.
The small text below shows the visibility level.
Here are the thresholds:
| Level | From | To |
|-----------------|-------|----------|
| Very poor | 0 km | 1 km |
| Poor | 1 km | 4 km |
| Moderate | 4 km | 10 km |
| Good | 10 km | 20 km |
| Clear | 20 km | 40 km |
| Perfectly clear | 40 km | No limit |
### Pressure
Shows the current pressure at sea level.
The circle is filled from 963 mb/hPa to 1,063 mb/hPa (converted into your selected unit, if thats the case).
This means that when the pressure is half filled (filled up to the top of the circle), the pressure is at a normal level (1,013.25 mb/hPa).
### Sun
Arc show the progression of sun during their course for the currently observed day. The starting point is the sunrise time (the first one after midnight) and the endpoint is the sunset time. The sun icon remains on the endpoint after the sun set for the rest of the day.
The textual information are:
- Sunrise on the left
- Sunset on the right
Special cases: when sun is always up, it will show “Polar day”, and when sun is always down, it will show “Polar night”.
### Moon
Arc show the progression of moon during their course for the currently observed day. The starting point is the moonrise time and the endpoint is the moonset time. The moon icon remains on the endpoint after the moon set for the rest of the day.
The textual information are:
- Moonrise on the left
- Moonset on the right
- Moon phase (icon + text) below
Special cases:
- if the moon already rose before midnight that day AND the moon is still up from yesterday AND yesterday info about the moon is available (this is always the case when a location has been added the day before and has not seen a forecast source change since the day before), then the moonrise and moonset time are those from yesterday. When that “yesterday moon” sets, the information about “today moon” will take over
- if the moon rises twice that day after midnight, only the first rise time after midnight for that day will be shown. The set time is the set time for that rise time, and can end up on next day. That case is extremely rare, but if that information is important to you, we recommend using dedicated astronomy tools instead, especially as some weather sources might behave differently than what we just described (which is the general and fallback case).
### Clock
The clock will show the current time in this location. It automatically updates every minute.
An analog clock is displayed if one of the following conditions is met:
- Youre running Android 12 or later
- The timezone of this location is the same as your device timezone
### Footer
In the footer, you have credits and acknowledgment for the forecast source used for this location, and you can access them for all other sources by tapping the “More” link.

123
docs/RADAR.md Normal file
View file

@ -0,0 +1,123 @@
# Radar
Breezy Weather offers no radar feature because there is no free radar API we can use that can compete with the other free websites listed below, and we don't intend to become a paid app, so it's best to just add to your homescreen a bookmark to one of the free websites below, that will be more feature-complete. Alternatively, if you are looking for a paid open source app, consider subscribing to OsmAnd Pro (also mentioned below).
Below is a list of suggested alternatives (you can submit a pull request to add more).
## Open source apps and Websites
Websites below often offer closed source apps as well, but adding a bookmark to your home screen is usually more privacy-conscious.
<table>
<thead>
<tr>
<th>Name</th>
<th>Model</th>
<th>Forecast length</th>
<th>Sources</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://osmand.net/">OsmAnd</a><br />(<a href="https://osmand.net/docs/user/plugins/weather/">Weather plugin</a>)</td>
<td>Paid, subscription</td>
<td>
<ul>
<li>1-hour step</li>
<li>7 days</li>
</ul>
</td>
<td>
<ul>
<li>GFS</li>
<li>ECMWF</li>
</ul>
</td>
</tr>
<tr>
<td><a href="https://www.rainviewer.com/weather-radar-map-live.html">RainViewer</a></td>
<td>Free</td>
<td>
<ul>
<li>10-min step</li>
<li>Past 2 hours</li>
</ul>
</td>
<td>
<a href="https://www.rainviewer.com/sources.html">Full list</a>
</td>
</tr>
<tr>
<td><a href="https://www.ventusky.com/">Ventusky</a></td>
<td>Free</td>
<td>
<ul>
<li>1-hour step (3-hour and 6-hour steps after a few days)</li>
<li>15 days</li>
<li>Archive back to 1979</li>
</ul>
</td>
<td>
<ul>
<li><strong>NOAA</strong>: GFS, HRRR, RTOFS, NBM</li>
<li><strong>DWD</strong>: ICON, ICON (EU), ICON (DE)</li>
<li>CMC: GEM</li>
<li>FMI: SILAM</li>
<li>ECMWF</li>
<li>Met Office: UKMO, UKMO (UK)</li>
<li>Météo France: AROME</li>
<li>Meteorologisk institutt: MEPS (NO), WAVEWATCH (NO)</li>
</ul>
</td>
</tr>
<tr>
<td><a href="https://www.windy.com/">Windy.com</a></td>
<td>Freemium</td>
<td>
<ul>
<li>Free:
<ul>
<li>3-hour step</li>
<li>6 days</li>
</ul>
</li>
<li>Paid:
<ul>
<li>1-hour step</li>
<li>10 days</li>
<li>1-year archive</li>
</ul>
</li>
</ul>
</td>
<td>
<ul>
<li>ECMWF 9 km</li>
<li>UKV 2 km</li>
<li>GFS 22 km</li>
<li>ICON-D2 2.2 km, ICON-EU 7 km, ICON 13 km</li>
<li>NEMS 4 km</li>
<li>AROME 1.3 km</li>
</ul>
</td>
</tr>
<tr>
<td><a href="https://severeweather.wmo.int/">WMO Severe Weather Information Centre</a></td>
<td>Free</td>
<td>N/A</td>
<td><a href="https://severeweather.wmo.int/sources.html">136 issuing organizations</a></td>
</tr>
</tbody>
</table>
## Features
| Name | Precipitation | Temperature | Wind | Clouds | Pressure | Waves | Air quality | Other |
|-------------------------------------------------------------------------|---------------|-------------|------|--------|----------|-------|-------------|----------------------------------------------------------------------------------|
| [OsmAnd](https://osmand.net/) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | |
| [RainViewer](https://www.rainviewer.com/weather-radar-map-live.html) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
| [Ventusky](https://www.ventusky.com/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| [Windy.com](https://www.windy.com/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Extreme forecast, Weather warnings, Outdoor map, Drought monitoring, Fire danger |
| [WMO Severe Weather Information Centre](https://severeweather.wmo.int/) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Severe Weather |

1241
docs/SOURCES.md Normal file

File diff suppressed because it is too large Load diff

268
docs/TECHNICAL.md Normal file
View file

@ -0,0 +1,268 @@
# API keys
GitHub releases contain default API keys of the project that make all weather sources work by default (until API limits are reached).
If you want to self-build, you can add your own API keys in `local.properties` for sources to be configured by default in the build:
```properties
breezy.accu.portal=developer
breezy.accu.key=myapikey
breezy.accu.days=15
breezy.accu.hours=120
breezy.atmoaura.key=myapikey
breezy.atmofrance.key=myapikey
breezy.atmograndest.key=myapikey
breezy.atmohdf.key=myapikey
breezy.atmosud.key=myapikey
breezy.baiduip.key=myapikey
breezy.eccc.key=myapikey
breezy.geonames.key=myapikey
breezy.here.key=myapikey
breezy.mf.jwtKey=myapikey
breezy.mf.key=myapikey
breezy.openweather.key=myapikey
breezy.pirateweather.key=myapikey
```
You can omit any of the following properties to let the user configure their own API key in the settings, or only use API-key-less sources (such as Open-Meteo).
# Release management
*Instructions for members of the organization.*
1) Test your debug build.
2) Run tests `./gradlew testBasicDebugUnitTest` and `./gradlew testDebugUnitTest`.
3) Try to assemble a release `./gradlew assembleBasicRelease`.
4) Update versionCode and versionName in `app/build.gradle`.
5) Write changelog in `CHANGELOG.md`.
6) Commit all changes.
7) Tag version beginning with a `v` (example: `git tag v6.0.12 -m "Version 6.0.12"`).
8) Push with `git push --tags`
9) GitHub action will run and sign the release.
10) Update GitHub release notes draft and publish.
11) Update GitHub templates in `.github/` to show the new latest version.
# Adding a new source
After merging a new source, the following things need to be done:
1) Update `CHANGELOG.md`
2) Update `docs/SOURCES.md`
3) Update `docs/COVERAGE.md`
4) Update `fastlane/metadata/android/{en-US,fr,it}/full_description.txt`
# Decode crash logs from users
1) Save crash log in a text file `stacktrace.txt` and remove things like `2023-08-14 21:28:58.229 12804-12804 View org.breezyweather.debug` if they are present.
2) From the release page, download mapping-vX.Y.Z-standard.tar.gz or mapping-vX.Y.Z-freenet.tar.gz depending on the flavor used by the user.
3) Unzip `mapping.txt`.
4) `~/Android/Sdk/cmdline-tools/latest/bin/retrace mapping.txt stacktrace.txt`
# Translations
## Updated translations
When translations are updated from Weblate, if there are new contributors, add them in `app/src/main/java/org/breezyweather/settings/activities/AboutActivity.kt`.
## Added translations
When a translation is added, add the CLDR data for this locale in the weather-unit library.
# Dependencies
## Update Gradle
Gradle must always be updated that way (replace with new version number):
```
./gradlew wrapper --gradle-version=9.2.0 --gradle-distribution-sha256-sum=df67a32e86e3276d011735facb1535f64d0d88df84fa87521e90becc2d735444
```
You can find the newer checksum of the binary-only (-bin) ZIP on https://gradle.org/release-checksums/
# Dropping support for an Android version
1. In `org.breezyweather.background.updater.AppUpdateChecker`, uncomment the relevant lines to trigger a notification on the unsupported Android versions
2. In `org.breezyweather.background.weather.WeatherUpdateJob`, uncomment the relevant lines to always enable “check for update” on these unsupported Android versions, to ensure that `freenet` users and users who disabled update check correctly receive the notification. No actual update check will be performed, so its safe to force it enabled.
# Adding a new Material Icon
You can find [many Material Symbols and Icons here](https://fonts.google.com/icons).
____
# Weather sources API
Weather sources API can change: some versions may become deprecated, new endpoints may be added, new countries may be supported (when documented, we filter countries in app to avoid unnecessary calls on unsupported countries).
This section keep track of endpoints and when they were last checked.
## Open-Meteo
*Last checked: 2024-04-16*
| Endpoint | Version | Notes |
|---------------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Geocoding — Search | v1 | Partial support for Postal code, see [open-meteo/geocoding-api#8](https://github.com/open-meteo/geocoding-api/issues/8), missing admin codes, see [open-meteo/open-meteo#355](https://github.com/open-meteo/open-meteo/issues/355) |
| Weather — Forecast | v1 | |
| Air quality | v1 | |
Future additional endpoints/improvements for existing endpoints:
- Reverse geocoding, see [open-meteo/geocoding-api#6](https://github.com/open-meteo/geocoding-api/issues/6)
- Alerts, see [open-meteo/open-meteo#351](https://github.com/open-meteo/open-meteo/issues/351)
- Moon rise, set and phases, see [open-meteo/open-meteo#87](https://github.com/open-meteo/open-meteo/issues/87)
- Normals, see [open-meteo/open-meteo#361](https://github.com/open-meteo/open-meteo/issues/361)
## AccuWeather
*Last checked: 2024-04-16*
https://apidev.accuweather.com/developers/
| Endpoint | Version | Notes |
|------------------------|---------|------------------------------------------------------------|
| Location — Translate | v1 | |
| Location — Geoposition | v1 | |
| Current conditions | v1 | |
| Daily | v1 | Up to 45 days, but useless |
| Hourly | v1 | Up to 240 hours |
| Minutely | v1 | 1 minute precision |
| Alerts by geoposition | v1 | |
| Alerts by location | v1 | |
| Air quality | v2 | Up to 96 hours. TODO: Observational endpoint for SK and CN |
| Climo | v1 | |
## MET Norway
*Last checked: 2024-04-16*
https://api.met.no/
| Endpoint | Version | Notes |
|-------------------|---------|-----------------------------------------------------------------------------------------------------------|
| Location forecast | 2.0 | |
| Sunrise | 3.0 | It is technically feasible to retrieve data for future days, but requires two calls for each, so we avoid |
| Nowcast | 2.0 | Norway, Sweden, Finland and Denmark only |
| Air quality | 0.1 | Norway only |
Not yet implemented in app:
| Endpoint | Version | Notes |
|-------------|---------|----------------------------------------------------------------------------|
| MET alerts | 1.1 | Norway only by country code, wait for v2.0 in May to get alerts by lat,lon |
No location search endpoint exists, it uses Open-Meteo instead.
## OpenWeather
*Last checked: 2024-04-16*
https://openweathermap.org/api
| Endpoint | Version |
|-------------------------|---------|
| Current | 2.5 |
| 5 Day / 3 Hour Forecast | 2.5 |
| Air Pollution | 2.5 |
## Pirate Weather
*Last checked: 2025-10-30*
https://github.com/Pirate-Weather/pirateweather
| Endpoint | Version | Notes |
|----------|----------|------------------------|
| Forecast | v2.7.11 | V2.8 is in pre-release |
We should check regularly for additional fields we could use. Latest version checked is written above, everything more recent requires to check changelog.
## Météo-France
*Last checked: 2024-02-13*
| Endpoint | Version |
|-------------|---------|
| Forecast | v2 |
| Observation | v2 |
| Nowcast | v3 |
| Ephemeris | None |
| Warning | v3 |
Not used:
| Endpoint | Version | Notes |
|----------|---------|--------------------------------------------------------------------------------------|
| Places | V2 | Doesnt have mandatory timezone field, miss many data on countries other than France |
Uses Open-Meteo for location search.
## DMI
*To be documented*
## China
*Legacy source, undocumented*
## National Weather Service (NWS)
*To be documented*
## GeoSphere Austria
*To be documented*
## Bright Sky
*Last checked: 2024-04-16*
| Endpoint | Version |
|-----------------|---------|
| Weather | v2.1 |
| Current weather | v2.1 |
| Alerts | v2.1 |
## ECCC
*Last checked: 2024-01-26*
| Endpoint | Version |
|-------------|---------|
| Location | v2 |
## Israel Meteorological Service
*To be documented*
## SMHI
*Last checked: 2024-01-26*
| Endpoint | Version |
|----------|---------|
| Weather | 2 |
## MET Éireann
*To be documented*

98
docs/UPDATES.md Normal file
View file

@ -0,0 +1,98 @@
## Weather update process
*Latest update of this document: 2025-08-15 (v6.0.5-alpha)*
1. If the location refreshed is current location, the first thing done is refresh the current longitude and latitude from your location source.
- If it fails, it will fallback to latest known longitude and latitude, and continue to the next step.
- If we dont have latest known longitude and latitude (meaning there has never been any successful refresh), the refresh process for this location ends now.
- If refreshing manually, an error will be displayed in both cases.
- If refreshing in the background, an error will only be displayed if we dont have any latest known longitude and latitude.
2. If the coordinates changed OR address lookup source changed OR you just added a location from coordinates (and not from the search), we try to get from the address lookup source an update (city/province/country info). If no address lookup source is selected, we fallback to an offline reverse geocoding that only supports country lookup.
3. Starting from v6.0.5-alpha, if the address lookup is not our offline reverse geocoding and it gave us an ambiguous ISO 3166-1 alpha-2 code, we process it again with our offline reverse geocoding, so that it is consistent across all sources and make it easy for the weather sources to know which ISO 3166-1 alpha-2 codes they support.
4. Starting from v6.0.5-alpha, if the location is missing timezone info, we process it locally, based on the disambiguated ISO 3166-1 alpha-2 code to make the process faster.
Info: Some weather sources need what we call "location parameters" before we can get weather. An example is that we have a longitude/latitude, but some weather sources only want a city identifier or grid forecast identifier on the weather endpoint. In such cases, we ask the weather source to provide us these information before we can proceed to actual weather request. These information are then saved, and usually no longer requested if it is a manually added location or only if longitude/latitude changed if current location.
5. We group all features requested to the same source together to make a single request and we proceed this way if the data is no longer valid (see caching section below):
- If needed, we update location parameters.
- Then, we ask the source to provide us refreshed data for the features it was selected for and that are no longer up-to-date. If it failed for any or all of the features, we attempt to restore previous saved data for the failed features. For current data, we fallback to current hour forecast, unless its been less than 30 min (only starting from v6.0.9).
6. We gather all data from all sources together and complete it with:
- missing past data back to yesterday 00:00: this allows us to show you yesterday info when sources only support forecast and not past data
- extrapolated missing data (such as wet bulb temperature, humidity from dew point OR dew point from humidity, weather codes from all known data, etc)
- computed missing data (such as sunrise/sunset, moonrise/moonset and moon phase)
This process can happen in the background automatically or manually with slight behavior differences between the two:
## Background (or automatic) weather update
By default, background updates happens every 1.5 hours. You can disable or change this value in `Settings` > `Background updates`.
Android is in charge of executing that work more or less at your selected refresh rate preference. If, for some reason, it doesnt work, you may try the troubleshooting options from `Settings` > `Background updates`.
At your selected refresh rate, this is what happens:
- The weather for the first location is refreshed
- The weather for secondary locations are:
- not refreshed if you dont use multi cities widget or notification-widget, or data sharing feature (they will, however, be automatically refreshed if outdated as soon as you try to access them in the app)
- otherwise, refreshed once a day at most to avoid battery/bandwidth consumption in the background from less-used locations
- a maximum of 3 (widget), 4 (notification-widget) or 5 (data sharing) locations are refreshed in the background. If you use more, later locations are assumed to be less used, and they will be refreshed once you open them instead
When weather for the location(s) is done refreshing in the background, the following tasks are executed:
- If enabled, notifications are sent for each new severe alerts for the first location
- You will NOT receive notifications of alerts with minor severity (minimal to no known threat to life or property), but you may still receive notifications for alerts of unknown severity
- You will NOT receive notifications of alerts for locations other than your first location
- You will NOT receive notifications of updated existing alerts, even if the description or severity changed, unless the weather source decided to remove the previous alert and create a new alert
- You will NOT receive notifications of alerts if the alert source for your first location doesnt support alerts for your country/location
- You will NOT receive notifications of alerts if `Settings` > `Notifications` > `Notifications of weather alerts` is not enabled
- If enabled and if there are precipitation minute by minute for the first location, a notification of this precipitation is sent
- You will NOT receive notifications of precipitation for locations other than your first location
- You will NOT receive notifications of precipitation if the precipitation minute by minute source for your first location doesnt support precipitation minute by minute for your country/location
- You will NOT receive notifications of precipitation if `Settings` > `Notifications` > `Notifications of precipitation` is not enabled
- If used, widgets are updated with the latest weather data
- If used, the notification-widget is updated with the latest weather data
- If enabled, weather data of the first location is sent to Gadgetbridge
- Shortcuts (available on long press on icon on home screen) are updated
- If enabled and if its been more than 24 hours since last check, app updates are checked
## Manual weather update
By "manual" update, we talk about weather update happening on the main screen of the app.
This can happen when:
- You swipe to refresh
- From your location list, you access a location that has not been refreshed for more than your background update refresh rate (or if set to never, 1.5 hours)
- You change the sources used for your location
- [Open-Meteo] You change weather models used
When weather refresh for the location begins, the following task is executed:
- If enabled and if its been more than 24 hours since last check, app updates are checked
When weather for the location is done refreshing manually, the following tasks are executed:
- If used, widgets are updated with the latest weather data
- If used, the notification-widget is updated with the latest weather data
- If enabled, weather data of the first location is sent to Gadgetbridge
- Shortcuts (available on long press on icon on home screen) are updated
## Caching
Breezy Weather has another caching layer on top of existing caching mechanisms (HTTP headers).
Basically, depending on the features requested and your latest time of refresh, the same previous weather data may be restored.
Given different features have different caching delay, you may end up with a mix of restored weather data for some features, and newer data for other data.
| Feature | Non-restricted sources | Restricted sources¹ |
|-----------------|------------------------------------------------------|-------------------------------------------------------|
| Main weather | 5 min | 15 min |
| Current weather | 1 min | 15 min |
| Air quality | 5 min | 1 hour |
| Allergen | 5 min | 1 hour |
| Minutely | 1 min if minutely list is not empty, 5 min otherwise | 5 min if minutely list is not empty, 15 min otherwise |
| Alerts | 1 min if alert list is not empty, 5 min otherwise | 5 min if alert list is not empty, 1 hour otherwise |
| Normals | Only if this month is missing | Only if this month is missing |
Caching is ignored if coordinates changed from more than 5 kilometers, compared to previous known coordinates.
¹ Restricted sources are: OpenWeather, AEMET, CWA. They will become non-restricted if you use your own API key

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB