This a module for MagicMirror²
https://magicmirror.builders/
https://github.com/MichMich/MagicMirror
A weather module that displays current, hourly and daily forecast information using data from NOAA, not requiring API keys nor any fees. Of course, this means that this module is only useful for locations in the United States and its territories.
IMPORTANT: Although it supports metric units, the textual data from NOAA is in imperial units, so ultimately the output will be mixed (but with units clearly denoted).
This module incorporates code and inspiration from MMM-OpenWeatherForecast by Tom Hirschberger, licensed under the MIT License.
NOTE:* This module uses the Nunjucks templating system introduced in version 2.2.0 of MagicMirror. If you're seeing nothing on your display where you expect this module to appear, make sure your MagicMirror version is at least 2.2.0.
- Navigate into your MagicMirror
modulesfolder and execute
git clone https://github.com/supermem613/MMM-NOAAForecast.git. - Enter the new
MMM-NOAAForecastdirectory and executenpm install.
At a minimum you need to supply the following required configuration parameters:
latitudelongitude
Find out your latitude and longitude here:
https://www.latlong.net/.
| Option | Description |
|---|---|
updateInterval |
How frequently, in minutes, to poll for data. Be careful not to set this too frequent so that you don't exceed Dark Sky's 1000 free requests per day cap. Type NumberDefaults to 10 |
requestDelay |
In milliseconds, how long to delay the request. If you have multiple instances of the module running, set one of them to a delay of a second or two to keep the API calls from being too close together. Type NumberDefaults to 250 |
updateFadeSpeed |
How quickly in milliseconds to fade the module out and in upon data refresh. Set this to 0 for no fade.Type NumberDefaults to 500 (i.e.: 1/2 second). |
colored |
Whether to present module in colour or black-and-white. Note, if set to false, the monochramtic version of your chosen icon set will be forced if it exist.Type BooleanDefaults to true |
showCurrentConditions |
Whether to show current temperaure and current conditions icon. Type BooleanDefaults to true |
showExtraCurrentConditions |
Whether to show additional current conditions such as high/low temperatures, precipitation and wind speed. Type BooleanDefaults to true |
showSummary |
Whether to show the forecast summary. Type BooleanDefaults to true |
forecastHeaderText |
Show a header above the forecast display. Type StringDefaults to "" |
showForecastTableColumnHeaderIcons |
Whether to show icons column headers on the forecast table. Type BooleanDefaults to true |
showHourlyForecast |
Whether to show hourly forecast information. when set to true it works with the hourlyForecastInterval and maxHourliesToShow parameters.Type BooleanDefaults to true |
hourlyForecastInterval |
How many hours apart each listed hourly forecast is. Type NumberDefaults to 3 |
maxHourliesToShow |
How many hourly forecasts to list. Type NumberDefaults to 3 |
showDailyForecast |
Whether to show daily forecast information. when set to true it works with the maxDailiesToShow parameter.Type BooleanDefaults to true |
maxDailiesToShow |
How many daily forecasts to list. Type NumberDefaults to 3 |
showPrecipitation |
Whether to show precipitation information. This affects current conditions, hourly and daily forecasts Type BooleanDefaults to true |
showPrecipitationStartStop |
Whether to show when precipitation (rain or snow) is expected to start or stop. When enabled, the module analyzes hourly forecast data and displays a notification below the summary such as "Rain expected at 3 PM" or "Snow ending by 6 PM" if a change is detected within the next 24 hours. Type BooleanDefaults to false |
showWind |
Whether to show wind information. This affects current conditions, hourly and daily forecasts Type BooleanDefaults to true |
concise |
When set to true, this presents less information. (e.g.: shorter summary, no precipitation accumulation, no wind gusts, etc.)Type BooleanDefaults to true |
iconset |
Which icon set to use. See below for previews of the icon sets. Type StringDefaults to 1c |
mainIconset |
Which icon set to use for current weather. See below for previews of the icon sets. Type StringDefaults to iconset value |
useAnimatedIcons |
*** LEGACY, please use icon set '6fa' or '6oa' for animated icons *** Whether to use the Dark Sky's own animated icon set. When set to true, this will override your choice for |
animateMainIconOnly |
When set to true, only the main current conditions icon is animated. The rest use your choice for iconset (1c is a good match for the animated icon). If you are running on a low-powered device like a Raspberry Pi, performance may suffer if you set this to false. In my testing on a Pi 3b, enabling this ramped up CPU temperature by 15° - 20°, and fade transitions were not smooth.Type BooleanDefaults to true |
showInlineIcons |
Whether to prefix wind and precipitation information with an icon. Only affects the tiled layout.Type BooleanDefaults to true |
forecastLayout |
Can be set to tiled or table. How to display hourly and forecast information. See below for screenshot examples of each.Type StringDefaults to tiled |
label_gust/code> |
The label you wish to display for prefixing wind gusts. Type StringDefaults to "max". |
label_high |
The label you wish to display for prefixing high temperature. Type StringDefaults to "H". |
label_low |
The label you wish to display for prefixing low temperature. Type StringDefaults to "L". |
label_timeFormat |
How you want the time formatted for hourly forecast display. Accepts any valid moment.js format (https://momentjs.com/docs/#/displaying/format/). For example, specify short 24h format with "k[h]" (e.g.: 14h)Type StringDefaults to "h a" (e.g.: 9 am) |
label_days |
How you would like the days of the week displayed for daily forecasts. Assumes index 0 is Sunday.Type Array of StringsDefaults to ["Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat"] |
label_ordinals |
How you would like wind direction to be displayed. Assumes index 0 is North and proceeds clockwise.Type Array of StringsDefaults to ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"] |
{
module: "MMM-NOAAForecast",
header: "Weather",
position: "top_right",
classes: "default everyone",
disabled: false,
config: {
latitude: "51.506130",
longitude: "-0.090270",
iconset: "4c",
concise: false,
forecastLayout: "table"
}
},
This module is set to be 300px wide by default. If you wish to override it, you can add the following to your custom.css file:
.MMM-NOAAForecast .module-content {
width: 500px; /* adjust this to taste */
}
Most important elements of this module have one or more class names applied. Examine the MMM-NOAAForecast.css or inspect elements directly with your browser of choice to determine what class you would like to override.
Skycons - Animated icon set by Dark Sky
http://darkskyapp.github.io/skycons/
(using the fork created by Maxime Warner that allows individual details of the icons to be colored
https://github.com/maxdow/skycons)
Climacons by Adam Whitcroft
http://adamwhitcroft.com/climacons/
Free Weather Icons by Svilen Petrov
https://www.behance.net/gallery/12410195/Free-Weather-Icons
Weather Icons by Thom
(Designed for DuckDuckGo)
https://dribbble.com/shots/1832162-Weather-Icons
Sets 4 and 5 were found on Graphberry, but I couldn't find
the original artists.
https://www.graphberry.com/item/weather-icons
https://www.graphberry.com/item/weathera-weather-forecast-icons
Some of the icons were modified to better work with the module's structure and aesthetic.
MMM-OpenWeatherForecast by Tom Hirschberger
is licensed under the MIT License.
Data from NOAA

