Installering af Dashing på en Raspberry Pi

Hej
Jeg har nu rodet med dette et par dage, og kan simpelthen ikke få det til at virke. Håber nogen kan hjælpe.
Mål: Installér Dashing på en Raspberry Pi
Jeg bruger disse 2 links:
Jeg tager udgangspunkt i Wheezy. Ved ikke om det var bedre at bruge Jessie? Tænkte de fleste guides ville tage udgangspunkt i Wheezy, så det var "sikre"
Mine trin er:
rbenv install 1.9.3-p448
Hvis jeg prøver at checke efter ruby & ruby dev, så siger den at jeg allerede har de nyeste installeret? Hvad gør jeg galt?

Mine trin i én kodestump er
sudo apt-get update
$ sudo apt-get install git-core git build-essential libssl-dev zlib1g-dev
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(rbenv init -)"' >> ~/.profile
$ exec $SHELL -l # make rbenv available immediately
$ rbenv install 1.9.3-p448
Den nederste giver en build fejl.

Først må jeg beklager fejlen med flere "code-entries" som bliver ignoreret og ikke kommer med, jeg er igang med at kigge på det, så vi kan få løst fejlen.
Jeg skal lige forstå fejlen/problemet helt korrekt. Målet er at installere en ældre version af Ruby? (1.9.3) - men du får besked på at du allerede har installeret nyeste version? eller?
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS

Hvis jeg skulle have nogenlunde samme system, så ville jeg nok køre en web browser i fuld skærm og dermed undgå alle mulige andre ting. (Xinit med autologin af pi brugeren, unclutter for at fjerne musen, køre evt. chromium-browser i kiosk mode etc.)
Men det ser dog ud til at https://github.com/mivok/squirrelpouch/wiki/dashing-pi er en noget nyere guide. Prøv evt. den.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Og jeg ville selvfølgelig også kigge direkte på dashing's egen hjemmeside: http://dashing.io/#setup
Hvis jeg kan få min kortlæser (i min MBP fra mid 2010) til at ville køre her i morgen, vil jeg se om jeg ikke kan få noget til at virke selv. Finder jeg en løsning. Skal jeg nok lige skrive hvad jeg gjorde her inde. :)
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Hej Simon,
Hvis du ikke har fået det til at virke, når jeg lige er færdig med de opgaver jeg sidder med lige nu, skal jeg nok tage et kig på det og hjælpe dig i mål :-)
Jeg har endnu ikke selv leget med- eller brugt Dashing, da jeg som nævnt på Facebook tidligere valgte at kode mit eget fra bunden :-)
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS

Jeg ved hvad problemet er, har lige testet selv på min gamle RaspBerry Pi og kigget de kommandoer igennem du visser. Du har aldrig bygget dit projekt, du har kun "initialized" det. (I mangel på bedre ord.)
$ dashing new dashboard
$ cd dashboard
$ bundle
$ dashing start
dashing new dashboard, bygger dit projekt under ~/dashboard mappen. (I mit tilfælde brugte jeg bare pi brugeren. Så /home/pi/dashboard.)
cd dashboard, går ind i mappen.
bundle, bygger/compiler dit nyt dashing projekt.
dashing start, starter serveren.
Resultat:
P.S: Jeg benyttede mig af Raspbian Jessy Lite. (Da jeg ikke gad at døje med grafiske brugerflader og bare tilgår min RaspBerry Pi via SSH.)
Men det er det samme, om du gør det på den ene måde eller den anden.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Efter at du bruger "bundle" kommandoen, henter den nogen gems og bruger dem. Din browser skulle automatisk gå til <ip>:3030/sample selvom at du kun skriver <ip>:3030. Jeg håber at det gav lidt info. Her i starten.
Jeg vil ellers henvisse til dashing.io dokumentationen omkring nærmere brug, evt. "Gettting Started" også.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Så, et "recap" og endeligt svar fra mig af.
Jeg tog udgangspunkt i guiden jeg gav tidligere som kan findes her: https://github.com/mivok/squirrelpouch/wiki/dashing-pi
RASPBIAN JESSIE LITE
Kan hentes her: https://www.raspberrypi.org/downloads/raspbian/
Tilgå RaspBerry Pi via SSH i "headless" mode
Da jeg ikke har noget USB tastatur at bruge på min RaspBerry Pi, så fandt jeg istedet dens IP adresse efter at jeg bootede den op. (Via min Cisco router.)
Når jeg så var logget ind, gik jeg i krig med guiden. Og det var så endelig det.
Det kedelige
Det sædvanlige når man lige har fået et nyt system op at køre.
dashing new dashboard
cd dashboard
bundle
dashing start
Nu kan du tilgå dashing (dashboard projektet) via RaspBerry Pi IP'en på port 3030.
<ip>:3030
Til sidst...
Jeg gik ikke videre her fra i guiden, men i starten - er det vigtigeste jo også at få det til at virke. Så kan man altid efter det, få den til at visse det direkte fra RaspBerry Pi'en via skærmen den er sat til. (Ved brug af "RaspBerry Pi Kiosk Mode" som også gennemgåes i selve guiden jeg linkede.)
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

