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