Home

Awesome

hacs_badge

BREAKING WARNING!!!

Unfortunatly bahn.de has shut down their websites that this integration used for web scraping. Therefore this integration wont work anymore since 15th december 2024. More details & here. Until a new method has found this integration wont work anymore. There is NO ETA.

I recommend switching to those integrations for now:

Deutsche Bahn Homeassistant Sensor

The deutschebahn sensor will give you the departure time of the next train for the given connection. In case of a delay, the delay is also shown. Additional details are used to inform about, e.g., the type of the train, price, and if it is on time.

<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Db-bahn.svg/1280px-Db-bahn.svg.png" alt="Deutsche Bahn" width="300px"> <img src="images/sensor.png" alt="Deutsche Bahn Sensor" width="300px">

The official Deutsche Bahn Homeassistant integration got removed with release 2022.11 - therefore this custom integration exists. It got removed due to cloud scraping, but still was fully functional.

Please note that I will only give limited support on this integration.

This integration is based on the formerly official HA DB integration, see here.

This sensor stores a lot of attributes which can be accessed by other sensors, e.g., a template sensor.

Old Homeassistant documentation can be found here.

Installation

1. Using HACS (recommended way)

This integration is a official HACS Integration.

Open HACS then install the "Deutsche Bahn" integration or use the link below.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

If you use this method, your component will always update to the latest version.

2. Manual

where <config> is your Home Assistant configuration directory.

NOTE: Do not download the file by using the link above directly, the status in the "master" branch can be in development and therefore is maybe not working.

Migrate from the old official HA integration or from this V1.X to 2.X Version

  1. Remove any deutschebahn (or deutsche_bahn) configuration from your configuration.yaml file
  2. Update the Integration to the latest release
  3. Restart Homeassistant
  4. Set up the integration from the UI

Configuration

Go to Configuration -> Integrations and click on "add integration". Then search for "Deutsche Bahn".

Open your Home Assistant instance and start setting up a new integration.

Configuration Variables

Accessing the data

Automations

automation:
  - alias: "Notification for Train Delay"
    trigger:
      platform: template
      value_template: "{{ state_attr('sensor.fromstation_to_station', 'departures')[0].delay | int > 5 }}"
    action:
      - service: notify.notify
        data_template:
          message: >
            The train departing at {{ states.sensor.fromstation_to_station.attributes.departures[0].departure_current }}
            and arriving at {{ states.sensor.fromstation_to_station.attributes.departures[0].arrival_current }}
            is delayed by {{ states.sensor.fromstation_to_station.attributes.departures[0].delay }}
            minutes and costs {{ states.sensor.fromstation_to_station.attributes.departures[0].price }}.
            Next train after that: {{ states.sensor.fromstation_to_station.attributes.departures[0].departure_current }}

Custom sensor

Add a custom sensor in your configuration.yaml

sensor:
  - platform: template
    sensors:
      next_train_departure:
        friendly_name: "Next Train Departure"
        value_template: "{{ state_attr('sensor.fromstation_to_station', 'connections')[0].departure }}"
        icon_template: mdi:train

Lovelace Custom Card

silviokennecke has created this great lovelace card for a better overview of the train departures. Be sure to check it out.

Bug reporting

Open an issue over at github issues. Please prefer sending over a log with debugging enabled.

To enable debugging enter the following in your configuration.yaml

logger:
    logs:
        custom_components.deutschebahn: debug

You can then find the log in the HA settings -> System -> Logs -> Enter "deutschebahn" in the search bar -> "Load full logs"

Thanks to

Huge thanks to @homeassistant for the official old integration, where this one is based on! Also to @kennell for the schiene python library that this integration is using.

The data is coming from the bahn.de website.