NEWS
DB Zugverbindungen abfragen
-
Hi @jerzimeik ,
daher ist in Zeile 49 der Vergleich zwischen der ursprünglichen Abfahrtszeit und der Verspätungszeit drin. Falls diese übereinstimmt, ist es ja keine Verspätung.
Gruss Ralf
-
Hi Andreas,
leider bringt die Bahn im Quellcode für das "ä" ein Sonderzeichen ein, daher der komische Vergleich in der Zeile.
Kannst oben mal die dritte Zeile ändern auf
let DebugOut = true;
und den Output schicken ?
Sonst häng ich das Script hier mal als Textdatei an, eventuell klappts damit besser.
Gruss Ralf
-
@AggroRalf sagte in DB Zugverbindungen abfragen:
und den Output schicken ?
Sorry war ein paar Tage im Urlaub. Werde das heute Abend mal testen.
Ich vermute Du wills den LOG haben, korrekt ?Andreas
-
@RandyAndy : Ja, genau
-
Cool, mit der angehängten Textdatei funktioniert es nun auch.
Habe die Bahnstationen geändert und nun ist alles bestens.
Ich kann zwar keinen Unterschied feststellen zwischen den Inhalten. Vielleicht nicht sichtbare Steuerzeichen.
Noch ein Frage zum HTML-Text den Du erzeugst. Welches Widget verwendest Du um die Tabelle darzustellen.
Da komme ich nicht weiterAndreas
-
Hi Andreas,
schön das es nun klappt. Ich verwende in VIS ein einfaches HTML-Widget (Basic HTML) und trage dann dort im Feld "HTML" folgendes ein:{javascript.0.bahn.LiFr.HTML} {javascript.0.bahn.FrLi.HTML}
-
verstanden. Ich habe immer nach einem Widget gesucht mit dem man direkt das Objekt aufrufen kann.
Das eröffnet aber eine ganz andere Sicht auf die Darstellung, da man über diese EIngabe und ein wenig HTML-Code schicke Anzeigen erstellen kann. Danke für den Hinweis -
@AggroRalf nun klappt alles bestens. Bin über die Farben ein wenig gestolpert ist aber dann im Code leicht nachvollziehbar.
Super Skript und löst nun meine Lösung ab die weit weniger stabil war. -
@RandyAndy : Perfekt, freut mich wenns was nutzt.
-
Guten Abend zusammen:)
Auf der Suche nach Lösungen für mein Projekt bin ich zum Glück auf das Forum aufmerksam geworden.
Mein Ziel:
Eine Website bauen, welche alle Bahnfahrten + Verspätungen anzeigt. (Soll auf Dauer bei mir local gespeichert werden). GGF auch OPNV.- User sollen nach Ihrer Zugnummer suchen können.
Mein Problem(e):
- Die Bahn API stellt nur Informationen für den Fernverkehr bereit. Ich brauche jedoch auch den Nahverkehr
- Die Bahn API stellt (meines Wissens nach) keine Schnittstelle bereit, worüber ich nach Zugnummern suchen kann.
Frage:
Wie realisiert Ihr eure Lösungen? nur über die query.exe? Und habt ihr ggf. Lösungsvorschläge für die Probleme oben?Ich wünsche einen schönen Tag.
MFG cyber
-
@cyberman96 Hi,
ich hatte auch erst die Idee mal nach APIs zu suchen. Aber leider gibts da nichts vernünftiges bzw. komplettes.
Daher das Script welches die Webseite der Bahn ausliest. Ich gehe ja auch die mobile Seite, hier ändert sich tendenziell weniger oft etwas.
Der Anwendungszweck ist natürlich etwas anderes. Mir gings darum, morgens im VIS kurz schauen zu können ob mein Zug pünktlich ist.
Ich verstehe nicht ganz was Du aufbauen möchtest, aber es hört sich nach einer Webseite an auf der Benutzer nach einer beliebigen Zugnummer plus Datum/Uhrzeit suchen können.
Das ist über die reine query.exe meines Erachtens schier ein Ding der Unmöglichkeit. Ohne vernünftige API (die es meines Wissens nicht gibt) oder direkte Zusammenarbeit mit der Bahn wird das glaube ich nichts werden.
Gruss Ralf
-
Hi,
kann mir evtl. jemand beim Script von Ralf weiterhelfen? Ich habe es minimal erweitert um auch das Verkehrsmittel zu bekommen. Dazu mussten nur ein paar Zeilen ergänzt werden, u. a. die Abfrage:
let svkmittel = sCurrConn.match(/reiseabschnitt\.verkehrsmittelnummer \= \"(.*?)\"\./)[1]; // Im Log log ('Verkehrsmittel: ' + svkmittel); //Zum Schreiben createState('bahn.' + ConnectionName + '.' + iCounter + '.Verkehrsmittel', ""); setState('bahn.' + ConnectionName + '.' + iCounter + '.Verkehrsmittel', svkmittel, true);
Grundsätzlich geht es, ich habe aber das Problem, dass er das Verkehrsmittel bei S-Bahnen nicht übernimmt und ich nicht verstehe warum es so ist:
Die Auszüge (Wortspiel ) aus der Rückgabe der Bahnwebseite:
Landet als Objekt in iObroker:
;reiseabschnitt.verkehrsmittelnummer = "Bus 122".match(/\d+/)[0];verbindung.reiseabschnitt.push(reiseabschnitt);
Bleibt leer in iObroker
;reiseabschnitt.verkehrsmittelnummer = "S 4".match(/\d+/)[0];verbindung.reiseabschnitt.push(reiseabschnitt);
Was mache ich falsch? Ich vermute meinen Fehler im RegEx
(.*?)\
in Kombination mit dem Einzelbuchstaben der S 4 in der Ausgabe.
Hat jemand einen Tipp?
Zudem eine kurze Frage: Wie aktiviere ich das Debuglog in den Scripten?
Grüße
-
Hi,
sorry, ich habe das Thema erst jetzt wieder entdeckt.
Ich habe das ganze mittlerweile mal in einen richtigen Adapter umgebaut, inklusive Verkehrsmittel.
Aktuell ist es Alpha-Version, siehe hier der Link zum Beitrag:
https://forum.iobroker.net/topic/35169/test-adapter-fahrplan-v0-1-x-github-alpha-version
Gruss Ralf
-
@AggroRalf
Ui, cool! Das schaue ich mir an!