Release 2.22.0 (#2983)
## [2.22.0] - 2023-01-01
Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge,
@KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails
and @Tom.
Special thanks to @khassel, @rejas and @sdetweil for taking over most
(if not all) of the work on this release as project collaborators. This
version would not be there without their effort. Thank you!
### Added
- Added test for remoteFile option in compliments module
- Added hourlyWeather functionality to Weather.gov weather provider
- Removed weatherEndpoint definition from weathergov.js (not used)
- Added css class names "today" and "tomorrow" for default calendar
- Added Collaboration.md
- Added new github action for dependency review (#2862)
- Added a WeatherProvider for Open-Meteo
- Added Yr as a weather provider
- Added config options "ignoreXOriginHeader" and
"ignoreContentSecurityPolicy"
### Removed
- Removed usage of internal fetch function of node until it is more
stable
### Updated
- Cleaned up test directory (#2937) and jest config (#2959)
- Wait for all modules to start before declaring the system ready
(#2487)
- Updated e2e tests (moved `done()` in helper functions) and use es6
syntax in all tests
- Updated da translation
- Rework weather module
- Make sure smhi provider api only gets a maximum of 6 digits
coordinates (#2955)
- Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
- Reworked how weatherproviders handle units (#2849)
- Use unix() method for parsing times, fix suntimes on the way (#2950)
- Refactor conversion functions into utils class (#2958)
- The `cors`-method in `server.js` now supports sending and recieving
HTTP headers
- Replace `…` by `…`
- Cleanup compliments module
- Updated dependencies including electron to v22 (#2903)
### Fixed
- Correctly show apparent temperature in SMHI weather provider
- Ensure updatenotification module isn't shown when local is _ahead_ of
remote
- Handle node_helper errors during startup (#2944)
- Possibility to change FontAwesome class in calendar, so icons like
`fab fa-facebook-square` works.
- Fix cors problems with newsfeed articles (as far as possible), allow
disabling cors per feed with option `useCorsProxy: false` (#2840)
- Tests not waiting for the application to start and stop before
starting the next test
- Fix electron tests failing sometimes in github workflow
- Fixed gap in clock module when displayed on the left side with
displayType=digital
- Fixed playwright issue by upgrading to v1.29.1 (#2969)
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: Karsten Hassel <hassel@gmx.de>
Co-authored-by: Malte Hallström <46646495+SkySails@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <michael@veeck.de>
Co-authored-by: dWoolridge <dwoolridge@charter.net>
Co-authored-by: Johan <jojjepersson@yahoo.se>
Co-authored-by: Dario Mratovich <dario_mratovich@hotmail.com>
Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com>
Co-authored-by: Naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: buxxi <buxxi@omfilm.net>
Co-authored-by: Thomas Hirschberger <47733292+Tom-Hirschberger@users.noreply.github.com>
Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com>
2023-01-01 18:09:08 +01:00
|
|
|
/* global WeatherProvider, WeatherObject, WeatherUtils */
|
2019-04-03 15:19:32 +01:00
|
|
|
|
2022-01-26 23:09:26 +01:00
|
|
|
/* MagicMirror²
|
2019-04-03 15:19:32 +01:00
|
|
|
* Module: Weather
|
|
|
|
*
|
|
|
|
* By Malcolm Oakes https://github.com/maloakes
|
|
|
|
* MIT Licensed.
|
|
|
|
*
|
|
|
|
* This class is a provider for UK Met Office Datapoint.
|
|
|
|
*/
|
|
|
|
WeatherProvider.register("ukmetoffice", {
|
|
|
|
// Set the name of the provider.
|
|
|
|
// This isn't strictly necessary, since it will fallback to the provider identifier
|
|
|
|
// But for debugging (and future alerts) it would be nice to have the real name.
|
|
|
|
providerName: "UK Met Office",
|
|
|
|
|
2021-01-23 11:21:56 +01:00
|
|
|
// Set the default config properties that is specific to this provider
|
|
|
|
defaults: {
|
|
|
|
apiBase: "http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/all/json/",
|
|
|
|
locationID: false,
|
|
|
|
apiKey: ""
|
|
|
|
},
|
|
|
|
|
2019-04-03 15:19:32 +01:00
|
|
|
// Overwrite the fetchCurrentWeather method.
|
|
|
|
fetchCurrentWeather() {
|
|
|
|
this.fetchData(this.getUrl("3hourly"))
|
2020-05-11 22:22:32 +02:00
|
|
|
.then((data) => {
|
2020-04-21 10:37:24 +02:00
|
|
|
if (!data || !data.SiteRep || !data.SiteRep.DV || !data.SiteRep.DV.Location || !data.SiteRep.DV.Location.Period || data.SiteRep.DV.Location.Period.length === 0) {
|
2019-04-03 15:19:32 +01:00
|
|
|
// Did not receive usable new data.
|
|
|
|
// Maybe this needs a better check?
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setFetchedLocation(`${data.SiteRep.DV.Location.name}, ${data.SiteRep.DV.Location.country}`);
|
|
|
|
|
|
|
|
const currentWeather = this.generateWeatherObjectFromCurrentWeather(data);
|
|
|
|
this.setCurrentWeather(currentWeather);
|
|
|
|
})
|
2020-05-11 22:22:32 +02:00
|
|
|
.catch(function (request) {
|
2019-04-03 15:19:32 +01:00
|
|
|
Log.error("Could not load data ... ", request);
|
|
|
|
})
|
2020-04-20 11:15:11 +02:00
|
|
|
.finally(() => this.updateAvailable());
|
2019-04-03 15:19:32 +01:00
|
|
|
},
|
|
|
|
|
|
|
|
// Overwrite the fetchCurrentWeather method.
|
|
|
|
fetchWeatherForecast() {
|
|
|
|
this.fetchData(this.getUrl("daily"))
|
2020-05-11 22:22:32 +02:00
|
|
|
.then((data) => {
|
2020-04-21 10:37:24 +02:00
|
|
|
if (!data || !data.SiteRep || !data.SiteRep.DV || !data.SiteRep.DV.Location || !data.SiteRep.DV.Location.Period || data.SiteRep.DV.Location.Period.length === 0) {
|
2019-04-03 15:19:32 +01:00
|
|
|
// Did not receive usable new data.
|
|
|
|
// Maybe this needs a better check?
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setFetchedLocation(`${data.SiteRep.DV.Location.name}, ${data.SiteRep.DV.Location.country}`);
|
|
|
|
|
|
|
|
const forecast = this.generateWeatherObjectsFromForecast(data);
|
|
|
|
this.setWeatherForecast(forecast);
|
|
|
|
})
|
2020-05-11 22:22:32 +02:00
|
|
|
.catch(function (request) {
|
2019-04-03 15:19:32 +01:00
|
|
|
Log.error("Could not load data ... ", request);
|
|
|
|
})
|
2020-04-20 11:15:11 +02:00
|
|
|
.finally(() => this.updateAvailable());
|
2019-04-03 15:19:32 +01:00
|
|
|
},
|
|
|
|
|
|
|
|
/** UK Met Office Specific Methods - These are not part of the default provider methods */
|
|
|
|
/*
|
|
|
|
* Gets the complete url for the request
|
|
|
|
*/
|
|
|
|
getUrl(forecastType) {
|
|
|
|
return this.config.apiBase + this.config.locationID + this.getParams(forecastType);
|
|
|
|
},
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Generate a WeatherObject based on currentWeatherInformation
|
|
|
|
*/
|
|
|
|
generateWeatherObjectFromCurrentWeather(currentWeatherData) {
|
Release 2.22.0 (#2983)
## [2.22.0] - 2023-01-01
Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge,
@KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails
and @Tom.
Special thanks to @khassel, @rejas and @sdetweil for taking over most
(if not all) of the work on this release as project collaborators. This
version would not be there without their effort. Thank you!
### Added
- Added test for remoteFile option in compliments module
- Added hourlyWeather functionality to Weather.gov weather provider
- Removed weatherEndpoint definition from weathergov.js (not used)
- Added css class names "today" and "tomorrow" for default calendar
- Added Collaboration.md
- Added new github action for dependency review (#2862)
- Added a WeatherProvider for Open-Meteo
- Added Yr as a weather provider
- Added config options "ignoreXOriginHeader" and
"ignoreContentSecurityPolicy"
### Removed
- Removed usage of internal fetch function of node until it is more
stable
### Updated
- Cleaned up test directory (#2937) and jest config (#2959)
- Wait for all modules to start before declaring the system ready
(#2487)
- Updated e2e tests (moved `done()` in helper functions) and use es6
syntax in all tests
- Updated da translation
- Rework weather module
- Make sure smhi provider api only gets a maximum of 6 digits
coordinates (#2955)
- Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
- Reworked how weatherproviders handle units (#2849)
- Use unix() method for parsing times, fix suntimes on the way (#2950)
- Refactor conversion functions into utils class (#2958)
- The `cors`-method in `server.js` now supports sending and recieving
HTTP headers
- Replace `…` by `…`
- Cleanup compliments module
- Updated dependencies including electron to v22 (#2903)
### Fixed
- Correctly show apparent temperature in SMHI weather provider
- Ensure updatenotification module isn't shown when local is _ahead_ of
remote
- Handle node_helper errors during startup (#2944)
- Possibility to change FontAwesome class in calendar, so icons like
`fab fa-facebook-square` works.
- Fix cors problems with newsfeed articles (as far as possible), allow
disabling cors per feed with option `useCorsProxy: false` (#2840)
- Tests not waiting for the application to start and stop before
starting the next test
- Fix electron tests failing sometimes in github workflow
- Fixed gap in clock module when displayed on the left side with
displayType=digital
- Fixed playwright issue by upgrading to v1.29.1 (#2969)
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: Karsten Hassel <hassel@gmx.de>
Co-authored-by: Malte Hallström <46646495+SkySails@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <michael@veeck.de>
Co-authored-by: dWoolridge <dwoolridge@charter.net>
Co-authored-by: Johan <jojjepersson@yahoo.se>
Co-authored-by: Dario Mratovich <dario_mratovich@hotmail.com>
Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com>
Co-authored-by: Naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: buxxi <buxxi@omfilm.net>
Co-authored-by: Thomas Hirschberger <47733292+Tom-Hirschberger@users.noreply.github.com>
Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com>
2023-01-01 18:09:08 +01:00
|
|
|
const currentWeather = new WeatherObject();
|
2021-03-21 16:58:12 +01:00
|
|
|
const location = currentWeatherData.SiteRep.DV.Location;
|
2019-04-03 15:19:32 +01:00
|
|
|
|
|
|
|
// data times are always UTC
|
2020-04-20 11:15:11 +02:00
|
|
|
let nowUtc = moment.utc();
|
|
|
|
let midnightUtc = nowUtc.clone().startOf("day");
|
2019-04-03 15:19:32 +01:00
|
|
|
let timeInMins = nowUtc.diff(midnightUtc, "minutes");
|
|
|
|
|
|
|
|
// loop round each of the (5) periods, look for today (the first period may be yesterday)
|
2021-03-21 16:58:12 +01:00
|
|
|
for (const period of location.Period) {
|
|
|
|
const periodDate = moment.utc(period.value.substr(0, 10), "YYYY-MM-DD");
|
2019-04-03 15:19:32 +01:00
|
|
|
|
|
|
|
// ignore if period is before today
|
|
|
|
if (periodDate.isSameOrAfter(moment.utc().startOf("day"))) {
|
|
|
|
// check this is the period we want, after today the diff will be -ve
|
|
|
|
if (moment().diff(periodDate, "minutes") > 0) {
|
|
|
|
// loop round the reports looking for the one we are in
|
|
|
|
// $ value specifies the time in minutes-of-the-day: 0, 180, 360,...1260
|
2021-03-21 16:58:12 +01:00
|
|
|
for (const rep of period.Rep) {
|
|
|
|
const p = rep.$;
|
2020-05-11 22:22:32 +02:00
|
|
|
if (timeInMins >= p && timeInMins - 180 < p) {
|
2019-04-03 15:19:32 +01:00
|
|
|
// finally got the one we want, so populate weather object
|
2021-03-21 16:58:12 +01:00
|
|
|
currentWeather.humidity = rep.H;
|
Release 2.22.0 (#2983)
## [2.22.0] - 2023-01-01
Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge,
@KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails
and @Tom.
Special thanks to @khassel, @rejas and @sdetweil for taking over most
(if not all) of the work on this release as project collaborators. This
version would not be there without their effort. Thank you!
### Added
- Added test for remoteFile option in compliments module
- Added hourlyWeather functionality to Weather.gov weather provider
- Removed weatherEndpoint definition from weathergov.js (not used)
- Added css class names "today" and "tomorrow" for default calendar
- Added Collaboration.md
- Added new github action for dependency review (#2862)
- Added a WeatherProvider for Open-Meteo
- Added Yr as a weather provider
- Added config options "ignoreXOriginHeader" and
"ignoreContentSecurityPolicy"
### Removed
- Removed usage of internal fetch function of node until it is more
stable
### Updated
- Cleaned up test directory (#2937) and jest config (#2959)
- Wait for all modules to start before declaring the system ready
(#2487)
- Updated e2e tests (moved `done()` in helper functions) and use es6
syntax in all tests
- Updated da translation
- Rework weather module
- Make sure smhi provider api only gets a maximum of 6 digits
coordinates (#2955)
- Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
- Reworked how weatherproviders handle units (#2849)
- Use unix() method for parsing times, fix suntimes on the way (#2950)
- Refactor conversion functions into utils class (#2958)
- The `cors`-method in `server.js` now supports sending and recieving
HTTP headers
- Replace `…` by `…`
- Cleanup compliments module
- Updated dependencies including electron to v22 (#2903)
### Fixed
- Correctly show apparent temperature in SMHI weather provider
- Ensure updatenotification module isn't shown when local is _ahead_ of
remote
- Handle node_helper errors during startup (#2944)
- Possibility to change FontAwesome class in calendar, so icons like
`fab fa-facebook-square` works.
- Fix cors problems with newsfeed articles (as far as possible), allow
disabling cors per feed with option `useCorsProxy: false` (#2840)
- Tests not waiting for the application to start and stop before
starting the next test
- Fix electron tests failing sometimes in github workflow
- Fixed gap in clock module when displayed on the left side with
displayType=digital
- Fixed playwright issue by upgrading to v1.29.1 (#2969)
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: Karsten Hassel <hassel@gmx.de>
Co-authored-by: Malte Hallström <46646495+SkySails@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <michael@veeck.de>
Co-authored-by: dWoolridge <dwoolridge@charter.net>
Co-authored-by: Johan <jojjepersson@yahoo.se>
Co-authored-by: Dario Mratovich <dario_mratovich@hotmail.com>
Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com>
Co-authored-by: Naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: buxxi <buxxi@omfilm.net>
Co-authored-by: Thomas Hirschberger <47733292+Tom-Hirschberger@users.noreply.github.com>
Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com>
2023-01-01 18:09:08 +01:00
|
|
|
currentWeather.temperature = rep.T;
|
|
|
|
currentWeather.feelsLikeTemp = rep.F;
|
2021-03-21 16:58:12 +01:00
|
|
|
currentWeather.precipitation = parseInt(rep.Pp);
|
Release 2.22.0 (#2983)
## [2.22.0] - 2023-01-01
Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge,
@KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails
and @Tom.
Special thanks to @khassel, @rejas and @sdetweil for taking over most
(if not all) of the work on this release as project collaborators. This
version would not be there without their effort. Thank you!
### Added
- Added test for remoteFile option in compliments module
- Added hourlyWeather functionality to Weather.gov weather provider
- Removed weatherEndpoint definition from weathergov.js (not used)
- Added css class names "today" and "tomorrow" for default calendar
- Added Collaboration.md
- Added new github action for dependency review (#2862)
- Added a WeatherProvider for Open-Meteo
- Added Yr as a weather provider
- Added config options "ignoreXOriginHeader" and
"ignoreContentSecurityPolicy"
### Removed
- Removed usage of internal fetch function of node until it is more
stable
### Updated
- Cleaned up test directory (#2937) and jest config (#2959)
- Wait for all modules to start before declaring the system ready
(#2487)
- Updated e2e tests (moved `done()` in helper functions) and use es6
syntax in all tests
- Updated da translation
- Rework weather module
- Make sure smhi provider api only gets a maximum of 6 digits
coordinates (#2955)
- Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
- Reworked how weatherproviders handle units (#2849)
- Use unix() method for parsing times, fix suntimes on the way (#2950)
- Refactor conversion functions into utils class (#2958)
- The `cors`-method in `server.js` now supports sending and recieving
HTTP headers
- Replace `…` by `…`
- Cleanup compliments module
- Updated dependencies including electron to v22 (#2903)
### Fixed
- Correctly show apparent temperature in SMHI weather provider
- Ensure updatenotification module isn't shown when local is _ahead_ of
remote
- Handle node_helper errors during startup (#2944)
- Possibility to change FontAwesome class in calendar, so icons like
`fab fa-facebook-square` works.
- Fix cors problems with newsfeed articles (as far as possible), allow
disabling cors per feed with option `useCorsProxy: false` (#2840)
- Tests not waiting for the application to start and stop before
starting the next test
- Fix electron tests failing sometimes in github workflow
- Fixed gap in clock module when displayed on the left side with
displayType=digital
- Fixed playwright issue by upgrading to v1.29.1 (#2969)
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: Karsten Hassel <hassel@gmx.de>
Co-authored-by: Malte Hallström <46646495+SkySails@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <michael@veeck.de>
Co-authored-by: dWoolridge <dwoolridge@charter.net>
Co-authored-by: Johan <jojjepersson@yahoo.se>
Co-authored-by: Dario Mratovich <dario_mratovich@hotmail.com>
Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com>
Co-authored-by: Naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: buxxi <buxxi@omfilm.net>
Co-authored-by: Thomas Hirschberger <47733292+Tom-Hirschberger@users.noreply.github.com>
Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com>
2023-01-01 18:09:08 +01:00
|
|
|
currentWeather.windSpeed = WeatherUtils.convertWindToMetric(rep.S);
|
|
|
|
currentWeather.windDirection = WeatherUtils.convertWindDirection(rep.D);
|
2021-03-21 16:58:12 +01:00
|
|
|
currentWeather.weatherType = this.convertWeatherType(rep.W);
|
2019-04-03 15:19:32 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// determine the sunrise/sunset times - not supplied in UK Met Office data
|
2021-08-31 21:41:27 +02:00
|
|
|
currentWeather.updateSunTime(location.lat, location.lon);
|
2019-04-03 15:19:32 +01:00
|
|
|
|
|
|
|
return currentWeather;
|
|
|
|
},
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Generate WeatherObjects based on forecast information
|
|
|
|
*/
|
|
|
|
generateWeatherObjectsFromForecast(forecasts) {
|
|
|
|
const days = [];
|
|
|
|
|
|
|
|
// loop round the (5) periods getting the data
|
|
|
|
// for each period array, Day is [0], Night is [1]
|
2021-03-21 16:58:12 +01:00
|
|
|
for (const period of forecasts.SiteRep.DV.Location.Period) {
|
Release 2.22.0 (#2983)
## [2.22.0] - 2023-01-01
Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge,
@KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails
and @Tom.
Special thanks to @khassel, @rejas and @sdetweil for taking over most
(if not all) of the work on this release as project collaborators. This
version would not be there without their effort. Thank you!
### Added
- Added test for remoteFile option in compliments module
- Added hourlyWeather functionality to Weather.gov weather provider
- Removed weatherEndpoint definition from weathergov.js (not used)
- Added css class names "today" and "tomorrow" for default calendar
- Added Collaboration.md
- Added new github action for dependency review (#2862)
- Added a WeatherProvider for Open-Meteo
- Added Yr as a weather provider
- Added config options "ignoreXOriginHeader" and
"ignoreContentSecurityPolicy"
### Removed
- Removed usage of internal fetch function of node until it is more
stable
### Updated
- Cleaned up test directory (#2937) and jest config (#2959)
- Wait for all modules to start before declaring the system ready
(#2487)
- Updated e2e tests (moved `done()` in helper functions) and use es6
syntax in all tests
- Updated da translation
- Rework weather module
- Make sure smhi provider api only gets a maximum of 6 digits
coordinates (#2955)
- Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
- Reworked how weatherproviders handle units (#2849)
- Use unix() method for parsing times, fix suntimes on the way (#2950)
- Refactor conversion functions into utils class (#2958)
- The `cors`-method in `server.js` now supports sending and recieving
HTTP headers
- Replace `…` by `…`
- Cleanup compliments module
- Updated dependencies including electron to v22 (#2903)
### Fixed
- Correctly show apparent temperature in SMHI weather provider
- Ensure updatenotification module isn't shown when local is _ahead_ of
remote
- Handle node_helper errors during startup (#2944)
- Possibility to change FontAwesome class in calendar, so icons like
`fab fa-facebook-square` works.
- Fix cors problems with newsfeed articles (as far as possible), allow
disabling cors per feed with option `useCorsProxy: false` (#2840)
- Tests not waiting for the application to start and stop before
starting the next test
- Fix electron tests failing sometimes in github workflow
- Fixed gap in clock module when displayed on the left side with
displayType=digital
- Fixed playwright issue by upgrading to v1.29.1 (#2969)
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: Karsten Hassel <hassel@gmx.de>
Co-authored-by: Malte Hallström <46646495+SkySails@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <michael@veeck.de>
Co-authored-by: dWoolridge <dwoolridge@charter.net>
Co-authored-by: Johan <jojjepersson@yahoo.se>
Co-authored-by: Dario Mratovich <dario_mratovich@hotmail.com>
Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com>
Co-authored-by: Naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: buxxi <buxxi@omfilm.net>
Co-authored-by: Thomas Hirschberger <47733292+Tom-Hirschberger@users.noreply.github.com>
Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com>
2023-01-01 18:09:08 +01:00
|
|
|
const weather = new WeatherObject();
|
2019-04-03 15:19:32 +01:00
|
|
|
|
|
|
|
// data times are always UTC
|
2021-03-21 16:58:12 +01:00
|
|
|
const dateStr = period.value;
|
2020-05-11 22:22:32 +02:00
|
|
|
let periodDate = moment.utc(dateStr.substr(0, 10), "YYYY-MM-DD");
|
2019-04-03 15:19:32 +01:00
|
|
|
|
|
|
|
// ignore if period is before today
|
|
|
|
if (periodDate.isSameOrAfter(moment.utc().startOf("day"))) {
|
|
|
|
// populate the weather object
|
2020-05-11 22:22:32 +02:00
|
|
|
weather.date = moment.utc(dateStr.substr(0, 10), "YYYY-MM-DD");
|
Release 2.22.0 (#2983)
## [2.22.0] - 2023-01-01
Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge,
@KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails
and @Tom.
Special thanks to @khassel, @rejas and @sdetweil for taking over most
(if not all) of the work on this release as project collaborators. This
version would not be there without their effort. Thank you!
### Added
- Added test for remoteFile option in compliments module
- Added hourlyWeather functionality to Weather.gov weather provider
- Removed weatherEndpoint definition from weathergov.js (not used)
- Added css class names "today" and "tomorrow" for default calendar
- Added Collaboration.md
- Added new github action for dependency review (#2862)
- Added a WeatherProvider for Open-Meteo
- Added Yr as a weather provider
- Added config options "ignoreXOriginHeader" and
"ignoreContentSecurityPolicy"
### Removed
- Removed usage of internal fetch function of node until it is more
stable
### Updated
- Cleaned up test directory (#2937) and jest config (#2959)
- Wait for all modules to start before declaring the system ready
(#2487)
- Updated e2e tests (moved `done()` in helper functions) and use es6
syntax in all tests
- Updated da translation
- Rework weather module
- Make sure smhi provider api only gets a maximum of 6 digits
coordinates (#2955)
- Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
- Reworked how weatherproviders handle units (#2849)
- Use unix() method for parsing times, fix suntimes on the way (#2950)
- Refactor conversion functions into utils class (#2958)
- The `cors`-method in `server.js` now supports sending and recieving
HTTP headers
- Replace `…` by `…`
- Cleanup compliments module
- Updated dependencies including electron to v22 (#2903)
### Fixed
- Correctly show apparent temperature in SMHI weather provider
- Ensure updatenotification module isn't shown when local is _ahead_ of
remote
- Handle node_helper errors during startup (#2944)
- Possibility to change FontAwesome class in calendar, so icons like
`fab fa-facebook-square` works.
- Fix cors problems with newsfeed articles (as far as possible), allow
disabling cors per feed with option `useCorsProxy: false` (#2840)
- Tests not waiting for the application to start and stop before
starting the next test
- Fix electron tests failing sometimes in github workflow
- Fixed gap in clock module when displayed on the left side with
displayType=digital
- Fixed playwright issue by upgrading to v1.29.1 (#2969)
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: Karsten Hassel <hassel@gmx.de>
Co-authored-by: Malte Hallström <46646495+SkySails@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <michael@veeck.de>
Co-authored-by: dWoolridge <dwoolridge@charter.net>
Co-authored-by: Johan <jojjepersson@yahoo.se>
Co-authored-by: Dario Mratovich <dario_mratovich@hotmail.com>
Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com>
Co-authored-by: Naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: buxxi <buxxi@omfilm.net>
Co-authored-by: Thomas Hirschberger <47733292+Tom-Hirschberger@users.noreply.github.com>
Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com>
2023-01-01 18:09:08 +01:00
|
|
|
weather.minTemperature = period.Rep[1].Nm;
|
|
|
|
weather.maxTemperature = period.Rep[0].Dm;
|
2021-03-21 16:58:12 +01:00
|
|
|
weather.weatherType = this.convertWeatherType(period.Rep[0].W);
|
|
|
|
weather.precipitation = parseInt(period.Rep[0].PPd);
|
2019-04-03 15:19:32 +01:00
|
|
|
|
|
|
|
days.push(weather);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return days;
|
|
|
|
},
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Convert the Met Office icons to a more usable name.
|
|
|
|
*/
|
|
|
|
convertWeatherType(weatherType) {
|
|
|
|
const weatherTypes = {
|
|
|
|
0: "night-clear",
|
|
|
|
1: "day-sunny",
|
|
|
|
2: "night-alt-cloudy",
|
|
|
|
3: "day-cloudy",
|
|
|
|
5: "fog",
|
|
|
|
6: "fog",
|
|
|
|
7: "cloudy",
|
|
|
|
8: "cloud",
|
|
|
|
9: "night-sprinkle",
|
|
|
|
10: "day-sprinkle",
|
|
|
|
11: "raindrops",
|
|
|
|
12: "sprinkle",
|
|
|
|
13: "night-alt-showers",
|
|
|
|
14: "day-showers",
|
|
|
|
15: "rain",
|
|
|
|
16: "night-alt-sleet",
|
|
|
|
17: "day-sleet",
|
|
|
|
18: "sleet",
|
|
|
|
19: "night-alt-hail",
|
|
|
|
20: "day-hail",
|
|
|
|
21: "hail",
|
|
|
|
22: "night-alt-snow",
|
|
|
|
23: "day-snow",
|
|
|
|
24: "snow",
|
|
|
|
25: "night-alt-snow",
|
|
|
|
26: "day-snow",
|
|
|
|
27: "snow",
|
|
|
|
28: "night-alt-thunderstorm",
|
|
|
|
29: "day-thunderstorm",
|
|
|
|
30: "thunderstorm"
|
|
|
|
};
|
|
|
|
|
|
|
|
return weatherTypes.hasOwnProperty(weatherType) ? weatherTypes[weatherType] : null;
|
|
|
|
},
|
|
|
|
|
2021-09-02 20:35:43 +02:00
|
|
|
/**
|
2019-04-03 15:19:32 +01:00
|
|
|
* Generates an url with api parameters based on the config.
|
|
|
|
*
|
2021-09-02 20:35:43 +02:00
|
|
|
* @param {string} forecastType daily or 3hourly forecast
|
|
|
|
* @returns {string} url
|
2019-04-03 15:19:32 +01:00
|
|
|
*/
|
|
|
|
getParams(forecastType) {
|
|
|
|
let params = "?";
|
|
|
|
params += "res=" + forecastType;
|
|
|
|
params += "&key=" + this.config.apiKey;
|
|
|
|
return params;
|
|
|
|
}
|
|
|
|
});
|