(Den lavede gæd med mit sidste indlæg. Så her er det igen men uden "kodeblokke".)
Så, et "recap" og endeligt svar fra mig af.
Jeg tog udgangspunkt i guiden jeg gav tidligere som kan findes her: https://github.com/mivok/squirrelpouch/wiki/dashing-pi
RASPBIAN JESSIE LITE
Kan hentes her: https://www.raspberrypi.org/downloads/raspbian/
Tilgå RaspBerry Pi via SSH i "headless" mode
Da jeg ikke har noget USB tastatur at bruge på min RaspBerry Pi, så fandt jeg istedet dens IP adresse efter at jeg bootede den op. (Via min Cisco router.)
Når jeg så var logget ind, gik jeg i krig med guiden. Og det var så egentlig bare det.
Det kedelige
Det sædvanlige når man lige har fået et nyt system op at køre.
$ sudo apt-get update
$ sudo apt-get upgrade && sudo apt-get dist-upgrade
(Jeg ville evt. også lave en bruger kun til mig og deaktivere pi brugeren, men hvis den kun køre lokalt og ikke kan tilgåes udefra ren sikkerhedsmæssigt, så kan jeg ikke se den store idé i det. Evt. kig i Linux Server serien her på v5.)
Installering af SSL dev pakke fra repositories
$ sudo apt-get install libssl-dev
Installering af Node.js
$ curl -O http://node-arm.herokuapp.com/node_latest_armhf.deb
$ sudo dpkg -i node_latest_armhf.deb
Installering af Ruby og dev pakker fra repositories
$ sudo apt-get install ruby ruby-dev
Installering af bundler og dashing gems
$ sudo gem install bundler dashing --no-rdoc --no-ri
(Der er ingen grund til at have dokumentation liggende og fylde. Derfor brugen af de ekstra flags.)
Dashing projekt
$ dashing new dashboard
$ cd dashboard
$ bundle
$ dashing start
Nu kan du tilgå dashing (dashboard projektet) via RaspBerry Pi IP'en på port 3030.
<ip>:3030
Til sidst...
Jeg gik ikke videre her fra i guiden, men i starten - er det vigtigeste jo også at få det til at virke. Så kan man altid efter det, få den til at visse det direkte fra RaspBerry Pi'en via skærmen den er sat til. (Ved brug af "RaspBerry Pi Kiosk Mode" som også gennemgåes i selve guiden jeg linkede.)
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

#23
Det lyder godt Hr. Bahl. Og ja, sådan en WYSIWYG editor er ikke altid nem at implementere. Jeg ville personligt ønske at der var en version hvor baren i toppen med muligheder, gik ned samtidig med at du skrev. (Blev hold i toppen, som en "fixed" top menu på hjemmesider.) Det kan være lidt trælst til tider, at skulle scrolle helt op i starten for at trykke på en af knapperne. Når man laver lange indlæg. (Og evt. en måde at se selve koden ved tryk på en knap. Som den giver serveren efter at den sender. Så man kan justere hvis nogen små ting ikke lige helt virker som man vil have det til. Eksempelvis <p> tags. Ligesom man kan i eksempelvis Wordpress.)
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

#24
Vi har arbejdet det meste af natten på bl.a. at forbedre vores editor.
1. Den nye code-editor giver live-preview af code og markup direkte i editoren.
2. Den nye fuld-skærms editor, gør det muligt arbejde i fuld skærm og som ønsket følger top-menuen også med ned, hvis du laver længere tekster over flere linjer.
Vi arbejder også en masse andre ting, bl.a. @mentions-support :-) Stay tuned for more.
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS

Et lille tip, følger du guiden som jeg linkede til i mit svar. (Jeg tog mig selv lige ulejligheden, at få det hele igennem.) Så virker den automatiske booting og at få det op på skærmen også. Fortsat god torsdag. Glæder mig til at se hvad du gør med den viden.
Det andet tip er, at inden du går igang med noget af det. Så køre du "sudo raspi-config" kommandoen. Da som standard, RaspBerry Pi. (Raspbian.) Ikke benytter hele SD kortet. Men det kan du få den til, ved at køre den første mulighed i raspi-config.
Happy hacking!
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

