diff --git a/modules/default/weather/current.html b/modules/default/weather/current.html index 1e618306..56f8a91b 100644 --- a/modules/default/weather/current.html +++ b/modules/default/weather/current.html @@ -1,13 +1,43 @@ +{# + TODO: + - Show Humidity + - Show Units + _ Show Indoor Temperature + _ Show Indoor Humidity +#} + {% if current %} -
- - - {{current.windSpeed}} - {{current.cardinalWindDirection()}} - - - 00:00 -
+ {% if not config.onlyTemp %} +
+ + + {% if config.useBeaufort %} + {{current.beaufortWindSpeed() | round}} + {% else %} + {{current.windSpeed | round}} + {% endif %} + + {% if config.showWindDirection %} + + {% if config.showWindDirectionAsArrow %} + + {% else %} + {{current.cardinalWindDirection()}} + {% endif %} +   + + {% endif %} + + + + {% if current.nextSunAction() == "sunset" %} + {{current.sunset | formatTime}} + {% else %} + {{current.sunrise | formatTime}} + {% endif %} + +
+ {% endif %}
{{current.temperature | round(0 if config.roundTemp else 1)}}°
diff --git a/modules/default/weather/weather.js b/modules/default/weather/weather.js index f2993605..75cb1060 100644 --- a/modules/default/weather/weather.js +++ b/modules/default/weather/weather.js @@ -55,7 +55,7 @@ Module.register("weather",{ // Define required scripts. getStyles: function() { - return ["weather-icons.css", "weather.css"]; + return ["font-awesome.css", "weather-icons.css", "weather.css"]; }, // Return the scripts that are nessecery for the weather module. @@ -79,6 +79,9 @@ Module.register("weather",{ // Let the weather provider know we are starting. this.weatherProvider.start() + // Add custom filters + this.addFilters() + // Schedule the first update. this.scheduleUpdate(0) }, @@ -122,5 +125,26 @@ Module.register("weather",{ break; } }, nextLoad); + }, + + addFilters() { + var self = this + this.nunjucksEnvironment().addFilter("formatTime", function(date) { + date = moment(date) + + if (self.config.timeFormat !== 24) { + if (self.config.showPeriod) { + if (self.config.showPeriodUpper) { + return date.format("h:mm A") + } else { + return date.format("h:mm a") + } + } else { + return date.format("h:mm") + } + } + + return date.format("HH:mm") + }); } }); diff --git a/modules/default/weather/weatherobject.js b/modules/default/weather/weatherobject.js index 7448d118..4ccc4bac 100644 --- a/modules/default/weather/weatherobject.js +++ b/modules/default/weather/weatherobject.js @@ -5,11 +5,11 @@ * * By Michael Teeuw http://michaelteeuw.nl * MIT Licensed. - * + * * This class is the blueprint for a day which includes weather information. */ -// Currently this is focused on the information which is nessecery for the current weather. +// Currently this is focused on the information which is necessary for the current weather. // As soon as we start implementing the forecast, mode properties will be added. class WeatherObject { @@ -60,4 +60,21 @@ class WeatherObject { return "N"; } } + + beaufortWindSpeed () { + var kmh = this.windSpeed * 60 * 60 / 1000; + var speeds = [1, 5, 11, 19, 28, 38, 49, 61, 74, 88, 102, 117, 1000]; + for (var beaufort in speeds) { + var speed = speeds[beaufort]; + if (speed > kmh) { + return beaufort; + } + } + return 12; + } + + nextSunAction () { + var now = new Date(); + return (this.sunrise < now && this.sunset > now) ? "sunset" : "sunrise"; + } }; \ No newline at end of file diff --git a/modules/default/weather/weatherprovider.js b/modules/default/weather/weatherprovider.js index f31b22b7..bb5598f4 100644 --- a/modules/default/weather/weatherprovider.js +++ b/modules/default/weather/weatherprovider.js @@ -5,7 +5,7 @@ * * By Michael Teeuw http://michaelteeuw.nl * MIT Licensed. - * + * * This class is the blueprint for a weather provider. */