A web-based dashboard for raspberry pi + touchscreen to have an at-a-glance view of data for the home.
JavaScript HTML Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config_files
screen
README.md
porter.png

README.md

Porter

(See it in action here)

A dashboard meant for raspberry pi + touchscreen to have an at-a-glance view of data for the home.

Features

  • Upcoming (24 hour) weather, scrollable and inspired by the wonderful design of Weather Line.
  • Alerts when precipitation is forecast within the hour (à la Dark Sky)
  • Light control (using my own API... hope to set this up soon)
  • Nearest Uber-X status
  • Nearest Car2Go status with toggleable map
  • NYC subway alerts
  • "Should I bring my umbrella?" alert
  • The current time

Prerequisites

This was all built exactly to the spec of the Official Raspberry Pi Display. I'm hardcoding a lot of the resolutions in here just for that, so be warned.

I run it on a RPI2.

WARNING: This really only works well on Wheezy at this point. I'm attempting to get it to work well on Jessie, but so far it's not perfect.

Installation

  • Update and install requirements:

    sudo apt-get update
    
    sudo apt-get dist-upgrade
    
    sudo apt-get install matchbox chromium x11-xserver-utils ttf-mscorefonts-installer xwit sqlite3 libnss3 apache2 xinput
    

If you're working with Jessie, this is gonna be a bit tougher. To install chromium, follow these instructions, but bear in mind it only works for RPI2.

  • Edit/replace config files.

    • config.txt goes into the bottom of /boot/config.txt
    • xinitrc goes into ~/.xinitrc
    • default goes to /etc/apache2/sites-available/default
  • Add the following to /etc/rc.local:

    if [ -f /boot/xinitrc ]; then
        ln -fs /boot/xinitrc /home/pi/.xinitrc;
        su - pi -c 'startx' &
    fi
    
  • Put /screen into home folder

  • Put in all your appropriate data in js/config.js

  • Boot 'er up!

Warnings

  • This code sucks. I'm pretty rusty when it comes to JS (or any language at that matter) and have been so busy adding that I haven't even considered refactoring.

  • Some things only work for me. Light control is using my own API (I hope to OS that soon, too) and the subway information is currently NYC only.