Hourly Darksky Module for MagicMirror
Clone or download
jacquesCedric Initial
Seems to chug along nicely.
Latest commit b65c8b1 May 23, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
MMM-darksky-hourly.css Initial May 23, 2018
MMM-darksky-hourly.js Initial May 23, 2018
README.md Initial May 23, 2018
jsonp.js Initial May 23, 2018
screenshot.png Initial May 23, 2018



This an extension for MagicMirror that adds localized weather using the Dark Sky API (originally Forecast.io) -- the same service that powers the Dark Sky App.


This is a heavily modified version of MMM-forecast-io that aims to present current and hourly information on temperature and likelihood of rain.

Using the module

To use this module, add it to the modules array in the config/config.js file:

modules: [
    module: 'MMM-darksky-hourly',
    position: 'top_right',  // This can be any of the regions.
    config: {
      // See 'Configuration options' for more information.
      apiKey: 'abcde12345abcde12345abcde12345ab', // Dark Sky API key.
      latitude:   16.77532,
      longitude: -3.008265

Configuration options

Option Description
apiKey The Dark Sky API key, which can be obtained by creating an Dark Sky API account.

This value is REQUIRED
units What units to use. Specified by config.js

Possible values: config.units = Specified by config.js, default = Kelvin, metric = Celsius, imperial =Fahrenheit
Default value: config.units
twentyFourHourTime Whether to use 24-hour format time or not

Possible values: true = Time presented as XX:00, false = Time present as XXam/pm
Default value: true
showPrecipitationPossibilityInRow Show chance of precipitation at each hour

Possible values: true = Display precipitation possibility, false = Do not display precipitation details
Default value: true
showDayInRow Show day that hour occurs in

Possible values: true = Display day in row, false = Do not display day in row
Default value: true
showIconInRow Show weather icon in each hourly row

Possible values: true = Display icon in row, false = Do not display icon in row
Default value: true
language The language of the weather text.

Possible values: en, nl, ru, etc ...
Default value: uses value of config.language
updateInterval How often does the content needs to be fetched? (Milliseconds)

Forecast.io enforces a 1,000/day request limit, so if you run your mirror constantly, anything below 90,000 (every 1.5 minutes) may require payment information or be blocked.

Possible values: 1000 - 86400000
Default value: 600000 (10 minutes)
animationSpeed Speed of the update animation. (Milliseconds)

Possible values:0 - 5000
Default value: 2000 (2 seconds)
initialLoadDelay The initial delay before loading. If you have multiple modules that use the same API key, you might want to delay one of the requests. (Milliseconds)

Possible values: 1000 - 5000
Default value: 0
retryDelay The delay before retrying after a request failure. (Milliseconds)

Possible values: 1000 - 60000
Default value: 2500
latitude The latitude location in decimal. Set this (and longitude) as the location for the forecast. If this is not set, the module will attempt to approximate using browser geolocation.

Example value: 16.77532
Default value: null
longitude The longitude location in decimal. Set this (and latitude) as the location for the forecast. If this is not set, the module will attempt to approximate using browser geolocation.

Example value: -3.008265
Default value: null
apiBase The Dark Sky API base URL.

Default value: 'https://api.darksky.net/forecast'
maxHoursForecast Limit how many hours of weather forecast.

Default value: 8
iconTable The conversion table to convert the weather conditions to weather-icons.

Default value:
iconTable: {
      'clear-day':           'wi-day-sunny',
      'clear-night':         'wi-night-clear',
      'rain':                'wi-rain',
      'snow':                'wi-snow',
      'sleet':               'wi-rain-mix',
      'wind':                'wi-cloudy-gusts',
      'fog':                 'wi-fog',
      'cloudy':              'wi-cloudy',
      'partly-cloudy-day':   'wi-day-cloudy',
      'partly-cloudy-night': 'wi-night-alt-cloudy',
      'hail':                'wi-hail',
      'thunderstorm':        'wi-thunderstorm',
      'tornado':             'wi-tornado'