{"id":3082,"date":"2013-04-14T23:12:06","date_gmt":"2013-04-14T21:12:06","guid":{"rendered":"http:\/\/oelna.de\/blog\/?p=3082"},"modified":"2013-04-14T23:19:10","modified_gmt":"2013-04-14T21:19:10","slug":"rhein-neckar-verkehr-rnv-widget-fur-panic-status-board","status":"publish","type":"post","link":"https:\/\/oelna.de\/blog\/3082","title":{"rendered":"Rhein-Neckar-Verkehr (RNV) Widget f\u00fcr Panic Status Board"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"wp-photos\/2013-04-14\/statusboard_tv.jpg\" class=\"content_image retina\" width=\"300\" height=\"400\" alt=\"\" \/><\/p>\n<p>TL;DR Download: <a href=\"wp-photos\/2013-04-14\/rnv.php.txt\">rnv.php<\/a><\/p>\n<p>Vielleicht haben ein paar von euch mitbekommen, dass Panic vor einigen Tagen ihre neue iPad-App <a href=\"http:\/\/panic.com\/statusboard\/\" data-external=\"true\">Status Board<\/a> ver\u00f6ffentlicht haben. Nat\u00fcrlich ist die Web-Community verst\u00e4ndlicherweise begeistert. F\u00fcr alle, die sich darunter nichts vorstellen k\u00f6nnen: Status Board ist ein einfaches Tool zur Datenvisualisierung, das auch eine Ausgabe auf externen Bildschirmen, zB. TV-Ger\u00e4ten erm\u00f6glicht.<\/p>\n<p>Jetzt spriessen \u00fcberall neue Widgets f\u00fcr die App aus dem Boden, die bei der Datenvisualisierung helfen. Nat\u00fcrlich habe auch ich mich damit besch\u00e4ftigt, auf die schnelle meinen ersten Screen zusammengestellt, und so weiter. Leider sind viele der Widgets auf den US-Markt ausgerichtet, und nachdem ich nicht wusste, wie lange man jetzt auf deutsche Anbindung warten wird m\u00fcssen, habe ich meine eigenen Coding-Skills mal aus der Schublade geholt.<\/p>\n<p>F\u00fcr Evas Caf\u00e9 <a href=\"http:\/\/nord.li\/\">NORD<\/a> probiere ich im Moment viele verschiedene Tech-Gadgets aus, um welche zu finden, die im Laden sinn machen und es irgendwie cool machen f\u00fcr Technikbegeisterte. Die App kam mir gerade recht. Mal sehen, ob ich sie \u00fcberreden kann, das ganze irgendwo aufzustellen. Ich f\u00e4nds ja praktisch. Es gibt ja ein paar Stats im Caf\u00e9, die sch\u00f6n w\u00e4ren, auch zu zeigen.<\/p>\n<p>Was schnell gemacht war, war eine Abfrage von Foursquare-, Twitter- und Facebook-Stats. Aber die sind ja auch keine richtige Herausforderung. Was echt spannend und n\u00fctzlich w\u00e4re, w\u00e4r ja ein Fahrplan nahegelegener Haltestellen (in meinem Fall f\u00fcr Mannheim, Ludwigshafen und Heidelberg), wie ihn Panic selbst auch <a href=\"http:\/\/www.panic.com\/blog\/2010\/03\/the-panic-status-board\/\" data-external=\"true\">auf ihrem Board<\/a> verwenden.<\/p>\n<p>Nat\u00fcrlich stellt der <a href=\"http:\/\/www.rnv-online.de\/\" data-external=\"true\">Rhein-Neckar-Verkehrsverbund<\/a> eine hervorragende API zur Abfrage ihrer Abfahrtszeiten zur Verf\u00fcgung. NOT!<br \/>Ich schaue mich also auf deren Seite ein wenig um, ob irgendwo die Daten in brauchbarer Form vorliegen, so dass ich was damit machen k\u00f6nnte. Fehlanzeige. Ich stosse allerdings auf ein kleines Windows-Widget, das aktuelle Abfahrtszeigen f\u00fcr die gew\u00e4hlte Haltestelle anzeigen kann. GENAU WAS ICH BRAUCHE! Leider ist es in ein unsch\u00f6nes Java-Archiv verpackt. Reverse Engineering to the rescue! Ich wurstle mich also durch den Code, um rauszufinden, wo das Ding die Daten herbekommt, und siehe da, es *gibt* eine API. Und die ist nichtmal schlecht. Nach ein wenig WiFi Scooping habe ich dann alle Aufrufe zusammen, die ich brauche. Und dann ist es gar nicht mehr weit, zu einem fertigen Statusboard-Widget.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"wp-photos\/2013-04-14\/statusboard_plain.jpg\" class=\"content_image retina\" width=\"360\" height=\"480\" alt=\"\" \/><\/p>\n<p>Und jetzt kommt der gute Teil: ihr k\u00f6nnt das Status Board Widget haben! Ich f\u00e4nds super, wenn die App, und damit eine gutaussehende Fahrplanauskunft, auch in Mannheim und Umgebung Verbreitung findet. Ich bin zwar nicht sicher, ob der RNV das gut findet, aber letztlich macht das Tool ja echt das gleiche, wie ihre App und es steht sogar RNV drauf. Ich hoffe, das ist ok.<\/p>\n<p>Ich muss dazu sagen, dass das HTML gr\u00f6\u00dftenteils von Panics Space-Template stammt, also nicht von mir aufger\u00e4umt wurde. Daher sieht es ein bisschen w\u00fcst aus, aber ich denke, man kommt zurecht, wenn man auch nur einen ungef\u00e4hren Plan von Webdesign hat. Der andere Haken ist, man muss die HafasID der Haltestelle wissen, die man anzeigen will, aber f\u00fcr die gibts eine <a href=\"http:\/\/rnv.the-agent-factory.de:8080\/easygo2\/rest\/regions\/rnv\/modules\/stations\/packages\/1\" data-external=\"true\">XML-Liste<\/a>. Hat man die ID gefunden, kann man das Widget auf seinen Server hochladen und mit dem Parameter ID aufrufen, zB. so:<br \/><strong>rnv.php?id=2432<\/strong><\/p>\n<p>Jetzt bleibt noch zu hoffen, dass der RNV es genauso cool findet, wie ich. Ihr k\u00f6nnt die Datei jedenfalls mal runterladen und reinschauen. Spektakul\u00e4r ist eigentlich nichts daran, aber man kann es ja nach Belieben anpassen und weiterverwenden. Vielleicht komme ich in den n\u00e4chsten Tagen dazu, noch ein wenig weiter dran zu feilen. Ein gescheiter AJAX-Refresh w\u00e4r zB. ganz gut. Eventuell kann man das ganze Ding auch komplett mit Javascript nachbauen, statt mit PHP.<\/p>\n<p>Download: <a href=\"wp-photos\/2013-04-14\/rnv.php.txt\">rnv.php<\/a><\/p>\n<p>PS: Wenn ihr was spannendes damit macht, f\u00e4nd ich cool, wenn ihr mir ein Bild oder so davon zukommen lassen k\u00f6nntet. Da w\u00fcrd ich mich dr\u00fcber freuen. Auf twitter bin ich <a href=\"https:\/\/twitter.com\/oelna\" data-external=\"true\">@oelna<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR Download: rnv.php Vielleicht haben ein paar von euch mitbekommen, dass Panic vor einigen Tagen ihre neue iPad-App Status Board ver\u00f6ffentlicht haben. Nat\u00fcrlich ist die Web-Community verst\u00e4ndlicherweise begeistert. F\u00fcr alle, die sich darunter nichts vorstellen k\u00f6nnen: Status Board ist ein einfaches Tool zur Datenvisualisierung, das auch eine Ausgabe auf externen Bildschirmen, zB. TV-Ger\u00e4ten erm\u00f6glicht. Jetzt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"public","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[2,1],"tags":[191,503,61,20,496,682,803,814,29,683],"class_list":["post-3082","post","type-post","status-publish","format-standard","hentry","category-deutsch","category-general","tag-rnv","tag-app","tag-coding","tag-html","tag-ipad","tag-java","tag-mannheim","tag-panic","tag-php","tag-strassenbahn"],"_links":{"self":[{"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/posts\/3082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/comments?post=3082"}],"version-history":[{"count":10,"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/posts\/3082\/revisions"}],"predecessor-version":[{"id":3091,"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/posts\/3082\/revisions\/3091"}],"wp:attachment":[{"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/media?parent=3082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/categories?post=3082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oelna.de\/blog\/wp-json\/wp\/v2\/tags?post=3082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}