Externe Integration - Öffentliche Verkehrsmittel (GTFS)

Hallo zusammen!

Nach Tisséo für Toulouse haben mehrere Personen Netzwerke, die keine dedizierte Integration haben. Statt für jede Stadt eine zu erstellen, hier ist Öffentliche Verkehrsmittel (GTFS): die nächsten Abfahrten an euren Haltestellen und Störungen für jedes Netzwerk, das auf transport.data.gouv.fr veröffentlicht ist. TER und TGV SNCF, Naolib, STAR, TaM, M, Ilévia, Stan… etwa 490 Netzwerke, davon 220 mit Echtzeitdaten. Alles kommt aus Open Data: ohne Konto und ohne Schlüssel.

Was es kann

  • Das Netzwerk wird in Gladys ausgewählt: Suche im nationalen Katalog oder Adresse einer GTFS-Datei für ein Netzwerk, das nicht darin enthalten ist. Bis zu 3 Netzwerke.
  • Ein Gerät pro Haltestelle (max. 20): Für jede Linie und Richtung die Minuten bis zur nächsten Abfahrt und der folgenden, die drei nächsten Abfahrten als Text und die Verkehrsinformation. Echtzeitdaten werden verwendet, wenn das Netzwerk sie veröffentlicht; ein theoretischer Fahrplan wird mit „≈“ gekennzeichnet.
  • Ein Widget „Nächste Abfahrten“, ein Trigger „Störung auf einer beobachteten Linie“ und eine Aktion, die einen Satz vorbereitet, der bereit ist, gesendet zu werden.

Das coole Feature

Um 7:45 Uhr unter der Woche → der Satz mit den nächsten Abfahrten an meiner Haltestelle auf Telegram
Störung auf meiner TER-Linie → Nachricht auf dem Telefon, bevor ich losgehe
Bus in weniger als 4 Minuten → die Lampe am Eingang blinkt

Installation

Gladys 5.1 mindestens.

Sie kommt im Store beim nächsten Durchlauf des Indexers. In der Zwischenzeit: Integrationen → Von GitHub installieren, mit der Adresse GitHub - guim31/gladys-gtfs: Next departures and disruptions for any French public transport network (GTFS / GTFS-RT from transport.data.gouv.fr) in Gladys Assistant · GitHub

  1. In Konfiguration: Suchen Sie Ihr Netzwerk, fügen Sie es hinzu, dann suchen und fügen Sie Ihre Haltestellen hinzu (nach Name oder in der Nähe des Hauses).
  2. Erstellen Sie die Geräte aus dem Tab Entdeckung, dann fügen Sie das Widget hinzu.

Für Toulouse, Lyon, Île-de-France und Bordeaux bleiben die dedizierten Integrationen (Tisséo, TCL, IDFM, TBM) vollständiger: Die Dokumentation erwähnt sie. Île-de-France ist übrigens zu groß für diese Integration.

Kleine ehrliche Reserven: Die Echtzeitdaten hängen davon ab, was jedes Netzwerk veröffentlicht, und können viel Speicherplatz beanspruchen (bis zu etwa 100 MB pro Stunde und Netzwerk mit einem Refresh pro Minute; nachts ein Refresh alle 15 Minuten). Sie wurde mit echten Daten (SNCF in Nantes, Naolib, Aix-Marseille) unter den Bedingungen des Gladys-Sandbox getestet, mit einem Peak von 138 MB Speicher, aber noch nicht in einer echten Instanz.

Codiert mit Hilfe von Claude Code, basierend auf dem Code meiner Tisséo-Integration. Unabhängiges Projekt, nicht affiliated mit transport.data.gouv.fr oder den Netzwerken.

Repository: GitHub - guim31/gladys-gtfs: Next departures and disruptions for any French public transport network (GTFS / GTFS-RT from transport.data.gouv.fr) in Gladys Assistant · GitHub

Sagt mir, auf welchem Netzwerk ihr es ausprobiert :slight_smile:

Hey @guim31 du kleiner Schlingel :joy:

Wie wäre es mit weltweit? :

Meine Belastungstest von heute… und da ich ja Toulouse die letzten Tage in mein Herz geschlossen habe bin ich zum Testen nach: 64 Boulevard Pierre Semard Toulouse, besser bekannt als Matabiau gegangen.

Und hier das gleiche Ergebnis für den Hauptbahnhof Heidelberg:

Alles drin, innerstädtische Busse ( BUS ), überregionale Buslinien ( COACH ), innerstädtische Straßenbahn ( TRAM ), überregionale Züge ( FERN ) , lokale Nahverkehrszüge ( S-BAHN).

Auch Fähren ( FÄHRE ) werden angezeigt, hier das Beispiel der Elbphilharmonie in Hamburg:

