Neues Modul: Abfahrtsmonitor für die Wiener Linien

Begonnen von syslog, 28 August 2016, 15:22:07

Vorheriges Thema - Nächstes Thema

syslog

Hi,

ich hab mich an meinem ersten fhem-Modul versucht, einem Abfahrtsmonitor für die Wiener Linien.  Die Funktionalität ist noch sehr simpel, und das Modul ist wohl nur für die Nutzer der Öffis in Wien interessant, dennoch stell ich es hier mal zur Verfügung.

Um das Modul verwenden zu können, ist folgendes nötig:


Sobald man das alles hat, kann man ein entsprechendes Device anlegen:

define Strassenbahn WienerLinien <apikey> <rbl> <abfrageinterval>

Das Modul spuckt für die kommende Abfahrten folgende Readings aus:


  • departure_barrierfree_X: Abfahrt X ist barrierefrei
  • departure_countdown_X: Minuten bis zur Abfahrt X
  • departure_planned_X: Uhrzeit laut Fahrplan für Abfahrt X
  • departure_real_X: Echtzeitabfahrt für Abfahrt X
  • departure_towards_X: Endhaltestelle für Abfarht X
  • station_name: Name der Haltestelle

Vielleicht kann ja der eine oder andere von euch damit was anfangen, Kommentare sind willkommen!

lg,
syslog

raimundl

Hallo syslog!

Danke, dein Modul funktionierte auf Anhieb.

Vielleicht noch eine Idee zur Darstellung - wie hast du es gelöst?
Ich überlege sogar die Daten in Kurzform (brauche nur eine Busabfahrtszeit) in meinen Homematik Schalter mit ePaperDiplay zu schreiben.

Danke und LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

syslog

Hi,

danke, freut mich, aber eine kleine Warnung: es sind noch einige Bugs drin, die ggf. das FHEM zum Absturz bringen, wenn die Wiener Linien keine Daten liefern können.

Ich komm leider derzeit gar nicht dazu, daran weiter zu basteln.

Wegen Anzeige: da hab ich mir noch gar nichts dazu überlegt. :-) 

lg

raimundl

Zitat von: syslog am 11 Januar 2017, 16:02:54
Hi,

danke, freut mich, aber eine kleine Warnung: es sind noch einige Bugs drin, die ggf. das FHEM zum Absturz bringen, wenn die Wiener Linien keine Daten liefern können.

Ich komm leider derzeit gar nicht dazu, daran weiter zu basteln.

Wegen Anzeige: da hab ich mir noch gar nichts dazu überlegt. :-) 

lg

Leider ja,

mit dieser Meldung war fhem (ist aber nur mein Testrechner) dann blockiert:

malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<html><head><title>J...") at ./FHEM/98_WienerLinien.pm line 119.

Bis wenn du Zeit hast

LG

Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

Gutti80

hallo!
danke für das modul.
hab grad den api-key beantragt.
mal sehen wie lange ich auf antwort warte.
ist für mich eine nützliche Sache...

petibub

Hi!

Danke an syslog für das Modul! Ich habe es noch etwas erweitert:

  • Fehlerabfrage, sodass FHEM nicht abstürzt, wenn WienerLinien-Server keine Daten liefert (passiert alle paar Minuten)
  • Attribut disable, um die Datenabfrage abschalten zu können, zum Beispiel wenn die Internetverbindung nicht steht.
  • Hilfe (device help), aber nur auf Englisch

Das Modul läuft bei mir seit Tagen problemlos (8 Haltestellen pro Minute, mit disable 0/1 Wechseln, wenn der Router abgeschaltet wird).

Was die Anzeige betrifft, genügt eine einfache readingsGroup:

define Abfahrtsmonitor readingsGroup <Linie>,<Station>,<Richtung>,<Abfahrt später>,<Abfahrt gleich (Minuten)>\
TYPE=WienerLinien:station_name,departure_towards_1,departure_countdown_2,departure_countdown_1


Vielleicht ist das für andere Wiener interessant ;-).

lG; petibub

schami23

Hi!

Ich würde das Modul gerne nutzen bekomme aber leider folgende Meldung in der Logfile

