Live STIB-MIVB departures on the Pebble Time 2. It covers the bus, tram, and metro network of Brussels
stibble README.md
5.1 kB · 114 lines
Markdown
at main

Stibble

Stibble shows live STIB-MIVB departures on the Pebble Time 2. It covers the bus, tram, and metro network of Brussels. Get it on the Pebble appstore.

The departures page   The line detail screen   The station page

Features #

  • The app finds the stops nearest to you through the phone GPS.
  • The app starts on the departures page. It merges the departures of your nearby stops into one list, sorted by time. The header shows the stop count.
  • Each row shows the line badge in its official color, the stop name, the destination, and the next two waits in minutes. Every row also carries a small icon for its kind: tram, metro, bus, train, or bike.
  • The line detail screen shows the vehicles on their way to your stop.
  • The line detail screen draws a small route map next to the line strip.
  • Disruption notices appear on the affected lines.
  • The nearby list shows SNCB train departures from the nearest station as gray rows with a train icon, below the timed departures. Select a train row to open the station page with platforms and delays.
  • The nearby list shows the bike and dock counts of the nearest Villo station as a gray row with a bike icon.
  • The favorites page in the carousel shows the departure boards of stops you choose. Add or remove favorites by touching and holding a stop on the nearby page or from the app settings, up to 8 stop groups.
  • A line at the end of its service shows the service message as a gray row below the timed departures.
  • The launcher shows your next departure under the app name.
  • You can arm a wakeup alarm for a departure, trains included. The watch wakes you when it is time to walk to the stop or the station. A bell icon marks the armed departure. When the alarm cannot arm, the reason flashes on the screen.
  • The header bar color shows the app state at a glance.
  • The watch can vibrate when your vehicle arrives.
  • The interface speaks English, French, and Dutch.
  • Every page shows the current time in its header.
  • Departure times turn gray when the data is older than 45 seconds.
  • The line detail screen shows a clear message when the line has no data or the network fails.

Controls #

  • The app starts on the departures page. Press up or down to move through the merged departures.
  • Press select on a departure to open its line detail screen. A train row opens its station page instead, a Villo row opens the stand page.
  • Hold select in the line detail to arm or disarm the wakeup alarm.
  • Hold select on a station page row to arm or disarm the train alarm.
  • Press down in the line detail to read the full disruption notice.
  • Press back to go up one screen. Press back on the departures page to close the app.

Tap a row to open it; drag to scroll any list or the disruption text. Swipe left or right on the departures page to switch between the trains, nearby, and Villo pages; the dots in the header show the current page. Swipe right on a detail screen to go back. Touch and hold to arm or disarm the wakeup alarm on a line or train row. On the line screen, tap the disruption banner to read the full notice; tap elsewhere to refresh. Touch and hold a stop on the nearby page to add or remove it from favorites.

Configuration #

Open the app settings on your phone. Search for stops to check line coverage near you. The search forgives small misspellings and accents, so "hermann" still finds Herrmann-Debroux. Set the interface language and the language of the stop names. Turn the arrival vibration on or off.

How it works #

The watch app does not talk to STIB-MIVB. A small server polls the open data APIs, commits each complete refresh to a SpatiaLite-backed SQLite database, and answers the watch with compact transit, train, and Villo boards. The database survives process restarts; readiness and feed health come from its committed state. The repository does not configure an off-host backup, so loss of the server host or volume still loses that state.

The phone side of the app fetches a board every 30 seconds and streams it to the watch. Read server/README.md for the API, storage operations, setup, and quota rules. You can run your own server, then rebuild the app with its address or set the server key in the phone app localStorage.

Build #

Install the Pebble tool and the latest SDK. Then build and test:

pebble build
node --test tests/pkjs.test.js
tests/c/run.sh

Run the app in the emulator with pebble install --emulator emery.

Credit #

Stibble started as a fork of pebble-stib-mivb by Aurélien Ooms. Thank you, Aurélien, for the original app.

Source: STIB-MIVB, Open Data (CC BY 4.0)