Bus-Abfahrtszeiten über HTTP-Binding/JSON einlesen
Verfasst: 1. Feb 2019 18:47
Hallo
Ich brauche bitte eure Hilfe.
Ich würde gerne die Abfahrtszeiten des Busses in meiner Nähe in Openhab anzeigen.
Die Daten bekomme ich über eine JSON-Abfrage die wie folgt aussieht:
{"data":{"monitors":[{"locationStop":{"type":"Feature","geometry":{"type":"Point","coordinates":[16.4216256018884,48.2617457797284]},"properties":{"name":"60201398","title":"Töllergasse","municipality":"Wien","municipalityId":90001,"type":"stop","coordName":"WGS84","attributes":{"rbl":1115}}},"lines":[{"name":"28A","towards":"Floridsdorf S U","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"departures":{"departure":[{"departureTime":{"timePlanned":"2019-02-01T18:17:00.000+0100","timeReal":"2019-02-01T18:16:41.000+0100","countdown":1}},{"departureTime":{"timePlanned":"2019-02-01T18:32:00.000+0100","timeReal":"2019-02-01T18:32:00.000+0100","countdown":17}},{"departureTime":{"timePlanned":"2019-02-01T18:47:00.000+0100","timeReal":"2019-02-01T18:47:00.000+0100","countdown":32}},{"departureTime":{"timePlanned":"2019-02-01T19:01:00.000+0100","timeReal":"2019-02-01T19:01:30.000+0100","countdown":46}},{"departureTime":{"timePlanned":"2019-02-01T19:16:00.000+0100","countdown":61},"vehicle":{"name":"28A","towards":"Floridsdorf","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"type":"ptBusCity","attributes":{}}}]},"type":"ptBusCity","lineId":428}]},{"locationStop":{"type":"Feature","geometry":{"type":"Point","coordinates":[16.4216256018884,48.2617457797284]},"properties":{"name":"60201398","title":"Töllergasse","municipality":"Wien","municipalityId":90001,"type":"stop","coordName":"WGS84","attributes":{"rbl":1115}}},"lines":[{"name":"29A","towards":"Floridsdorf S U","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"departures":{"departure":[{"departureTime":{"timePlanned":"2019-02-01T18:20:00.000+0100","timeReal":"2019-02-01T18:21:05.000+0100","countdown":6}},{"departureTime":{"timePlanned":"2019-02-01T18:28:00.000+0100","timeReal":"2019-02-01T18:27:18.000+0100","countdown":12}},{"departureTime":{"timePlanned":"2019-02-01T18:36:00.000+0100","timeReal":"2019-02-01T18:36:00.000+0100","countdown":21}},{"departureTime":{"timePlanned":"2019-02-01T18:43:00.000+0100","timeReal":"2019-02-01T18:43:30.000+0100","countdown":28}},{"departureTime":{"timePlanned":"2019-02-01T18:51:00.000+0100","timeReal":"2019-02-01T18:51:00.000+0100","countdown":36}},{"departureTime":{"timePlanned":"2019-02-01T18:59:00.000+0100","timeReal":"2019-02-01T18:59:30.000+0100","countdown":44}},{"departureTime":{"timePlanned":"2019-02-01T19:06:00.000+0100","timeReal":"2019-02-01T19:06:00.000+0100","countdown":51}},{"departureTime":{"timePlanned":"2019-02-01T19:13:00.000+0100","countdown":58}},{"departureTime":{"timePlanned":"2019-02-01T19:21:00.000+0100","countdown":66},"vehicle":{"name":"29A","towards":"Floridsdorf","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"type":"ptBusCity","attributes":{}}}]},"type":"ptBusCity","lineId":429}]}]},"message":{"value":"OK","messageCode":1,"serverTime":"2019-02-01T18:14:41.518+0100"}}
dazu würde ich gerne die fett markierten Daten auslesen:
28A - 1 & 17min
29A - 6 & 12min
Ich habe nur keine Ahnung wie ich dies nun umsetzen kann.
Das HTTP-Binding habe ich nun mal installiert.
.) Nun muss das http.cfg file befüllt werden oder? Was muss ich hier tun?
.) Dann muss noch eine getValue.js Datei erstellt werden? Was muss ich hier reinschreiben?
.) und wie sieht dann mein Item aus?
Anzumerken ist, dass nicht immer beide Buslinien zur Verfügung stehen. Zum Wochenende zB fährt nur der 29A
und es stehen auch nicht immer beide Zeiten zur Verfügung. Gerade zu Betriebsende. Wie geht man hier vor?
Könnt ihr mir bitte helfen dieses "Projekt" umzusetzen?
Vielen Dank
Ich brauche bitte eure Hilfe.
Ich würde gerne die Abfahrtszeiten des Busses in meiner Nähe in Openhab anzeigen.
Die Daten bekomme ich über eine JSON-Abfrage die wie folgt aussieht:
{"data":{"monitors":[{"locationStop":{"type":"Feature","geometry":{"type":"Point","coordinates":[16.4216256018884,48.2617457797284]},"properties":{"name":"60201398","title":"Töllergasse","municipality":"Wien","municipalityId":90001,"type":"stop","coordName":"WGS84","attributes":{"rbl":1115}}},"lines":[{"name":"28A","towards":"Floridsdorf S U","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"departures":{"departure":[{"departureTime":{"timePlanned":"2019-02-01T18:17:00.000+0100","timeReal":"2019-02-01T18:16:41.000+0100","countdown":1}},{"departureTime":{"timePlanned":"2019-02-01T18:32:00.000+0100","timeReal":"2019-02-01T18:32:00.000+0100","countdown":17}},{"departureTime":{"timePlanned":"2019-02-01T18:47:00.000+0100","timeReal":"2019-02-01T18:47:00.000+0100","countdown":32}},{"departureTime":{"timePlanned":"2019-02-01T19:01:00.000+0100","timeReal":"2019-02-01T19:01:30.000+0100","countdown":46}},{"departureTime":{"timePlanned":"2019-02-01T19:16:00.000+0100","countdown":61},"vehicle":{"name":"28A","towards":"Floridsdorf","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"type":"ptBusCity","attributes":{}}}]},"type":"ptBusCity","lineId":428}]},{"locationStop":{"type":"Feature","geometry":{"type":"Point","coordinates":[16.4216256018884,48.2617457797284]},"properties":{"name":"60201398","title":"Töllergasse","municipality":"Wien","municipalityId":90001,"type":"stop","coordName":"WGS84","attributes":{"rbl":1115}}},"lines":[{"name":"29A","towards":"Floridsdorf S U","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"departures":{"departure":[{"departureTime":{"timePlanned":"2019-02-01T18:20:00.000+0100","timeReal":"2019-02-01T18:21:05.000+0100","countdown":6}},{"departureTime":{"timePlanned":"2019-02-01T18:28:00.000+0100","timeReal":"2019-02-01T18:27:18.000+0100","countdown":12}},{"departureTime":{"timePlanned":"2019-02-01T18:36:00.000+0100","timeReal":"2019-02-01T18:36:00.000+0100","countdown":21}},{"departureTime":{"timePlanned":"2019-02-01T18:43:00.000+0100","timeReal":"2019-02-01T18:43:30.000+0100","countdown":28}},{"departureTime":{"timePlanned":"2019-02-01T18:51:00.000+0100","timeReal":"2019-02-01T18:51:00.000+0100","countdown":36}},{"departureTime":{"timePlanned":"2019-02-01T18:59:00.000+0100","timeReal":"2019-02-01T18:59:30.000+0100","countdown":44}},{"departureTime":{"timePlanned":"2019-02-01T19:06:00.000+0100","timeReal":"2019-02-01T19:06:00.000+0100","countdown":51}},{"departureTime":{"timePlanned":"2019-02-01T19:13:00.000+0100","countdown":58}},{"departureTime":{"timePlanned":"2019-02-01T19:21:00.000+0100","countdown":66},"vehicle":{"name":"29A","towards":"Floridsdorf","direction":"R","richtungsId":"2","barrierFree":true,"realtimeSupported":true,"trafficjam":false,"type":"ptBusCity","attributes":{}}}]},"type":"ptBusCity","lineId":429}]}]},"message":{"value":"OK","messageCode":1,"serverTime":"2019-02-01T18:14:41.518+0100"}}
dazu würde ich gerne die fett markierten Daten auslesen:
28A - 1 & 17min
29A - 6 & 12min
Ich habe nur keine Ahnung wie ich dies nun umsetzen kann.
Das HTTP-Binding habe ich nun mal installiert.
.) Nun muss das http.cfg file befüllt werden oder? Was muss ich hier tun?
.) Dann muss noch eine getValue.js Datei erstellt werden? Was muss ich hier reinschreiben?
.) und wie sieht dann mein Item aus?
Anzumerken ist, dass nicht immer beide Buslinien zur Verfügung stehen. Zum Wochenende zB fährt nur der 29A
und es stehen auch nicht immer beide Zeiten zur Verfügung. Gerade zu Betriebsende. Wie geht man hier vor?
Könnt ihr mir bitte helfen dieses "Projekt" umzusetzen?
Vielen Dank