104 lines
3.0 KiB
Markdown
104 lines
3.0 KiB
Markdown
---
|
|
title: Transport NSW
|
|
description: Instructions on how to integrate timetable data for Transport NSW (Australia) within Home Assistant.
|
|
ha_category:
|
|
- Transport
|
|
ha_iot_class: Cloud Polling
|
|
ha_release: 0.81
|
|
ha_domain: transport_nsw
|
|
ha_platforms:
|
|
- sensor
|
|
---
|
|
|
|
The `transport_nsw` sensor will give you the time until the next departure from a Transport NSW stop for bus, train, light rail or ferry.
|
|
|
|
## Setup
|
|
|
|
Prerequisite is a free API key from [Transport NSW](https://opendata.transport.nsw.gov.au/). You will need to register an account and then create a new application. You will need to add the 'Trip Planner APIs' to your application.
|
|
|
|
In order to find your stop id, use the [Transport NSW stop finder](https://transportnsw.info/stop#/) and search for your stop. The URL will contain the stop id as a number.
|
|
|
|
You may also try going to Google maps and clicking on any bus/train/ferry stop. The pop up window shows the stop ID underneath the station name. For train stations the easiest way to get a stop id for a platform is through [Transport NSW Info](https://transportnsw.info/).
|
|
|
|
As a default the sensor picks up the next mode of transport leaving from a stop id.
|
|
|
|
## Configuration
|
|
|
|
To enable the sensor, add the following lines to your `configuration.yaml` file:
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry
|
|
sensor:
|
|
- platform: transport_nsw
|
|
stop_id: "200024"
|
|
api_key: "YOUR API KEY"
|
|
```
|
|
|
|
{% configuration %}
|
|
api_key:
|
|
description: Your API key for Open Data Transport NSW.
|
|
required: true
|
|
type: string
|
|
stop_id:
|
|
description: The ID of the stop to get the information for.
|
|
required: true
|
|
type: string
|
|
route:
|
|
description: Filter on bus route at the stop. This is the same as the bus number, e.g., `83`.
|
|
required: false
|
|
type: string
|
|
destination:
|
|
description: Useful for ferry or train stops to filter the destination of the sensor, e.g., `Circular Quay`.
|
|
required: false
|
|
type: string
|
|
name:
|
|
description: A friendly name for this sensor.
|
|
required: false
|
|
type: string
|
|
{% endconfiguration %}
|
|
|
|
The public information is provided from [Transport NSW](https://opendata.transport.nsw.gov.au/).
|
|
|
|
## Examples
|
|
|
|
More example configurations for bus or ferry.
|
|
|
|
```yaml
|
|
# Example bus route configuration.yaml entry
|
|
sensor:
|
|
- platform: transport_nsw
|
|
name: "Bus"
|
|
stop_id: "209516"
|
|
route: '199'
|
|
api_key: "YOUR API KEY"
|
|
```
|
|
|
|
```yaml
|
|
# Example ferry configuration.yaml entry
|
|
sensor:
|
|
- platform: transport_nsw
|
|
name: "Ferry"
|
|
stop_id: "10102008"
|
|
destination: "Circular Quay"
|
|
api_key: "YOUR API KEY"
|
|
```
|
|
|
|
The sensor returns n/a if no stop event is found within the next 24h. A `template` sensor can help building a more meaningful string.
|
|
|
|
{% raw %}
|
|
|
|
```yaml
|
|
# Sample template sensor
|
|
template:
|
|
- sensor:
|
|
- name: "Bus monitor 199"
|
|
state: >-
|
|
{% if is_state_attr('sensor.bus', 'due', 'n/a') %}
|
|
No schedule found
|
|
{% else %}
|
|
{{ state_attr('sensor.bus', 'route') }} in {{ state_attr('sensor.bus', 'due') }}m ({{ state_attr('sensor.bus', 'delay') }})
|
|
{% endif %}
|
|
```
|
|
|
|
{% endraw %}
|