diff --git a/modules/default/weather/providers/weatherflow.js b/modules/default/weather/providers/weatherflow.js index 294d4191..af332000 100644 --- a/modules/default/weather/providers/weatherflow.js +++ b/modules/default/weather/providers/weatherflow.js @@ -14,73 +14,68 @@ WeatherProvider.register("weatherflow", { // Set the name of the provider. // Not strictly required, but helps for debugging - providerName: "WeatherFlow", + providerName: "WeatherFlow", - // Set the default config properties that is specific to this provider - defaults: { + // Set the default config properties that is specific to this provider + defaults: { apiBase: "https://swd.weatherflow.com/swd/rest/", token: "", - stationid: "", + stationid: "" }, - units: { + units: { imperial: "us", metric: "si" }, + fetchCurrentWeather() { + this.fetchData(this.getUrl()) + .then((data) => { + const currentWeather = new WeatherObject(this.config.units, this.config.tempUnits, this.config.windUnits, this.config.useKmh); + currentWeather.date = moment(); - fetchCurrentWeather() { - this.fetchData(this.getUrl()) - .then((data) => { - const currentWeather = new WeatherObject(this.config.units, this.config.tempUnits, this.config.windUnits, this.config.useKmh); - currentWeather.date = moment(); - - currentWeather.humidity = data.current_conditions.relative_humidity; - currentWeather.temperature = data.current_conditions.air_temperature; - currentWeather.windSpeed = data.current_conditions.wind_avg; - currentWeather.windDirection = data.current_conditions.wind_direction; - currentWeather.weatherType = data.forecast.daily[0].icon; - currentWeather.sunrise = moment(data.forecast.daily[0].sunrise), "X"; - currentWeather.sunset = moment(data.forecast.daily[0].sunset, "X"); - this.setCurrentWeather(currentWeather); - - }) - .catch(function (request) { + currentWeather.humidity = data.current_conditions.relative_humidity; + currentWeather.temperature = data.current_conditions.air_temperature; + currentWeather.windSpeed = data.current_conditions.wind_avg; + currentWeather.windDirection = data.current_conditions.wind_direction; + currentWeather.weatherType = data.forecast.daily[0].icon; + (currentWeather.sunrise = moment(data.forecast.daily[0].sunrise)), "X"; + currentWeather.sunset = moment(data.forecast.daily[0].sunset, "X"); + this.setCurrentWeather(currentWeather); + }) + .catch(function (request) { Log.error("Could not load data ... ", request); }) .finally(() => this.updateAvailable()); - }, - - fetchWeatherForecast() { - this.fetchData(this.getUrl()) - .then((data) => { - const days = []; + }, - for(const forecast of data.forecast.daily) { + fetchWeatherForecast() { + this.fetchData(this.getUrl()) + .then((data) => { + const days = []; - const weather = new WeatherObject(this.config.units, this.config.tempUnits, this.config.windUnits, this.config.useKmh); + for (const forecast of data.forecast.daily) { + const weather = new WeatherObject(this.config.units, this.config.tempUnits, this.config.windUnits, this.config.useKmh); - weather.date = moment(forecast.day_start_local, "X"); - weather.minTemperature = forecast.air_temp_low; - weather.maxTemperature = forecast.air_temp_high; - weather.weatherType = forecast.icon; - weather.snow = 0; + weather.date = moment(forecast.day_start_local, "X"); + weather.minTemperature = forecast.air_temp_low; + weather.maxTemperature = forecast.air_temp_high; + weather.weatherType = forecast.icon; + weather.snow = 0; + days.push(weather); + } - days.push(weather); - } + this.setWeatherForecast(days); + }) + .catch(function (request) { + Log.error("Could not load data ... ", request); + }) + .finally(() => this.updateAvailable()); + }, - this.setWeatherForecast(days); - - }) - .catch(function (request) { - Log.error("Could not load data ... ", request); - }) - .finally(() => this.updateAvailable()); - }, - - // Create a URL from the config and base URL. - getUrl() { - return this.config.apiBase + "better_forecast?station_id=" + this.config.stationid + "&token=" + this.config.token - } - }); \ No newline at end of file + // Create a URL from the config and base URL. + getUrl() { + return this.config.apiBase + "better_forecast?station_id=" + this.config.stationid + "&token=" + this.config.token; + } +});