2025-02-27

Home Assistant BVG VBB Abfahrten


 

Auf der Suche nach einer Lösung, um mir die nächsten Abfahrtszeiten für meine Haltestelle anzeigen zu lassen, bin ich beinahe verzweifelt.

 ich bin zwar auf vas3k/home-assistant-berlin-transport gestoßen, aber habe die dazugehörige lovelace-berlin-transport-card einfach nicht zum laufen bekommen, wenn der Code überhaupt mal lief, blieb die Kachel im Dashboard einfach leer.

Ich habe mir nun selbst eine Lösung gebastelt, die OHNE HACS funktioniert.

 Ihr braucht dafür erst ein mal die ID von eurer Starthaltestelle und einer Zielhaltestelle, über v6.vbb.transport.rest bekommt man z.B. für S+U Alexanderplatz Bhf (Berlin) die ID 900100003

 

Nun nehmen wir uns die komplette URL für die nächsten 5 Ergebnisse

https://v6.vbb.transport.rest/journeys?from=123456789&to=987654321&results=5 

Eure beiden IDs müssen natürlich hier als from und to eingefügt werden.

Passen wir also nun kurz unsere /homeassistant/configuration.yaml an

 Dort tragen wir ein (https://pastes.io/): 

sensor:
  - platform: rest
    name: vbb_journeys
    resource: "https://v6.vbb.transport.rest/journeys?from=900027452&to=900029104&results=5"
    scan_interval: 60  # Aktualisiere alle 1 Minuten
    value_template: "OK"  # Einfacher Wert, um den Sensorstatus zu setzen
    json_attributes:
      - journeys  # Speichere das "journeys"-Array als Attribut

 Hier nun kurz Home Assistant am besten neustarten.

 Geht nun auf euer Dashboard (Lovelace), oben rechts auf das Stiftsymbol zum Bearbeiten und fügt ein neues Markdown Element hinzu.

Bei Inhalt fügt ihr folgenden Code ein (https://pastes.io/): 

{% set journeys = state_attr('sensor.vbb_journeys', 'journeys') %}  {% if journeys %}    {% for journey in journeys %}      {% set departure_time = journey.legs[0].departure %}      {% set time = departure_time[11:16] %}      {% set date = departure_time[8:10] ~ '.' ~ departure_time[5:7] ~ '.' ~ departure_time[0:4] %}
Abfahrt: um {{ time }} Uhr
Linie: {{ journey.legs[0].line.name | default('Unbekannt') }}  
Richtung: {{ journey.legs[0].direction | default('Unbekannt') }} {% set delay = journey.legs[0].departureDelay if journey.legs[0].departureDelay is not none else 0 %}
{% if delay < 0 %}Früher: {{ ((delay * -1) / 60) | round }} Minuten  
{% else %}Später: {{ (delay / 60) | round }} Minuten  
{% endif %}      {% if not loop.last %}      {% endif %}    {% endfor %}  {% else %}    Keine Daten verfügbar  {% endif %}

 

Und das sollte es auch schon gewesen sein, bei mir funktioniert es jedenfalls.

Da ich selbst wenig Ahnung von Home Assistant, YAML etc habe und mir das ganze nur mithilfe von Deepseek zusammengebastelt habe, kann ich euch dafür keine Unterstützung anbieten.

Keine Kommentare:

Kommentar veröffentlichen

Home Assistant BVG VBB Abfahrten

  Auf der Suche nach einer Lösung, um mir die nächsten Abfahrtszeiten für meine Haltestelle anzeigen zu lassen, bin ich beinahe verzweifelt...