und nachdem mich hier jemand darauf aufmerksam gemacht hat, dass es ja auch vielleicht Seilbahnen oder ähnliches gibt:

Hier die Stadt Heidelberg mit einer Zahnradbahn/Seilbahn ( FUNICULAR ):

und wie wäre es mit unseren nordamerikanischen Freunden, hier Quebec in Kanada:

1.) Nur Internetzugang notwendig

2.) Keine Downloads

3.) Aktualisierung steuerbar

4.) Umkreis steuerbar

5.) Ort anhand von Geodaten, geplant: Stadtangabe

Wenn alles klappt, dann bin ich heute mit den Tests durch und dann werde ich als absoluter Neuanfänger in Github mich mal kurz in die Erstellung einer externen Integraion einlesen oder übergebe das Projekt einfach an jemand der es beherrscht…

Grüße

Tom

Ich entdecke, dass die Echtzeitdaten des Ginko-Netzwerks von Besançon auf dieser Open-Data-Plattform verfügbar sind. Ich werde deine Integration testen, und wenn es funktioniert, dann ist das wieder ein Node-RED-Bastelprojekt, das ich löschen kann!

Also, die Integration findet tatsächlich das Ginko-Netzwerk in Besançon, aber es sind nur die theoretischen Fahrpläne im GTFS-Format.
Die Echtzeit-Fahrpläne werden auf der Website transport.data.gouv.fr erwähnt, aber in einem SIRI-Format. Die Details erklären, dass dies über eine API erfolgt, die einen Schlüssel erfordert.

Auf der Website gibt es Folgendes:

Und die Details der SIRI-Schnittstelle finden Sie hier: Jeu de données ouvert SIRI - API SIRI pour Réseau urbain Ginko - CU Grand Besançon Métropole

Ich habe einen solchen Schlüssel, so funktioniert mein Node-Red-Bastelprojekt.
Glaubst du, @guim31, dass du deine Integration mit diesem Format ergänzen könntest?

@StephaneB gut beobachtet, und ja, das ist machbar. Ich habe nachgeschaut: Ginko ist nicht allein in dieser Situation, etwa zwanzig Netze veröffentlichen ihre Echtzeitdaten nur in SIRI auf transport.data.gouv.fr (Straßburg, die Pays de la Loire, Idelis, TUB…). Ich kümmere mich darum: ein optionales Feld für den Netzschlüssel, und die Integration holt die SIRI-Daten, wenn es kein GTFS-RT gibt. Deine Haltestellen bleiben dieselben, nichts muss neu erstellt werden. Ich melde mich, sobald es fertig ist, und dein Node-RED-Bastelprojekt wird der perfekte Test sein ^^

@ruegerth schöner Lasttest :smiley: Über welche Quelle hast du Deutschland, Hamburg und Québec ohne Download? Wenn es eine offene globale API ist, interessiert mich das, sei es, um diese zu ergänzen oder für deine eigene Integration.

@StephaneB es ist online: Die 1.1.0 liest die Echtzeitdaten SIRI und SIRI Lite von Netzen, die kein GTFS-RT haben, darunter Ginko.

Um es zu aktivieren: In der Konfiguration der Integration, Feld « SIRI-API-Schlüssel », füge eine Zeile Ginko = dein-schlüssel hinzu. Der Schlüssel erscheint nie in den Logs. Deine Haltestellen bleiben dieselben: Die verfolgten Fahrten werden ohne das « ≈ » angezeigt, wenn sie in Echtzeit sind, und die Störungen von Ginko speisen die Verkehrsinfo und den Auslöser.

Ich konnte es von zu Hause aus gegen die echten Server testen: Der von Ginko antwortet gut, aber ohne eine einzige Haltestelle, wenn man keinen Schlüssel hat, also wirst du den ersten echten Test machen ^^ Wenn die Integration dir eine unbekannte Haltestelle oder einen abgelehnten Schlüssel meldet, lass es mich wissen.

Übrigens funktioniert es auch für etwa ein Dutzend anderer Netze in derselben Situation: die Pays de la Loire (Aléop und die städtischen Netze des Aggregats), Saint-Brieuc (TUB), mehrere Netze in Nouvelle-Aquitaine (Tanlib, Calibus, R’Bus, TuT…), Straßburg mit einem CTS-Schlüssel… Kleine Einschränkung: Die Plattform Okina, hinter vielen dieser Netze, akzeptiert nur eine Anfrage alle 30 Sekunden. Es ist also besser, dort ein oder zwei Haltestellen zu verfolgen, nicht zehn.

@Guim31 : Guckst du hier :joy:

Grüße

Für alle:

Besancon liefert bei mir:

Hinweis: an object Object arbeite ich bereits. Verwendet wurden folgende Einstellungen:

47.242222°, 6.021389°

Grüße

Tom