mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-11 07:32:11 +01:00
98 lines
8.8 KiB
Markdown
98 lines
8.8 KiB
Markdown
|
# EnturNo Binding
|
||
|
|
||
|
This binding gets Norwegian public transport real-time (estimated) data from the [Entur.org API](https://developer.entur.org/pages-intro-overview).
|
||
|
|
||
|
## Supported Things
|
||
|
|
||
|
As for now, binding supports only one thing `linestop`.
|
||
|
It can change in the future as [entur.org](https://developer.entur.org) exposes API for access of different type public transport data, for example: journey planing, stop information etc.
|
||
|
|
||
|
### Entur Timetable
|
||
|
|
||
|
Entur timetable provides information about departures for chosen line/service of public transport in Norway and chosen stop place.
|
||
|
It contains informationabout stop place (id, name, transport mode) and real-time departures from that place.
|
||
|
**It is worth noting that binding is thought to be primarily used for busdepartures (can work for other supported by [entur.org](https://developer.entur.org/pages-intro-overview) transport types).
|
||
|
Two Direction channel groups are consequence of that assumption.
|
||
|
That will say that usually for stop place of a given name there are two bus stops for same line going in opposite directions.**
|
||
|
Each **Direction** channel group contains information about direction,line code, 5 coming departures, and whether given departure time is real-time (estimated) or not.
|
||
|
|
||
|
## Discovery
|
||
|
|
||
|
Since thing needs to be explicitly configured for stop id and line, no auto discovery is available.
|
||
|
|
||
|
## Thing Configuration
|
||
|
|
||
|
### Entur Timetable
|
||
|
|
||
|
| Parameter | Description |
|
||
|
|---------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||
|
| stopPlaceId (Stop code) | Unique id of stop place that can be get from [en-tur.no](https://en-tur.no) after selecting bus stop. Information will be displayed in link. Example: <https://en-tur.no/nearby-stop-place-detail?id=NSR:StopPlace:30848> stopPlaceId is **NSR:StopPlace:30848** in this case|
|
||
|
| lineCode (Line code) | Code (name or numeber) of line used by public transport provider. Examples: 3, 3E, 4, 21 |
|
||
|
|
||
|
## Channels
|
||
|
|
||
|
### Stop Place
|
||
|
|
||
|
| Channel Group ID | Channel ID | Item Type | Description |
|
||
|
|------------------|-----------------|-----------|-------------------------------------------------------------|
|
||
|
| stopPlace | id | String | Id of the stop place. |
|
||
|
| stopPlace | name | String | Name of the stop place. |
|
||
|
| stopPlace | transportMode | String | Type of transport served from bus stop bus/train/plane etc. |
|
||
|
|
||
|
### Line Direction
|
||
|
|
||
|
| Channel Group ID | Channel ID | Item Type | Description |
|
||
|
|-------------------|---------------------------------------------------------------------------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||
|
| direction | lineCode | String | Code (usually number) of the public transport line. |
|
||
|
| direction | frontDisplayText | String | Text of front display of the public transport line (usually direction) |
|
||
|
| direction | departure01, departure02, departure03, departure04, departure05 | DateTime | Times of next five departures. |
|
||
|
| direction | estimatedFlag01, estimatedFlag02, estimatedFlag03, estimatedFlag04, estimatedFlag05 | String | Values (true/false) saying that corresponding departure is real-time (estimated - true) or departure from timetable. Values (true/false) can be parsed to boolean. |
|
||
|
|
||
|
## Full Example
|
||
|
|
||
|
### Things
|
||
|
|
||
|
demo.things
|
||
|
|
||
|
```java
|
||
|
Thing enturno:linestop:7e693fff "Småstrandgaten line nr 2" [stopPlaceId="NSR:StopPlace:30848", lineCode="2"]
|
||
|
```
|
||
|
|
||
|
### Items
|
||
|
|
||
|
demo.items
|
||
|
|
||
|
```java
|
||
|
// Stop place
|
||
|
String StopId "StopId" {channel="enturno:linestop:7e693fff:stopPlace#id"}
|
||
|
String StopPlaceName "Stop Place [%s]" {channel="enturno:linestop:7e693fff:stopPlace#name"}
|
||
|
String LineCode "Line [%s]" {channel="enturno:linestop:7e693fff:Direction01#lineCode"}
|
||
|
String TransportMode "TransportMode [%s]" {channel="enturno:linestop:7e693fff:stopPlace#transportMode"}
|
||
|
|
||
|
// Direction01
|
||
|
String Direction01_FrontDisplay "Direction01 front display [%s]" {channel="enturno:linestop:7e693fff:Direction01#frontDisplayText"}
|
||
|
DateTime RealTime_Direction01_Time1 "Departure01 time" {channel="enturno:linestop:7e693fff:Direction01#departure01"}
|
||
|
DateTime RealTime_Direction01_Time2 "Departure02 time" {channel="enturno:linestop:7e693fff:Direction01#departure02"}
|
||
|
DateTime RealTime_Direction01_Time3 "Departure03 time" {channel="enturno:linestop:7e693fff:Direction01#departure03"}
|
||
|
DateTime RealTime_Direction01_Time4 "Departure04 time" {channel="enturno:linestop:7e693fff:Direction01#departure04"}
|
||
|
DateTime RealTime_Direction01_Time5 "Departure05 time" {channel="enturno:linestop:7e693fff:Direction01#departure05"}
|
||
|
String RealTime_Direction01_IsReal1 "Departure01 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag01"}
|
||
|
String RealTime_Direction01_IsReal2 "Departure02 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag02"}
|
||
|
String RealTime_Direction01_IsReal3 "Departure03 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag03"}
|
||
|
String RealTime_Direction01_IsReal4 "Departure04 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag04"}
|
||
|
String RealTime_Direction01_IsReal5 "Departure05 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag05"}
|
||
|
|
||
|
//Direction02
|
||
|
String Direction02_FrontDisplay "Direction02 front display [%s]" {channel="enturno:linestop:7e693fff:Direction02#frontDisplayText"}
|
||
|
DateTime RealTime_Direction02_Time1 "Departure01 time" {channel="enturno:linestop:7e693fff:Direction02#departure01"}
|
||
|
DateTime RealTime_Direction02_Time2 "Departure02 time" {channel="enturno:linestop:7e693fff:Direction02#departure02"}
|
||
|
DateTime RealTime_Direction02_Time3 "Departure03 time" {channel="enturno:linestop:7e693fff:Direction02#departure03"}
|
||
|
DateTime RealTime_Direction02_Time4 "Departure04 time" {channel="enturno:linestop:7e693fff:Direction02#departure04"}
|
||
|
DateTime RealTime_Direction02_Time5 "Departure05 time" {channel="enturno:linestop:7e693fff:Direction02#departure05"}
|
||
|
String RealTime_Direction02_IsReal1 "Departure01 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag01"}
|
||
|
String RealTime_Direction02_IsReal2 "Departure02 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag02"}
|
||
|
String RealTime_Direction02_IsReal3 "Departure03 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag03"}
|
||
|
String RealTime_Direction02_IsReal4 "Departure04 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag04"}
|
||
|
String RealTime_Direction02_IsReal5 "Departure05 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag05"}
|
||
|
```
|