Nederlandse Spoorwegen (NS)

This integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] will provide you with time table information of the Nederlandse Spoorwegen train service in the Netherlands.

To obtain an API key, create an account on the NS API-Portaal and obtain an API key for the Reisinformatie API which is part of the Ns-App product.

The nederlandse_spoorwegen integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] can be configured using your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file. After changing the configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file, restart Home Assistant to apply the changes. The integration is now shown on the integrations page under Settings > Devices & services. Its entities are listed on the integration card itself and on the Entities tab.

# Example configuration.yaml entry
sensor:
- platform: nederlandse_spoorwegen
  api_key: NS_API_KEY
  routes:
    - name: Rotterdam-Amsterdam
      from: Rtd
      to: Asd
    - name: Groningen-Zwolle-Maastricht
      from: Gn
      to: Mt
      via: Zl
    - name: "AlmereBuiten-Duivendrecht-the-08h06m-train"
      from: Almb
      to: Dvd
      time: "08:06:00"

Configuration Variables

api_key string Required

The API key provided by the Nederlandse Spoorwegen.

routes list (Optional)

List of travel routes.

name string Required

Name of the route.

from string Required

The departure station.

to string Required

The arrival station.

via string (Optional)

A station the route needs to pass through.

time time (Optional)

Optional time to search for a specific train.

Station codes

Station codes must be used and can be looked up here.

Searching a specific train vs. the next train

The default behavior (without configuration variable time) gives you the information about the next train that fits the criteria (from, to, via). When using the configuration variable time, you can search for a specific train. This is convenient when searching for the next train doesn’t give you enough time to base an automation on. E.g., when you normally take the 08h06m train and want to get information about this train, but there is another train that’s departing just minutes before your train, your time window to warn you on a delay might be too small.

Using time only updates the route sensor during a time window around the chosen time. Outside this window, the route sensor’s state is unknown. The window is from half an hour before the chosen time until half an hour after the chosen time. In this way, you can have multiple routes with specific trains before hitting the FUP threshold for using NS API.

The data are coming from Nederlandse Spoorwegen.