2019.02.07 11:27:37 3: WienerLinien (BusLeopoldau) - some errors found.
2019.02.07 11:27:37 3: WienerLinien (BusLeopoldau) - after readings update
2019.02.07 11:28:36 3: WienerLinien (BusLeopoldau) - start getdepartures
2019.02.07 11:28:36 3: WienerLinien (BusLeopoldau) - before NonblockingGet
2019.02.07 11:28:37 3: WienerLinien (BusLeopoldau) - after NonblockingGet
2019.02.07 11:28:37 3: WienerLinien (BusLeopoldau) - start parsedepartures
2019.02.07 11:28:37 3: WienerLinien (BusLeopoldau) - httpheader: HTTP/1.1 200
Date: Thu, 07 Feb 2019 10:28:36 GMT
Server: Apache
Content-Type: application/json;charset=UTF-8
Content-Encoding: gzip
Vary: Accept-Encoding
Connection: close



Hat jemand eine Idee?
FHEM auf Debian Stretch, HM-CFG-LAN, HM Thermostat und Rauchmelder, ESPEasy, viel selbst gebasteltes mit MQTT, Snips

schami23

Ich hab den Fehler gefunden der httpheader liefert nicht mehr
HTTP/1.1 200 OK
sondern
HTTP/1.1 200
Date: Sun, 10 Feb 2019 08:08:25 GMT
Server: Apache
Content-Type: application/json;charset=UTF-8
Content-Encoding: gzip
Vary: Accept-Encoding
Connection: close


hab jetzt die Zeile im Modul entsprechend angepasst


my $httpheader = $hash->{httpheader};
my $errstrOK = "HTTP/1.1 200 OK";

zu

my $httpheader = $hash->{httpheader};
my $errstrOK = "HTTP/1.1 200";


weiß nicht ob das so richtig ist aber jetzt läuft es wieder, auch offline gibt's keine Probleme mehr.

Ein echt tolles Modul!!!

Danke
LG Jürgen
FHEM auf Debian Stretch, HM-CFG-LAN, HM Thermostat und Rauchmelder, ESPEasy, viel selbst gebasteltes mit MQTT, Snips

cpramhofer

Vielen Dank auch von mir für das tolle Modul,

ich habe bei mir die Änderung mit dem neuen Header nachgezogen.
Komischerweise bekomme ich allerdings keine Updates. Die Readings werden einmal beim Neustart von FHEM (korrekt) geladen, danach werden sie nicht mehr aktualisiert.

lg
Christoph

cpramhofer

Zitat von: cpramhofer am 01 April 2019, 12:22:08
Vielen Dank auch von mir für das tolle Modul,

ich habe bei mir die Änderung mit dem neuen Header nachgezogen.
Komischerweise bekomme ich allerdings keine Updates. Die Readings werden einmal beim Neustart von FHEM (korrekt) geladen, danach werden sie nicht mehr aktualisiert.

lg
Christoph

Problem gefunden: durch die erweiterung des Moduls um das Attribut "disable" kam es bei mir zu einem Fehler weil dieses Attribut nicht gesetzt war.
Setzen des Attributs auf 0 hat das Problem gelöst.

cpramhofer

Zitat von: cpramhofer am 09 April 2019, 15:27:40
Problem gefunden: durch die erweiterung des Moduls um das Attribut "disable" kam es bei mir zu einem Fehler weil dieses Attribut nicht gesetzt war.
Setzen des Attributs auf 0 hat das Problem gelöst.

Problem war leider nur kurzfristig gelöst.

cpramhofer

Ich bin am Verzweifeln.

Ich finde keine Lösung wie das Modul laufend die Daten aktualisiert :(

cpramhofer


dominik

Hi,

fuer alle die noch ein Modul zur Anzeige der Wiener Linien Abfahrtszeiten suchen, ich habe dies gerade im fhem_pythonbinding integriert:
https://github.com/dominikkarall/fhem_pythonbinding

Mit diesem Modul werden alle Zeiten der Wiener Linien angezeigt die man über die OGD Schnittstelle erhält.

Störungsmeldungen habe ich noch nicht integriert, wäre aber machbar falls da Interesse besteht.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik