Swiss public transport

The Swiss public transport integration will give you the next three departure times from a given location to another one in Switzerland.

The Swiss public transport API only allows 1000 requests per 24 hours. The default polling rate is set to 90s, which is just enough for one connection polling continuously. If more entries are needed, consider defining a custom polling interval to reduce the amount of requests.

Start station

The departure station for the start of the connection (e.g., Zürich HB)

End station

The arrival station for the end of the connection (e.g., Geneva)

Via stations

List of up to 5 via stations (e.g., Bern, Lausanne)

Use the Stationboard to find exact station names.

Configuration

To add the Swiss public transport integration to your Home Assistant instance, use this My button:

Manual configuration steps

If the above My button doesn’t work, you can also perform the following steps manually:

  • Browse to your Home Assistant instance.

  • Go to Settings > Devices & Services.

  • In the bottom right corner, select the Add Integration button.

  • From the list, select Swiss public transport.

  • Follow the instructions on screen to complete the setup.

The public timetables are coming from Swiss public transport.

Set up a connection

The minimum configuration for a connection requires a start and end station (for example, “Zürich HB”).

Optionally, you can provide up to 5 additional via stations.

Config flow

Time mode

The Time mode allows you to specify the time of the connections.

  • Now (default): Provide the next connections.
  • At a fixed time of day: Provide the connections that depart at a fixed time of day (for example, 18:15 in the evening)
  • At an offset from now: Provide the next possible connections which depart after a specified offset (for example, 15 minutes from now, which helps account for a 15-minute walk to the station)

Time mode option

Use case: Next connection at my local bus stop

Usually, it takes some time to walk to the closest bus station from home, which can be modeled using the offset option in the Time mode dropdown, filtering out connections which are not reachable anymore. This information can then be displayed at the door or on your mobile device.

Offset time mode option

Use case: Daily train home

For people working business hours, a set-up using the fixed option in the Time mode allows you to identify the same train each day for commuting home. Set up an automation to send a push notification to get informed early.

Fixed time mode option

Departure versus Arrival

Usually, one wants to know when a connection departs (default), but in case where the opposite is needed and one wants to know when a connection arrives, select “Show arrival time at end station” in the time reference dropdown.

When configured for arrival time, the sensor will display the arrival time at the destination instead of the departure time from the start station. This is particularly useful for automations that need to trigger based on arrival times.

Departure versus arrival option

Use case: Inform family of train arriving late

A popular use case would be to know if your family member is running late and sending out a push notification or displaying their arrival time at home.

Actions

The Swiss public transport integration has the following action:

  • swiss_public_transport.fetch_connections

Action swiss_public_transport.fetch_connections

Fetch the connections for a specific instance.

Data attribute Optional Description
config_entry_id No The ID of the Swiss public transport config entry to get data from. For example, in YAML: config_entry_id: zurich_geneva or in UI Instance: zurich_geneva)
limit Yes The number of connections to fetch. (default: 3, range: [1,15])

Defining a custom polling interval

If you want to define a specific interval at which your device is being polled for data, you can disable the default polling interval and create your own polling automation.

To add the automation:

  1. Go to Settings > Devices & services, and select your integration.
  2. On the integration entry, select the .
    • Then, select System options and toggle the button to disable polling. Disable polling for updates
  3. To define your custom polling interval, create an automation.
  4. Save your new automation to poll for data.

Removing the integration

This integration follows standard integration removal. No extra steps are required.

To remove an integration instance from Home Assistant

  1. Go to Settings > Devices & services and select the integration card.
  2. From the list of devices, select the integration instance you want to remove.
  3. Next to the entry, select the three-dot menu. Then, select Delete.