Skip to content

Repository files navigation

MMM-Bubi

This is a module for the MagicMirror² to display the number of available bikes on the selected stations of the Budapest public bike system (aka MOL Bubi).

Features

By default this module displays the number of available bikes, e-bikes, free docks and the official names of the specified stations:

Default

You can configure the module to display a custom (typically shorter) names for the stations:

With custom station names

If you wish, you can completely remove the station names:

With hidden station names

You can selectively turn on or off the display of bikes, e-bikes and available docks. For example you can show only available bikes and e-bikes:

Showing bikes and e-bikes only

For updates, please check the CHANGELOG.

Using the module

To use this module follow these steps:

  1. Clone this repository to the modules folder of your MagicMirror:
git clone https://github.com/balassy/MMM-Bubi.git
  1. Add the following configuration block to the modules array in the config/config.js file:

NOTE: The configuration has been changed with the 2026 release of MOL Bubi!

var config = {
  modules: [
    {
      module: 'MMM-Bubi',
      position: 'top_right',
      config: {
        updateInterval: 600000, // 10 minutes in milliseconds
        showBikes: true,
        showEbikes: true,
        showDocks: true,
        showPlaceName: true,
        align: 'left',
        places: [
          { id: '7438', name: 'MOMKult' },
          { id: '7437', name: 'MOM Park' },
          { id: '7436' }       
        ]
      }
    }
  ]
}

Configuration options

Option Description
places REQUIRED The list of Bubi stations to display. The unique id of the station is used to lookup the data from the webservice. The name is optional, and can be used to display a custom name for the station instead of the official name if the showPlaceName option is set to true.

Type: Array<{ id: string, name: string }>
Default value: 3 preconfigured stations
showBikes Optional Specifies whether the module should display the number of available classic bikes for each station.

Type: boolean
Default value: true
showEbikes Optional Specifies whether the module should display the number of available electric bikes for each station.

Type: boolean
Default value: true
showDocks Optional Specifies whether the module should display the number of available docks where you can park your bike after usage for each station.

Type: boolean
Default value: true
showPlaceName Optional Specifies whether the module should display not only the number of available bikes for each station, but also the names of the stations. If the name property is set in the places array, then it will be displayed, otherwise the official names of the stations will be rendered onto the Mirror.

Type: boolean
Default value: true
align Optional Determines how the text is aligned within the module. Set this to left if the module is displayed on left side of the mirror, or to right if you positioned this module to the right column of the mirror.

Type: string
Possible values: 'left' or 'right'
Default value: 'left'
updateInterval Optional The frequency of how often the module should query the number of available bikes from the webservice.

Type: int (milliseconds)
Default value: 600000 milliseconds (10 minutes)

How to get the place ID

In the id property of the objects in the places array of the configuration settings you have to specify the unique identifier of the station for which the module should display the bike availability.

To obtain the unique identifier of the station, follow these steps:

  1. Navigate to the MOL Bubi map page with your favorite webbrowser.

  2. Use the map on the page to find your favorite MOL Bubi station and click its icon.

  3. Note the official name of the station, e.g. BAH-csomópont.

  4. Open your browser's Developer Tools (F12), switch to the Network tab and find the call to https://core.urbansharing.com/public/api/v1/graphql?operationName=dockGroupsExtended

  5. On the Response tab use the browser's find function (CTRL+F) to locate the place by its name.

Locate the station by its name

  1. Find the id attribute in the same section, it is the unique identifier of the station.

How it works

This module periodically sends requests from the browser window of the MagicMirror Electron application to the public UrbanSharing API just like how the official map page does. The API is free, and it does NOT require any login or API key.

Contribution

Although for operation this module does not depend on any other module, if you would like to contribute to the codebase, please use the preconfigured linters to analyze the source code before sending a pull request. To run the linters follow these steps:

  1. Install developer dependencies:
npm install
  1. Run all linters:
npm run lint

Got feedback?

Your feedback is more than welcome, please send your suggestions, feature requests or bug reports as Github issues.

Acknowledments

Many thanks to Michael Teeuw for creating and maintaining the MagicMirror² project fully open source.

About the author

This project is created and maintaned by György Balássy.

About

MagicMirror module that displays bike availability in the Budapest public bike system (aka MOL Bubi).

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages