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.
*/