Skip to content
MagicMirror² module to show Dutch train information
JavaScript CSS
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Multiple changes: Nov 11, 2016
.stylelintrc Add grunt and verification Nov 22, 2016
.travis.yml Update node version to fix TravisCI Apr 2, 2019
Gruntfile.js Run eslint on staged files only Jan 18, 2017
nstreinen.css Fix lint errors Nov 22, 2016
nstreinen.js Improve error msg for invalid API key. Fixes #23 Aug 12, 2019
package-lock.json Update packge-lock.json Jul 22, 2019
package.json Update dependencies Jun 24, 2019
stations.js Show errors May 31, 2019

NS Trains - MagicMirror² module

Build Status

This is a module for MagicMirror². Shows informantion on trains departuring a configurable Dutch trainstation.

(old images, will be replaced for V2) Example Visualization Example Visualization with destination

Installing the module

To install the module, just clone this repository to your modules folder:

  • git clone nstreinen
  • cd nstreinen
  • npm install to install the dependencies

Updating the module

Two simple steps, in the module dir:

  • git pull
  • npm install to update the dependencies

Using the module

You will need an apikey for the NS-API. This can be requested at

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

modules: [
    module: 'nstreinen',
    position: 'top_right',
    header: 'Treinen vanaf Schiphol Airport',
    config: {
      fromStation: 'SHL'

Configuration options

The following properties can be configured:

Option Description
apiKey Your API key.
Request your credentials at NS API
fromStation The station code to show trains for.
toStation The destination (station code) to show trains for. If this is configured the trains and required transfers from station to this destination will be shown.
maxEntries Maximum number of trains to show per station.
Default value: 5
reloadInterval Number of milliseconds between refresh.
Keep in mind there is a maximum of 50.000 requests per day for the API.
Default value: 5 * 60 * 1000 (5 minutes)
departureOffset Trip planning only, requires destination: Number of seconds to 'delay' the trip plan with.
Especially usefull when you need time to travel to the train station.
Default value: 0 (0 seconds)
displaySymbol Defines wether or not to show a symbol for each line.
Possible values: true or false.
Default value: true
symbolMapping Maps the train types to the symbol to show.
If the train type is not found, the symbol for default is used.
Possible symbols: See Font Awesome website.
Default value: See Default symbolMapping.
fade Fade the trains listed to black. (Gradient)
Possible values: true or false
Default value: true
fadePoint Where to start fade?
Possible values: 0 (top of the list) - 1 (bottom of list)
Default value: 0.25

Station codes

NS API uses station codes to identify stations. You cannot (unlike version 1) use station names. After configuring the nstreinen module with an apiKey in your config.js you can use stations.js:

$ node modules/nstreinen/stations.js | grep -i 'schip'
SHL - Schiphol Airport

Default symbolMapping

symbolMapping: {
  'IC': 'train',
  'SPR': 'stop-circle',
  'Intercity': 'train',
  'Intercity direct': 'forward',
  'Sprinter': 'stop-circle',
  'Stopbus i.p.v. trein': 'bus',
  'Snelbus i.p.v. trein': 'bus',
  'default': 'train'
You can’t perform that action at this time.