115 lines
3.5 KiB
Markdown
115 lines
3.5 KiB
Markdown
---
|
|
title: Västtrafik
|
|
description: Instructions on how to integrate timetable data for traveling in Sweden within Home Assistant.
|
|
ha_category:
|
|
- Transport
|
|
ha_iot_class: Cloud Polling
|
|
ha_release: '0.30'
|
|
ha_domain: vasttrafik
|
|
ha_platforms:
|
|
- sensor
|
|
---
|
|
|
|
The `vasttrafik` sensor will provide you traveling details for the larger Göteborg area in Sweden from the [Västtrafik](https://vasttrafik.se/) public transportation service.
|
|
|
|
You must create an application [here](https://developer.vasttrafik.se/portal/#/applications) to obtain a `key` and a `secret`. Make sure to also subscribe to the API by going to `Mina prenumerationer`, selecting your newly created application and the API `Reseplaneraren V2`.
|
|
|
|
Add the data to your `configuration.yaml` file as shown in the example:
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry
|
|
sensor:
|
|
- platform: vasttrafik
|
|
key: YOUR_API_KEY
|
|
secret: YOUR_API_SECRET
|
|
departures:
|
|
- from: Musikvägen
|
|
```
|
|
|
|
{% configuration %}
|
|
key:
|
|
description: The API key to access your Västtrafik account.
|
|
required: true
|
|
type: string
|
|
secret:
|
|
description: The API secret to access your Västtrafik account.
|
|
required: true
|
|
type: string
|
|
departures:
|
|
description: List of travel routes.
|
|
required: true
|
|
type: list
|
|
keys:
|
|
name:
|
|
description: Name of the route.
|
|
required: false
|
|
type: string
|
|
from:
|
|
description: The start station name or ID.
|
|
required: true
|
|
type: string
|
|
heading:
|
|
description: The destination station name or ID.
|
|
required: false
|
|
type: string
|
|
lines:
|
|
description: Only consider these lines.
|
|
required: false
|
|
type: [list, string]
|
|
delay:
|
|
description: Delay in minutes.
|
|
required: false
|
|
type: string
|
|
default: 0
|
|
{% endconfiguration %}
|
|
|
|
The data are coming from [Västtrafik](https://vasttrafik.se/).
|
|
|
|
A full configuration example could look like this:
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry
|
|
sensor:
|
|
- platform: vasttrafik
|
|
key: YOUR_API_KEY
|
|
secret: YOUR_API_SECRET
|
|
departures:
|
|
- name: Mot järntorget
|
|
from: Musikvägen
|
|
heading: Järntorget
|
|
lines:
|
|
- 7
|
|
- GRÖN
|
|
delay: 10
|
|
```
|
|
|
|
## Solving incorrect selected station problems
|
|
|
|
It is possible to use the full name of the station for the from/heading values, e.g., Musikvägen, Göteborg.
|
|
|
|
In cases where the wrong station is being selected, it is possible to provide the station ID instead. To do this you first need to retrieve the station ID either via Västtrafik's [API-konsole](https://developer.vasttrafik.se/portal/#/api/Reseplaneraren/v2/landerss) or with `curl`.
|
|
|
|
To retrieve the ID using `curl`:
|
|
|
|
1. Login into the Västtrafik API and go to "Hantera nycklar" next to the application you created for Home Assistant.
|
|
2. Make a copy of your AccessToken and execute the following `curl` command, replacing "<ACCESS_TOKEN>" and "<STATION_NAME>" as necessary:
|
|
|
|
```shell
|
|
curl -H "Authorization: Bearer <ACCESS_TOKEN>" "https://api.vasttrafik.se/bin/rest.exe/v2/location.name?input=<STATION_NAME>&format=json
|
|
```
|
|
|
|
3. In the output locate the key called "StopLocation", and under this key, you will find a list of stops. Copy the ID for your desired stop and use it in your configuration.
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry using station ID as departure and station name as destination
|
|
sensor:
|
|
- platform: vasttrafik
|
|
key: YOUR_API_KEY
|
|
secret: YOUR_API_SECRET
|
|
departures:
|
|
- name: To the Iron Square \o/
|
|
from: 9021014004870000
|
|
heading: Järntorget
|
|
delay: 0
|
|
```
|