#30
Det lyder godt. Jeg vil se frem til det. Og jeg undskylder at mit eksempel billede er ikke er det bedste. (Jeg havde fejlet i opsætningen, så den ikke viste hele skærmen rigtigt. Men guiden er god nok.)
Så hvis du ikke er lige så dum som mig, at jeg kom til at lave en .uzbl.conf i stedet for uzbl.conf fil. (Uden punktum i starten.) Så kan du få en meget federe opløsning. Da det fjerner baren fra browsren og maximere. Men jeg tror du måske skal rode lidt med .xsession hvis du skal have det til at fylde hele skærmen, hvis du som mig har en 16:10 skærm. Svært at se på billedet, men jeg har en sort kant hele vejen rundt om selve browseren.
Der skal nok rodes lidt med det, for at det også fylder det hele i selve browseren.
Men er ikke sikker. Jeg ser som sagt frem til, at se hvad du selv for bikset sammen. Nu vil jeg selv bruge min RaspBerry Pi til andet end det her. (Server.)
(Uzbl er browseren i guiden her.)
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

#32
Dejligt. Dog en enkel ting jeg ville gøre. I guiden bruger den Pi brugeren til at logge ind automatisk med. Jeg ville fjerne dens sudo rettigheder.
Og lave min egen bruger, som jeg så benytter til administrative opgaver. Med andre ord, jeg ville omdanne Pi brugeren, til bare en bruger. Alt for sikkerheden. Jeg ville også fjerne pi fra /etc/ssh/sshd_config. (Og det var præcis det jeg gjorde i min egen opsætning.) Happy hacking.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Tak for hjælpen! Jeg sad og byggede løs i går. Jeg må dog med lettere rødmen erkende at dashing måske ikke lige er fleksibel nok, til det jeg gerne vil ha. Så med fantastisk hjælp her, ender det nok som @daniel, med at bygge et selv, på en eller anden måde.
Men det er jo nok en helt ny tråd med helt andre problemer

#34
Jeg mener at @daniel benytter sig af PHP i det tilfælde. Med diverse API's. Det gjorde han også engang til v5.Lan da det eksisterede tilbage i 2009. Hvor at han viste oplysninger om Lan aktiviteter og meget andet. Happy hacking.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Ja, det vil jeg også tro. Det kunne evt være et andet emne, men nogle småguides til hvordan man lavede sin egen dashboard struktur med "widgets", og så fik det koblet op på. F.eks.
- Dags dato og tid
- Forecast.io (7 dages vejrudsigt)
- Wunderlist dagens todo
- De næste 7 dage i kalenderen (Google Calendar)
- Nyheder fra RSS feed
- Evt countdowns til dato'er
Masser af spændende muligheder.

#36
Det kunne der helt sikkert godt komme både blogindlæg og videoer af kan jeg forestille mig. Evt. ønsk dem her på v5.dk.
Forecast.io, Wunderlist, Google Calender er alt sammen API's som kunne være interresante at lave i hvert fald blogindlæg omkring. (Du kan finde meget mere omkring deres API's, de respektive steder.)
Ang. RSS Feeds kan du finde gamle videor om netop dette til PHP, i de gamle (arkiverede) arkiver.
Byg et XML-feed: https://v5.dk/arkivet/php-xml-feed-simplexml.html
Læs XML-feeds: https://v5.dk/arkivet/simplexml-reader-parse-laes-xml.html
Til nedtællinger og dags dato og tid, kan der benyttes noget PHP. Men i det tilfælde kommer du nok ikke uden om en Websocket (af en art) eller Node.JS for at få en mere "real-time" funktonalitet.
Jeg håber at det kunne evt. kickstarte dig lidt igang. God arbejdslyst.
(Og ellers så står forummet jo også frit for at oprette fremtidige forum tråde. Det er bare at komme igang, det er den bedste måde at lære på!)
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

