<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ruter on falkp.no/blog</title>
    <link>/blog/tags/ruter/</link>
    <description>falkp.no/blog (Ruter)</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
      

      
    

    
    <lastBuildDate>Mon, 23 May 2016 00:00:00 +0000</lastBuildDate>
    
    <atom:link href="/blog/tags/ruter/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Your own Ruter.no realtime monitor</title>
      <link>/blog/posts/your_own_ruter_no_realtime_monitor/</link>
      <pubDate>Mon, 23 May 2016 00:00:00 +0000</pubDate>
      
      <guid>/blog/posts/your_own_ruter_no_realtime_monitor/</guid>
      <description>&lt;h2 id=&#34;overview&#34; &gt;
&lt;div&gt;
    &lt;a href=&#34;#overview&#34;&gt;
        #
    &lt;/a&gt;
    Overview
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;By request, a quick how-to on setting up your own realtime monitor for &lt;a href=&#34;http://ruter.no&#34;&gt;ruter.no&lt;/a&gt;, Oslos public transit.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;mon.png&#34; alt=&#34;Ruter realtime example&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;as-simple-as-possible&#34; &gt;
&lt;div&gt;
    &lt;a href=&#34;#as-simple-as-possible&#34;&gt;
        #
    &lt;/a&gt;
    As simple as possible
&lt;/div&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Get an old laptop&lt;/li&gt;
&lt;li&gt;Set it to start a web browser at boot&lt;/li&gt;
&lt;li&gt;Make the browser start to i.e. &lt;a href=&#34;http://mon.ruter.no/monitor/3010314/Adamstuen/2190090&#34;&gt;http://mon.ruter.no/monitor/3010314/Adamstuen/2190090&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Done!&lt;/p&gt;
&lt;h2 id=&#34;background&#34; &gt;
&lt;div&gt;
    &lt;a href=&#34;#background&#34;&gt;
        #
    &lt;/a&gt;
    Background
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Ruter has an &lt;a href=&#34;https://ruter.no/labs/&#34;&gt;API&lt;/a&gt;, so you can go crazy and implement your own client easily, like I&amp;rsquo;ve done with &lt;a href=&#34;https://github.com/ways/rutercli&#34;&gt;rutercli&lt;/a&gt;. But there&amp;rsquo;s a much simpler solution. They&amp;rsquo;ve got a website in the same style as their public monitors, mon.ruter.no. You can start with the link above, and find the numbers and names you need from a normal ruter.no search. You&amp;rsquo;ll also find &lt;a href=&#34;http://nsb.no&#34;&gt;NSB&lt;/a&gt; stuff there. See &lt;a href=&#34;https://ruter.no/reiseplanlegger/sanntid/egen-sanntidsskjerm/&#34;&gt;ruter.no/reiseplanlegger/sanntid/egen-sanntidsskjerm&lt;/a&gt; for more info.&lt;/p&gt;
&lt;h2 id=&#34;in-a-white-wooden-frame&#34; &gt;
&lt;div&gt;
    &lt;a href=&#34;#in-a-white-wooden-frame&#34;&gt;
        #
    &lt;/a&gt;
    In a white wooden frame
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s a basic example in a photo frame:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;front.jpg&#34; alt=&#34;Front view&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;back.jpg&#34; alt=&#34;Back view&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;wall.jpg&#34; alt=&#34;On wall&#34;&gt;&lt;/p&gt;
&lt;p&gt;This one is run by a &lt;a href=&#34;http://www.digitalimpuls.no/PC-komponenter/Enkortsdata/Raspberry-Pi/Hovedkort/Raspberry-Pi-Modell-B-512MB-Ram-Oppdatert-versjon-av-Model-B129545-p0000087985&#34;&gt;Raspberry Pi&lt;/a&gt; model B, but any model will do. The screen is from &lt;a href=&#34;http://www.chalk-elec.com/?page_id=1280#!/10-LCD-LVDS-bundle-RaspberryPi/p/39527161/category=3094859&#34;&gt;Chalk-elec&lt;/a&gt;, but any display will do. The frame is a normal photo frame. Then there&amp;rsquo;s some glue and plastics on the back to hold it all together.&lt;/p&gt;
&lt;p&gt;To align two different transits use something like this HTML:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#78787e&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;html&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;head&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;TITLE&lt;/span&gt;&amp;gt;Info Screen&amp;lt;/&lt;span style=&#34;color:#ff6ac1&#34;&gt;TITLE&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;meta&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;http-equiv&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;refresh&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;content&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;6000&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;meta&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;charset&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#ff6ac1&#34;&gt;HEAD&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;body&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;background-color:#2a2a2a&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;scroll&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;no&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;iframe&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;http://mon.ruter.no/monitor/2190090/Østerås [T-bane] (Bærum)?rows=4 &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;align&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;left&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;width&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;100%&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;height&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;550&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;scrolling&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;no&amp;#34;&lt;/span&gt;  &lt;span style=&#34;color:#57c7ff&#34;&gt;frameborder&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;/&lt;span style=&#34;color:#ff6ac1&#34;&gt;iframe&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;iframe&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;http://mon.ruter.no/monitor/2190090/Østerås [T-bane] (Bærum)?rows=4 &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;align&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;left&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;width&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;100%&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;height&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;550&lt;/span&gt; &lt;span style=&#34;color:#57c7ff&#34;&gt;scrolling&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;no&amp;#34;&lt;/span&gt;  &lt;span style=&#34;color:#57c7ff&#34;&gt;frameborder&lt;/span&gt;&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#5af78e&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;/&lt;span style=&#34;color:#ff6ac1&#34;&gt;iframe&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#ff6ac1&#34;&gt;body&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#ff6ac1&#34;&gt;HTML&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And to have it start automatically at boot, edit /etc/xdg/lxsession/LXDE/autostart to look like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@xset s off
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@xset -dpms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@xset s noblank
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@unclutter
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;My crontab:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@daily /sbin/reboot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@reboot sleep 10; /root/browser.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And /root/browser.sh contains:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#78787e&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;killall midori
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;midori &lt;span style=&#34;color:#5af78e&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --app&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;rutyr.html &lt;span style=&#34;color:#5af78e&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --display&lt;span style=&#34;color:#ff6ac1&#34;&gt;=&lt;/span&gt;:0 &lt;span style=&#34;color:#5af78e&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --execute Fullscreen
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
  </channel>
</rss>
