Zurück zum BIM- & IFC-Blog
Digitale Zwillinge · 2026-10-10 · 9 Min.
Live-Busse im IFC-Modell: ein digitaler Zwilling eines Busbahnhofs über MQTT
Am Terminal Elielinaukio neben dem Hauptbahnhof Helsinki leuchtet jeder Bussteig eines IFC-Modells auf, sobald dort ein echter Bus steht, mit der Liniennummer darüber. Die Daten stammen aus dem öffentlichen MQTT-Feed von HSL und werden direkt vom Browser empfangen.
Der Hauptbahnhof Helsinki und das Busterminal Elielinaukio als IFC-Modelle auf der 3D-Karte, mit Live-Liniennummern der Busse über den Bussteigen
Ein Busbahnhof ist ein guter Test für einen digitalen Zwilling, denn was dort geschieht, ändert sich im Minutentakt. Siebzehn Bussteige, Busse, die ein- und ausfahren, Türen, die sich öffnen und schließen. Wenn das Modell das live und aus öffentlichen Daten zeigen kann, kann es das meiste zeigen.
Diese Szene tut das für Elielinaukio, das Terminal an der Westseite des Hauptbahnhofs Helsinki. Jeder Bussteig des IFC-Modells leuchtet auf, solange ein echter Bus dort steht, mit seiner Liniennummer darüber. Die Positionen stammen von HSL, der Verkehrsbehörde von Helsinki, die die Position jedes Fahrzeugs etwa einmal pro Sekunde über MQTT veröffentlicht, und der Browser abonniert sie direkt.
Das Wichtigste
- MQTT über WebSocket ermöglicht es einer Webseite, Live-Fahrzeugpositionen ohne eigenen Server dazwischen zu empfangen, sofern der Broker es erlaubt. Der von HSL erlaubt es.
- Abonnieren Sie eng gefasst. Ein geografischer Ausschnitt des Topic-Baums sorgt dafür, dass nur die Busse des Terminals den Browser erreichen.
- Bussteige sind an die Haltestellen-IDs der Verkehrsbehörde gebunden, und die Farben folgen Regeln für Felder der Nachricht: Türen offen, stehend, in Bewegung oder kein Bus.
- Koordinationsmodelle bleiben deckungsgleich, wenn jedes Satellitenmodell nach seiner eigenen Georeferenz gedreht wird. Hier weicht das Koordinatensystem des Doms um 3° von dem des Terminals ab.
Ausprobieren: Helsinkis Busse, jetzt live
Öffnet das Terminal, den Bahnhof und den Dom auf der Karte. Die Bussteige leuchten auf, wenn echte Busse eintreffen. Nachts sind es wenige, deshalb bleiben die Bussteige lange grau.