#38
API's (Application Programming Interface) er i bund og grund, for det meste bare en samling af stumper af kode. (Tænk ala. "classes" eller "functions" i PHP, Python osv.)
Langt de fleste API's (om du bruger PHP, Python eller et tredje sprog) plejer, at have mere end god dokumentation og sågar noget kode du direkte kan teste med. Så det er bare at gå i krig. Det plejer meget sjældent at være svært. (Hele idéen med et API er jo netop at gøre det nemt at få data, på en sikker måde fra eksempelvis Google eller andre tjenester for web/app udviklere.)
En anden ting er, medmindre specificeret anderledes. Så benytter de fleste API's i dag JSON til at sende data frem og tilbage. Det var bl.a. sådan at jeg startede med at lave et meget lille API selv til at få Twitch og Python til at snakke sammen. (PyTwitch, som jeg desværre aldrig kom så langt med. Der skulle jeg selv bygge "API'et" i det her tilfælde. https://github.com/CAISC/pytwitch - men langt de fleste gange, er det allerede gjort. Og så er det jo bare at benytte sig af det. Hive data ud og ind.)
Eksempelvis med Google Calender, kan du se deres API til PHP lige her: https://developers.google.com/google-apps/calendar/quickstart/php
Jeg håber at det gav mening. Det er bare at gå i krig. Jeg syntes man lære bedst ved at have et mål og bare gå igang. Det var sådan jeg selv lærte en hel masse om PHP, såvel som Linux.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Jeg er bare lidt nysgerrig, er du kommet videre med dit dashboard? @simonpedersen
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS

Hej
Så er jeg kommet lidt videre! En af mine "widgets" tager RSS fra MyEpisodes, slår navnet op på tvdb, henter filen ned i en folder på webserveren og viser billedet. (Man må ikke deeplinke fra tvdb). Det virker på Unoeuro, men det virker IKKE når jeg kører samme kodestump fra min raspberry pi. Gætter på det er et permission error til folderen? Men har prøvet en "chmod 777 posters"
<?php
$tvshowname = "Hawaii Five-0";
$url = "http://thetvdb.com/api/GetSeries.php?seriesname=".$tvshowname;
$xml = simplexml_load_file($url);
$id = ($xml->Series->id);
$posterurl = "http://thetvdb.com/api/C81FA7CC2760CA6F/series/".$id."/en.xml";
$posterxml = simplexml_load_file($posterurl);
$posterpath = "http://thetvdb.com//banners/_cache/".$posterxml->Series->poster;
$downloadpath = "posters/".$tvshowname.".jpg";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $posterpath);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_REFERER, "http://thetvdb.com/");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
// the following lines write the contents to a file in the same directory (provided permissions etc)
$fp = fopen( $downloadpath, 'w');
fwrite($fp, $result);
fclose($fp);
$imagepath = "posters/".rawurlencode($tvshowname).".jpg";
echo '<img src='.$imagepath.' width="100px">';
?>

Jeg har nu endelig fået min Wifi Dongle, og har fået den koblet til et fjernsyn og fået den via DHCP på nettet.
Det næste er så at få et browser vindue på min Pi. Det ser ud til at der er problemer med chromenium, Jessie og Pi v1 hvis jeg googler lidt.
Er der nogen der har fået dette til at virke? Evt med en anden browser?

#44
Hej igen @simonpedersen
Selvfølgelig har vi nogen idéer og har fået det til at virke hos os. Tihi. :)
Vi bruger selv en Raspberry Pi som "browser" på kontoret, for at visse en masse ting. (Dashboard lavet fra bunden af i PHP.)
På kontoret bruger vi unclutter, matchbox og midori. Og så et simpelt script der starter midori på den side vi vil have den på. (Vores Dasboard.)
Unclutter fjerner musen og mathcbox er selve "vindue manageren". (Kaldet WM. Windows Manager. Der styrer rent teknisk vinduer på skærmen. GUI.)
Midori er en lille letvægts browser. Og jeg mener at det er bygget på Chromium. (Open Source version af Chrome, men med en helt anden filosofi.)
Husk også at sætte:
xset -dpms # Disable Display Power Management Signaling
xset s off # Disable Screensavers
Det er trist når skærmen går blank fordi at den "intet" laver.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Som
skriver; unclutter for at fjerne musen, matchbox og midori. Alt sammen kan installeres via apt-get. @dhh
Vi har i vores ~/.profile indsat følgende linje i bunden:
[email protected]:~ $ cat /home/pi/.profile | grep xinit
xinit /home/pi/transitscreen
Det script der henvises til ser således ud:
[email protected]:~ $ cat transitscreen
#!/bin/sh
xset -dpms
xset s off
unclutter &
matchbox-window-manager &
while true; do
midori -e Fullscreen -a https://monitor2.v5.local/
done
Grunden til vi har lavet en while-loop rundt om vores midori-process, skyldes at vi så nemt kan genstarte browseren. Hvis vi ønsker at lave en force refresh af websitet, kan vi logge på via SSH og skrive "killall midori" - så bliver midori killed, men starter automatisk op igen pga. while-loopen.
Håber dette hjælper dig lidt på vej.
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS