ich habe nach einer Möglichkeit gesucht, die BVG‑Abfahrtszeiten direkt auf meinem Home Assistant Dashboard darzustellen.
Dabei bin ich auf die ursprüngliche Integration von vas3k gestoßen und habe diese geforkt sowie erweitert. Das wollte ich mit euch hier teilen, falls auch jemand auf der Suche nach einer Abfahrtsanzeige für Berlin/Brandenburg ist.
Nachdem ich heute 15 Minuten bei klirrender Kälte auf dem S-Bahn-Steig gestanden habe, weil ein Zug ausgefallen ist, bin ich hier fündig geworden. Installation klappte fast ohne Probleme (“github.comv” mache ich gerne einen Pull Request in den nächsten Tagen) Vielen Dank und ich teste weiter.
Ja, ich schaue mir das dieses Wochenende mal an, ob man da kurzfristig etwas mit caching verbessern kann, oder ob ich das auf eine andere API umbauen muss.
Das Update sollte über HACS automatisch ankommen. Der gesamte Netzwerkstack wurde umgebaut, um die Last auf der genutzten API zu reduzieren, mit Fehlern und TimeOuts besser umzugehen und wenn möglich auch im Fehlerfalle Daten anzuzeigen.
Ich hoffe, es verbessert die Situation. Und feedback wird immer gerne genommen.
Bugfix-Release v0.1.4.1 ist draußen (Releases · manoth-msft/home-assistant-bvg-vbb-departures). HACS wird euch irgendwann das Update anbieten, oder ihr geht auf HACS > vbb > Erneut herunterladen und wählt direkt v0.1.4.1 aus.
Es behebt vorrangig ein Problem bei der Entitätenerstellung und Zeitberechnung. Außerdem habe ich das Fallback auf die BVG-API vorbereitet.
Es enthält weitere Fixes, besseres Logging und einige interne Umbauten, um die nächsten Schritte vorzubereiten. Die Integration leidet weiterhin unter der schlechten Verfügbarkeit der API, aber deren Stabilität ist außerhalb meiner Kontrolle. Ich versuche mit Caching, ETag-ing, und einem Back-off-Mechanismus die Last auf die API möglichst gering zu halten.
Außerdem wurde ein Fallback vorbereitet, so das wir auf eine andere API wechseln können, wenn die aktuell genutzte nicht verfügbar ist. Das werde ich in den nächsten Tagen releasen.
Ich hab ein mehrstufiges Fallback-System eingebaut: Wenn die primäre API ausfällt, versucht es erst eine von mir gehostete Version davon zu erreichen. Schlägt auch das fehl, geht es an die BVG-API ran (die schlechtere Filter anbietet, daher ist es erst die dritte Ebene). Aber wir sollten damit eigentlich immer Daten bekommen.
Im Betrieb meines eigenen transport.rest-Endpunktes ist mir aufgefallen, dass einige Abfragen reinkamen, die als Richtungs-Parameter den Klartext und nicht die notwendige ID des Zwischenstops/Endhalts mitgeben. Und diese schlagen dann immer fehl.
Daher habe ich in dieser Version zwei Dinge angepackt:
Das Konfigurieren von Zwischenstops/Endhalten geht jetzt auch über die Eingabe des Namens der gewünschten Haltestelle, die Integration ermittelt dann die passende ID.
Für bestehende Konfigurationen, die bereits einen Filter mit einem Namen (z.B. Zwickauer Damm) statt einer stop-id haben, wird automatisch die am besten passende Stop-ID ermitteln und gespeichert. Keine manuelle Re-Konfiguration nötig.
Also, geht auf HACS > die drei Punkte neben der BVG/VBB-Integration und klickt auf ‘Informationen aktualisieren’, dann wird euch das Update angeboten.