Interaktiven IFC-Viewer öffnen
Was Sie hier sehen
Drei georeferenzierte IFC-Modelle (ETRS89 / GK25, EPSG:3879) in der OpenStreetMap-Stadt: Eliel Saarinens Hauptbahnhof mit seinen Bahnsteigen, der Dom am Senatsplatz und der Busbahnhof mit seinen 17 Bussteigen (20 bis 36), Masten, Schildern und Überdachung. Zwei Live-Ebenen des Finnischen Meteorologischen Instituts zeigen Luftqualität und Wetter.
Die Bussteige, während die Busse kommen und gehen: Jeder Mast und jedes Schild übernimmt die Farbe dessen, was der Bus an dieser Haltestelle gerade tut.
| Farbe des Bussteigs | Regel für die HSL-Nachricht | Bedeutung |
|---|
| Grün | Türen offen (drst = 1) | Fahrgastwechsel |
| Blau | Geschwindigkeit unter 0,5 m/s | Steht am Bussteig |
| Orange | jeder andere Messwert an der Haltestelle | Ein- oder Ausfahrt |
| Grau | seit 45 s kein Messwert | Kein Bus |
Die erste zutreffende Regel gilt. Die Liniennummer (desi) schwebt über dem Bussteig.
Warum MQTT und nicht GTFS-Realtime
GTFS-Realtime ist das übliche Format für Live-Daten im öffentlichen Verkehr, und HSL veröffentlicht es. Dieser Feed sendet jedoch nicht die CORS-Header, die ein Browser braucht, um ihn von einer anderen Website zu lesen. Ihn zu nutzen hieße also, einen Proxy zu betreiben. Der Feed für die hochfrequente Positionierung ist anders: Er ist MQTT über WebSocket, öffentlich, ohne Schlüssel und von jeder Webseite aus erreichbar.
Für diesen Zweck ist er außerdem aussagekräftiger. Jede Nachricht beschreibt einen Bus, etwa einmal pro Sekunde, mit Linie, Geschwindigkeit, Türzustand und der Haltestelle, an der er sich befindet[hfp]. Das Topic verrät, wo der Bus ist, deshalb lässt sich ein Abonnement auf einen Ausschnitt der Stadt zuschneiden:
/hfp/v2/journey/ongoing/vp/bus/+/+/+/+/+/+/+/+/60;24/19/73/#
Das Abonnement Ebene für Ebene: Jedes + steht für einen beliebigen Wert, und der Geohash grenzt den Stream auf die Zelle rund um das Terminal ein.
Der letzte Teil, 60;24/19/73, ist eine Zelle des geografischen Rasters von HSL rund um das Terminal. Der Browser empfängt die Busse in dieser Zelle und sonst nichts. Er liest die Nachrichten einmal pro Sekunde und behält je Haltestelle die neueste. Ein Bus zwischen zwei Haltestellen, dessen Nachricht keine Haltestelle enthält, wird übersprungen.
Von der Haltestellen-ID zum Bussteig
HSL identifiziert Haltestellen über Nummern, das IFC-Modell über Namen. Die veröffentlichte Haltestellenliste von HSL verbindet beides: Neun der siebzehn Bussteige haben heute eine HSL-Haltestelle, und jeder davon ist ein Binding. Die Elemente werden über den Namen gefunden, „Bay 20“ und so weiter. So werden der Mast und die drei Schilder jedes Bussteigs erfasst.
| Bussteig | HSL-Haltestellen-ID |
|---|
| 20 | 1020128 |
| 22 | 1020131 |
| 23 | 1020133 |
| 24 | 1020135 |
| 25 | 1020132 |
| 26 | 1020239 |
| 28 | 1020243 |
| 29 | 1020245 |
| 30 | 1020130 |
Aus der GTFS-Haltestellenliste von HSL, einmal gelesen, als die Szene geschrieben wurde. Die anderen acht Bussteige haben keine Haltestelle und bleiben grau.
Die Karte eines Bussteigs bei Nacht: Ohne Bus am Steig sagt der Live-Bereich das auch, statt einen alten Messwert zu zeigen – neben den IFC-Daten des Masts.
{
"id": "hsl-hfp-elielinaukio",
"url": "wss://mqtt.hsl.fi:443/",
"topics": ["/hfp/v2/journey/ongoing/vp/bus/+/+/+/+/+/+/+/+/60;24/19/73/#"],
"mapping": { "idField": "VP.stop", "timeField": "VP.tst" }
}
Diese Gerätequelle genügt, um eine andere Flotte oder ein anderes Gebiet zu lesen: ein Broker, der MQTT über WebSocket spricht, die Topics und das Feld der Nachricht, das das Gerät identifiziert. Der Rest der Szene bleibt gleich.
Luftqualität und Wetter
Die beiden Kartenebenen stammen aus den offenen Daten des Finnischen Meteorologischen Instituts[fmi] und werden im Browser als einfache WFS-Features gelesen: bei unserer Prüfung 11 Luftqualitätsstationen und 7 Wetterstationen rund um die Stadt. Die Luftqualität wird stündlich geliefert und kann bis zu 40 Minuten zu spät eintreffen; das Wetter alle 10 Minuten.
Drei Modelle, eine Karte
Der Bahnhof, der Dom und das Terminal sind getrennte Dateien, und jede trägt ihre eigene Georeferenz. Die lokalen Achsen des Doms sind gegenüber denen des Terminals, an dem die Karte verankert ist, um 3° gedreht. Würde der Viewer die übrigen Modelle nur an ihren Platz verschieben, ohne sie zu drehen, stünde der Dom um 3° schief, an seinen Ecken etwa 2 m daneben.
Der Viewer dreht jedes Modell in sein eigenes Bezugssystem, um dessen eigenen Mittelpunkt. Gemessen am OpenStreetMap-Umriss des Doms liegen die Wände jetzt 0,56 m daneben und weichen um 0,37° ab. Dieser Rest entspricht der Genauigkeit, mit der Modell und OSM das Gebäude jeweils zeichnen.
Grenzen, die wir offen nennen
- Die Modelle sind illustrativ und aus öffentlichen Quellen gezeichnet. Es sind keine Vermessungen.
- Nur neun Bussteige haben eine HSL-Haltestelle, die anderen acht leuchten daher nie auf.
- Nachts fahren wenige Busse, und die Bussteige bleiben lange grau.
- Das globale Geländemodell liegt hier etwa 18 m über dem finnischen Höhensystem, deshalb stehen die Modelle auf der Geländeoberfläche statt auf ihren angegebenen Höhen. Ihre Höhen zueinander bleiben erhalten.
- Ein Tab im Hintergrund empfängt Nachrichten seltener, weil Browser Timer in verdeckten Tabs drosseln.
Dasselbe Szenenformat betreibt einen Stadtplatz aus Bikesharing- und Ladedaten in dem Open-Data-Zwilling von Barcelona sowie zwei Bahnhöfe in Tokio aus Zug- und Straßenbahndaten in den Verkehrszwillingen von Tokio aus ODPT. Für einen Zwilling, der von einem Sensor statt von einem Verkehrsfeed gespeist wird, siehe Echtzeit-LiDAR in einem digitalen Zwilling im Web.
Quellen
- Hochfrequente Positionierung — Digitransit (HSL). Die MQTT-Topics und Nachrichtenfelder, die das Terminal verwendet.
- Open Data — Finnish Meteorological Institute. Beobachtungen zu Luftqualität und Wetter, hier als einfache WFS-Features gelesen.
Live-Busse im IFC-Modell: ein digitaler Zwilling eines Busbahnhofs über MQTT