Skip to content
No description or website provided.
JavaScript CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


  • MMM-PublicTransportVVO
    Display live departures from public passenger transport service of the 'Verkehrsverbund Oberelbe' (VVO).

MMM-PublicTransportVVO is a module for the MagicMirror project by Michael Teeuw.

It shows live public transport information for Verkehrsverbund Oberelbe (Germany) based on api data.

You can enter a delay time for "How long does it take to get to my station?". Then the module calculates the next reachable departures and draws all unreachable departures in a different style or color.


The module looks like this:

Example for Dresden, Postplatz with  delay of 2 minutes, colored true, 5 minute timeorminuteBorder and departuretimeDecoration is true


Just clone the module into your MagicMirror modules folder:

git clone

The stationId

How to get it

You will need a stationId for your module. Its a little bit tricky to get it. Go to Turn on the "Investigation-Mode" in your Browser, so you can see the HTML source code. Put your favorite station name in the input field do a search. After this, do a search in the source code for the same station name. when you find a block like this:

<select class="select " id="stopid" name="stopid" data-placeholder="Haltestelle" aria-label="Haltestelle" aria-required="true" data-stops-only="true" data-regional-only="true" data-pointstring="33000037|||Postplatz|5658730|4621656|0||" style="display: none;"><option value="33000037"><img style="display:inline" aria-label="Haltestelle" src="/assets/img/trans-icon/ico-stop-15x15.png" data-hoversrc="/assets/img/trans-icon/ico-stop-15x15-h.png" data-src="/assets/img/trans-icon/ico-stop-15x15.png"><span class="clearfix"><strong class="right"></strong><span class="displayname">Postplatz, Dresden</span></span></option></select>

The important flag is data-pointstring. The first integer is our stationId, in my example 33000037.

How to verify it


returns a array including station name, location and given stationId like this



The module quite configurable. These are the possible options:

Option Description
name The name of the module instance (if you want multiple modules).

Type: string
Default value: MMM-PublicTransportVVO
stationId The ID of the station. How to get the ID for your station is described below.

Type: integer
Default value: 33000037
This value is Required.
marqueeLongDirections Makes a marquee/ticker text out of all direction descriptions with more than 25 characters. If this value is false, the descriptions are trimmed to the station names. If the movement is not fluent enough for you, you should turn it off.

Type: boolean
Default value: true
updateInterval How often the module should be updated. The value is given in milliseconds.

Type: integer
Default value: 30000 // 30 seconds
timeorminuteBorder Departures after this border are displayed in the time format (HH:mm), all others shown simple minutes The value is given in minutes.

Type: integer
Default value: 15
departuretimeDecoration If you set timeorminuteBorder to a value above 1 minute with this value you have the possibility to show arrival time not only plain.

Type: boolean
Default value: true
hidden Visibility of the module.

Type: boolean
Default value: false
delay How long does it take you to get from the mirror to the station? The value is given in minutes.

Type: integer
Default value: 10 // 10 minutes
showTableHeaders Show the table headers with information about location and station name.

Type: boolean
Default value: true
showTableHeadersAsSymbols Show the table headers as text or symbols.

Type: boolean
Default value: false

Here is an example of an entry in config/config.js:

    module: 'MMM-PublicTransportVVO',
    position: 'top_right',
    config: {
        stationId: 33000313,
        hidden: false,
        delay: 0,
        updateInterval: 120000,
        marqueeLongDirections: false,
        showTableHeaders: true,  
        showTableHeadersAsSymbols: true,

Multiple Modules

Multiple instances of this module are possible. Just add another entry of the MMM-PublicTransportVVO module to the config/config.js of your mirror.

Special Thanks


If you find any problems, bugs or have questions, please open a GitHub issue in this repository.

You can’t perform that action at this time.