3D Hologramme mit dem Pi


Grundaufbau:

Benötigte Bauteile

wir brauchen
  • ein altes Notebook,
  • einen LVDS-Adapter
  • einen Raspberry.
  • HDMI-Kabel, Stromkabel

Aufbau

nachdem wir das Display des Notebooks ausgebaut haben und die LVDS Controllerplatine angeschlossen haben sowie den Pi mittels HDMI Kabel mit der Controllerplatine verbunden haben gehts ans eingemachte.

Schematischer Aufbau

Der blaue bereich ist ein Plexiglas mit Spiegelfolie bezogen. Nun nur noch ein Youtube-Video mit "Hologram" suchenn und abspielen.



FHEM auf dem Pi incl. Fritzbox, Bluetooth, XMPP (Jabber), Homebridge, ESP8266 und Harmony

Meine Implementierten Module in FHEM

  • Homebridge
  • FritzBox Monitoring
  • FritzBox Call Monitor
  • FritzBox SmartHome
  • Jabber Messaging
  • Yamaha 5.1 Receiver
  • Bluetooth Anwesenheitserkennung
  • ESP8266 via HTTP mit EasyESP
  • Todo: IPCam
  • Todo: Floorplan
  • Todo: Logitech Harmony Hub

Homebridge installieren und in FHEM integrieren

zuerst brauchen wir eine neuere Version von NodeJS. dazu geben wir folgende Befehle für den Download und Installation ein:

wget https://nodejs.org/dist/v4.3.0/node-v4.3.0-linux-armv7l.tar.gz
tar -xvf node-v4.3.0-linux-armv7l.tar.gz
cd node-v4.3.0-linux-armv7l

Nun müssen wir für noch Librarys für das System und NodeJS nachladen:

apt-get install libavahi-compat-libdnssd-dev
npm install -g --unsafe-perm homebridge homebridge-fhem

Um die Homebridge beim Systemstart zu laden erstellen wir eine neue Datei mit:

sudo nano/etc/init.d/homebridge

und fügen den nachfolgenden Inhalt in die Datei ein:

 #!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
dir="/home/pi"
cmd="DEBUG=* /usr/local/bin/homebridge"
user="pi"
name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"
get_pid() {
cat "$pid_file"
}
is_running() {
[ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}
case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_runnin`enter code here`g; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac

exit 0
Speichern mit 'STRG + X'
Beenden mit 'STRG +O'

Um die Datei ausführbar zu machen geben wir ein:

sudo chmod 755 /etc/init.d/homebridge
sudo update-rc.d homebridge defaults

Jetzt gehts an die eigentliche Konfigurationsdatei der Homebridge: Wieder erstellen wir eine neue Datei mit:

nano ~/.homebridge/config.json

und fügen diesen Inhalt ein:

{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"platforms": [
{
"platform": "FHEM",
"name": "FHEM",
"server": "127.0.0.1",
"port": "8083",
"auth": {"user": "FhemUser", "pass": "XXX"},
"filter": "room=Homekit"
}
],
"accessories": []
}

zuletzt starten wir die Homebridge mit:

homebridge start

Auf dem Iphone installieren wir uns die Anwendung "EVE" und verbinden uns mit dem angezeigten Code mit der Homebridge. Nach einer kurzen Synchronisierungs- zeit kann Siri Befehle wie "Schalte das Licht im Wohnzimmer aus" verarbeiten.

Fritzbox anfragen:

zuerst muss in der Fritzbox der Modus "Externen Zugriff erlauben" und Smart-Home aktiviert werden. Für zweites muss in den erweiterten Modus gewechselt werden. Für den Call Monitor wählen wir von einem angeschlossenen Telefon aus die #965

danach in der Shell auf eurem Raspberry folgenden Befehl eingeben:

sudo apt-get install libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl libnet-telnet-perl

in Config eintragen:

define fb1 FBAHA fritz.box:2002

define FritzBox FRITZBOX
define FBCallMon FB_CALLMONITOR fritz.box:1012
attr FritzBox allowTR064Command 1
attr FritzBox icon it_router
attr FritzBoxCalls verbose 5

in die Kommandozeile in FHEM eintragen: set FritzBox password Passwort

Nun sollte die Fritzbox erscheinen und in regelmäßigen Zeitabständen Daten liefern wie

  • Angemeldete Mac-Adressen am Wlan
  • Nachrichten auf dem AB
  • Wlan ein
  • Eingehende Anrufe.
  • u.v.m.

Fhem Forum Fritzbox

Jabber-FHEM:

2 Konten bei Jabber.de einrichten:

Konto1@Jabber.de Konto2@Jabber.de

dann die Zusatzpakete installieren:

sudo apt-get install libnet-jabber-perl libnet-xmpp-perl libxml-stream-perl libauthen-sasl-perl libnet-ssleay-perl libnet-jabber-bot-perl libdigest-sha-perl

in FHEM in die Config eintragen:

define Jabber_Client Jabber jabber.de 5222 Konto1 PASSWORT 1 0
attr Jabber_Client OnlineStatus available
attr Jabber_Client PollTimer 2
attr Jabber_Client RecvWhitelist JABBERUSER@jabber.de
attr Jabber_Client ResourceName FHEM
attr Jabber_Client userReadings 1
attr Jabber_Client room Jabber

auf dem Handy (Android) XABBER installieren

mit dem Benutzernamen Konto2 anmelden und Konto1@Jabber.de der Kontaktliste hinzufügen.

Bluetooth Anwesenheitserkennung

In der Shell ausführen:

hcitool scan

(achte darauf dass dein Handy sichtbar ist, evtl. ein wenig warten und finden lassen).

Die Mac-Adresse deines Handys (z.B. AB:CD:EF:01:02:03) kopieren und in der FHEM Config in der nächsten Zeile BT-MAC durch diese ersetzen.

define Handy1 PRESENCE local-bluetooth BT-MAC 10 10

um nur bei Änderungen Benachrichtigt zu werden: attr Handy1 event-on-change-reading state um die Änderung an Jabber zu senden:

define Handy1PRESENT notify Handy1:.* set JabberClient1 msg UserName@jabber.de Handy1: $EVENT

Nun erscheint dein Handy unter Handy1 mit dem Status Present oder Absent und du wirst über jede Statusänderung benachrichtigt.

Zuletzt holen wir noch einen Yamaha 5.1 Receiver an Board mit :

define AV_Receiver YAMAHA_AVR 192.168.7.106
attr AV_Receiver model RX-V677

Das Modul ESP8266 per Http anbinden

zuerst flashen wir easyESP auf den ESP8266 wie in der Anleitung beschrieben. Danach Verbinden wir uns mit dem Wlan-AP des ESP und stellen auf unseren eigenen Accesspoint um. Nachdem wir die Normale Weboberfläche sehen verbinden wir die Sensoren und Aktoren am Gerät und richten diese in der Config ein. Um den ESP per FHEM verwenden zu können arbeiten wir mit dem Standard Http-Protokoll (In Settings auswählen). Das Standard-Http-Protokoll unterstützt folgende Abfragen:

FHEM -> ESP

http://[ESP-IP]/json (Alle definierten Ports und Portstatus)
http://[ESP-IP]/control?cmd=GPIO,10,0 (GPIO-Port, Port #10, Aus)

Für Fhem verwenden wir den Zugriff über /Json, welche in einem Json-Result die angeschlossenen (und eingerichteten!) Sensoren mit ihrem aktuellen Status anzeigt.

Der JSON String sieht folgendermaßen aus:

{"System":
{"Build": 108,"Unit": 0,"Uptime": 24,"Free RAM": 26248},
"Sensors": [
{"TaskName": "LS", "Switch": 0.00}
]}

Beim Schalten über config/gpio,port,stat liefert der ESP zurück:

{
"log": "GPIO 10 Set to 0",
"plugin": 1,
"pin": 10,
"mode": "output",
"state": 0
}

Grundkonfiguration in FHEM (TODO) define PM HTTPMOD http://192.168.7.156/json attr PM idJSON LS

Einrichten und Flashen

Hardware anschließen und einstellen

Protokolle verstehen

Anbindung an FHEM (lesen)

Anbindung an FHEM (schreiben)

ESP -> FHEM

Header im Domoticz Http-Modus (Get)

GET /json.htm?type=command¶m=switchlight&idx=1&switchcmd=On HTTP/1.1
Host: 192.168.7.155
Connection: close

Header im Generic-Http Modus (Get)

GET / HTTP/1.1
Host: 192.168.7.155
Connection: close

IPCam anbinden (D-Link Dome Kamera)

define ipcam IPCAM 192.168.7.205
attr ipcam delay 10
attr ipcam path snapshot.cgi?user=foo&pwd=bar
attr ipcam snapshots 5
attr ipcam storage /srv/share/surveillance/snapshots

Floorplan

define Ansicht FLOORPLAN
define Grundriss FLOORPLAN fp_Grundriss.png

Logitech Harmony Hub

Als erstes brauchen wir das Paket Json-Perl:

sudo apt-get update && sudo apt-get -y install libjson-perl

danach müssen wir in die FHEM Config folgendes eintragen: (IP muss durch die IP des Hubs ersetzt werden)

define HHub harmony 192.168.X.X

in der FHEM Kommandozeile schreiben wir dann:

set HHub autocreate

um alle Geräte, die eingetragen sind auszulesen. Das Hub selbst brauchen wir jetzt nicht mehr beachten. Das Senden der Befehle läuft dann über jede erstellte Fernbedienung ab. (unter Harmony gelistet)

get Fernbedienungsname deviceCommands

um zu sehen welche Fernbedienung welche Kommandos unterstützt. oder in der Fernbedienung auf der Config-Seite bei Get Commands auswählen.

Nun können wir einen Befehl aus dem vorherigen Befehl unter Set der aktuellen Fernbedienung eintragen und testen.

Messagebroker RabbitMQ auf dem Raspberry

Anleitung folgt:

Bei Fragen vorab bitte in die Kommenare schreiben

Raspi Mirror

Bauanleitung folgt.

Quelltexte auf:

https://github.com/Phreak87/SmartMirror

Bei Fragen vorab bitte einen Kommentar hinterlassen.

Bildschirm ist aus einem alten Laptop mit Spiegelglasfolie überzogen und
einem LVDS interface aus Ebay.

Telefonanlage mit RaspBx


Anleitung kommt noch ...

wichtig ... Ausgehende Anrufe erfordern einen "." bei den Regel. Die Sip Extensions und
Call Groups erläutern

Wetterstation mit Webinterface

Heute möchte ich euch zeigen, wie ihr die Wetterstation WS3080
mit WeeWx zum laufen bekommt.

Die Wetterstation WS3080 bietet für 100 € einige Sensoren und einen USB-Anschluss zur Logdatenerfassung.
Als Software verwende ich Weewx, welche eine sehr ausführliche Installationsanleitung bietet.

Für die WS3080 müssen wir den Treiber fousb verwenden.
Bei laufendem Apache kann in der Config WeeWx.conf einfach der
Pfad /var/www/weewx eingetragen werden.
Die Zeiten der Aktualisierung der Daten lassen u.U. sehr sehr lange auf
sich warten, da die Wetterstation die Zeitvorgabe des Archiving-Intervalls
überschreibt.

Nun zur Installation:

wget http://sourceforge.net/projects/weewx/files/weewx_2.4.0-1_all.deb
dpkg --install weewx_2.4.0-1_all.deb
apt-get install -f

danach erscheint ein Konfigurationsfenster, in dem Ihr den Ort und die Koordinaten eintragen
müsst. Vorsicht! die genaue Schreibweise verwenden !

Bei Weather Station Type wählen wir FineOffsetUSB aus und geben im nächsten Fenster WS3080 ein.
nach der Installation prüfen wir, ob Werte gelesen werden mit:
wee_config_fousb --info
und setzen das Logging-Interval auf 1 Minute
wee_config_fousb --set-interval=1 -y

danach erstellen wir im Apache-Ordner noch einen Ordner für WeeWx:
cd /var/www
mkdir weewx
chmod 777 weewx

Danach gehts an die Config mit
nano /etc/weewx/weewx.conf

und setzen
week_start auf 0 für Montag,
Polling_Mode auf ADAPTIVE,
archive_interval auf 60,
record_generation auf Software

und starten den Service mit
service weewx restart
durch. (Bei Fehler nochmal).

danach editieren wir die Konfigurationsdateien fürs Web.
die /etc/weewx/skins/Standard/standard.conf
=> Hier tragen wir für alle Fahrenheit-angaben C ein und
für alle Meilen Km.
in der /etc/weewxskins/Index-default.tpl tragen wir (wenn wir so
möchten) noch die InHumidity als HTML Row ein.

Danach nochmal Speichern und neustarten.



Deinstallieren:
dpkg -r weewx
dpkg --purge weewx
sudo rm -r /var/lib/weewx 
sudo rm -r /var/www/weewx


Raspi als Car-PC vorbereiten


Raspi als Car-PC vorbereiten

Für Automatisierung von Tastatur- und Mausaktionen:

apt-get install xkbd (Virtuelle Tastatur)
apt-get install xautomation (für xte)
apt-get install xnee http://xnee.wordpress.com/ (xresponse)


Beispiele:

 xresponse -k Tab,100 -t Hello -k Return,100
 xresponse -k Tab,100 -w 1
 xresponse -t Hello -w 1
 xresponse -k Return,100 -w 1

 xresponse -k Tab,100 -b 250
 xresponse -t Hello -b 250
 xresponse -k Return,100 -b 250

XBMC

nano /etc/apt/sources.list.d/mene.list
folgenden Text am Ende einfügen: deb http://archive.mene.za.net/raspbian wheezy contrib
STRG + O + STRG + X
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 5243CDED


apt-get update
apt-get upgrade

sudo apt-get install xbmc

VLC-Player installieren:

apt-get install vlc

BLUETOOTH CSL - USB nano Bluetooth-Adapter V4.0

sudo apt-get install bluetooth bluez-utils blueman

VNC Server

Als erstes holen wir uns mit apt-get update die aktuellsten Pakete.
Danch führen wir apt-get install tightvncserver aus.

Jetzt starten wir den Server mit 
tightvncserver
und vergeben ein Kennwort für den Server.

und schon kann es losgehen, indem wir eine neue Session mit
vncserver :1 -geometry 1024x768 -depth 24 -- httpport 9501
öffnen .

Um den VNCServer beim Booten mitzustarten legen wir ein Startscript mit folgendem Inhalt unter /etx/init.d ab:


#!/bin/sh
#
# /etc/init.d/vncserver                 this Script
# /usr/bin/vncserver                    Program
#
### BEGIN INIT INFO
# Provides:          tightvncserver
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: vnc server
# Description:
#
### END INIT INFO
# Check for missing binaries
FOO_BIN=/usr/bin/vncserver
test -x $FOO_BIN || exit 5

# User, unter dem der VNC-Server ausgefuehrt wird
VNC_USER=""
export VNC_USER

# Set HOME of User
HOME=""
export HOME

# Set ID for Connections
FOO_ID=1

case "$1" in
    start)
        echo -n "Starting Vnc-Server with Terminal-ID $FOO_ID "

        # Delete old PIDs
        rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.pid

        if [ -e $HOME/.vnc/$HOSTNAME:$FOO_ID.log ]; then
           cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
           rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log
        fi

        sudo -u $VNC_USER -H $FOO_BIN :$FOO_ID 2>&1
        ;;
#
     stop)
        echo -n "Shutting down Vnc-Server "
        $FOO_BIN -kill :$FOO_ID 2>&1

        cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
        rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log

        ;;
#
     restart)
        $0 stop
        $0 start
        ;;
#
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

danach noch folgende Befehle ausführen:

sudo chown root:root /etc/init.d/vncserver
sudo chmod 0755 /etc/init.d/vncserver

sudo update-rc.d vncserver defaults

Im Windows holen wir uns einen VNC-Client, UltraVNC ist hier meine wahl
und geben als IP-Adresse die Adresse des Raspberry ein und danach den Port (:9501)

schon sehen wir das LXDE im VNC-Viewer.

Navis:

apt-get install monav
apt-get install navit

Messenger:

apt-get install pidgin

Chrome:

sudo apt-get install chromium-browser

Verbindung zum Mobiltelefon

apt-get install gammu
apt-get install xgnokii

Tethering über Android einrichten

Nachdem wir das Handy angesteckt haben prüfen wir mit ifconfig ob das Netzwerkinterface usb0 vorhanden ist.
Mit einem sudo dhclient usb0 starten wir DHCP auf diesem Interface
nano /etc/network/interfaces
und folgendes dort am Ende einfügen:
iface usb0 inet dhcp
danach folgendes ausführen:
ifup usb0
mit ifconfig prüfen ob USB0 eine Ip-Adresse erhalten hat.
Anschließend:

SICHERUNG MACHEN !!!!!!!!!!!!!!!!!!
und die Feineinstellungen im Auto vornehmen.

Read-Only Pi:

http://raspberrycenter.de/forum/umruestung-raspberry-pi-read-only-root-filesystem

Swap-File abschalten
Zuerst sollte man das Swap-File ausschalten und deaktivieren. Hierzu kann man zuerst folgendes ausführen:
# dphys-swapfile swapoff
# dphys-swapfile uninstall
Danach sollte der vom Init gestartete Service ausgeschaltet werden:
# update-rc.d dphys-swapfile disable

mount -o remount,rw /

Spannungsversorgung:

Hintergrund: 

Mein Fahrzeug (Golf 6) schaltet die Stromversorgung
des Zigarettenanzünders beim Starten und Stoppen des
Motors aus (komplett aus, keine Versorgung vom
Zigarettenanzünder an die Batterie => Deshalb keine 
Diode beim laden der Goldcaps). Wenn ich jetzt das
Fahrzeug starte und den Motor abstelle, so soll der Raspi
die Spannungslose Zeit über die Goldcaps überbrücken.

Nach vielen Bastlereien und Lötereien ist die am besten geeignetste
Lösung auch die simpelste: 14 Goldcaps parallel geschalten, die Direkt
vom Zigarettenanzünder geladen werden. Der Raspi samt USB-Hub 
ebenfalls parallel zu der Schaltung. 

Bei I > 0,50 wird der Raspi zwar noch versorgt, jedoch brechen die USB-
Geräte teils für den gesamten Betrieb bis zum Neustart weg. Ich werde 
weitere Versuche mit einem Step-Up Converter machen, der bis 3.5V die 
Spannung konstant auf 5V hält. Das USB-Hub sollte mitversorgt werden,
da ansonsten 1. die Geräte wegbrechen (dauerhaft) und 2. der Raspi durch
das erkennen und entfernen der USB-Geräte enorme zicken macht !

Nachteil der Schaltung ist dass der Raspi durch das auf- und abbauen
der Spannung der Kondensatoren ~ 3 Neustarts versucht, die nach kurzer
Zeit (5 Sec. bis zum Anstieg des Stromes auf ~ 0,4 A) wieder zu einem 
Neustart führt. Ich denke dass dieses Problem mit dem Step-Up ebenfalls
behoben wird.

gemessene Werte:

Raspi I(A): 
Min / Norm / Max
0,34 / 0.34 / 0,43 
0,13 - 0,20 beim booten (Die ersten 5 Sec.)
(Abschaltung bei 4,20V- 4,12V)

Raspi am USB Hub mit Wlan, BT und Tastatur I(A):
Min / Norm / Max
0,48 / 0,53 / 0,60

+ Maus (optisch) + Handy (Laden + Tethering)
Min / Norm / Max
0,59 / 0,59 / 0,60

1 Goldcap 1F 5,5V 
Ladestrom: 0,10 A
Max Ausgang: 0,10 A

So ergibt sich für meine Spannungsversorgung:
14F 5,5V Parallel (Ladestrom 1,4 A) + 0,6 A Raspi
= 2A USB-Adapter 
durch die Ladekurve der Kondesatoren (Stromaufnahme
verringert sich nach ~ 2Sec enorm können Max. 18 Goldcaps 
verbaut werden => 18F, 5,5 V. 

Möglicherweise auch 20F wenn die sichergestellt ist dass die 
Goldcaps vorgeladen sind (die Goldcaps nicht komplett entladen werden).
Somit ist die Startlast wiederrum < 2A. Ebenfalls zu berücksichtigen ist dass
die 2A (meine Meinung) sich auf eine Dauerlast beziehen und eine kurzfristige
Überlast aushalten. Die Erstladung der Goldcaps stellt  eine *kurzfristige* 
Überlast dar ... 

Links:

http://www.therasberrypi.com/how-to-usb-tether-android-to-your-raspberry-pi/
http://www.elstel.org/Handy.html#creatdev
http://michael.gorven.za.net/blog/2012/08/06/xbmc-packages-raspberry-pi-running-raspbian#comment-116
https://www.modmypi.com/blog/installing-the-raspberry-pi-nano-bluetooth-dongle
http://wiki.openmoko.org/wiki/Manually_using_Bluetooth

GUI Programmierung auf dem PI


GUI Programmierung auf dem PI

Mono

zuerst holen wir uns Mono mit:

apt-get update
apt-get upgrade
apt-get install mono-complete --fix-missing

anschließend öffnen wir Nano und fügen folgenden Sourcecode ein:
using System;
using System.Windows.Forms;
using System.Drawing;

class Programm{
public static void Main (string[] args){
Application.EnableVisualStyles();
var f = new Form();
f.SetBounds (0,0,200,200);
Application.Run(f);
}
}

und Speichern das ganze unter "Test.cs"
jetzt führen wir gmcs mit den Imports aus und compilieren unsere Anwendung:
gmcs test.cs /r:System.dll,System.Drawing.dll,System.Windows.Forms.dll

Im Ordner, in der unsere cs-Datei liegt finden wir jetzt auch eine .exe Datei mit dem
gleichen Namen. 

Jetzt können wir die Anwendung auch schon Testen mit mono Test.exe

Bootauswahl mittels Raspiboot


Bootauswahl mittels Raspiboot auf einem USB-Stick.

Als erstes lade ich mir das Zip-Paket von
http://sourceforge.net/projects/berryboot/files/berryboot-cubieboard-beta6.zip/download
herunter.
Das entpackte Image lade ich mittels W32DiskImager auf die SD-Karte.
Der Raspi hat an einem USB-Anschluss eine Tastatur und am 2. USB einen USB-Stick angeschlossen.

Jetzt starte ich den Raspi mit der eingelegten SD-Karte.
Eine Benutzeroberfläche zeigt mir meinen USB-Stick an, den ich nach EXT4 Formatiere.

Nach dem Update des Raspiboot und anschließendem Neustart des Systems kann ich mir jetzt
mit "ADD OS" ein Betriebssystem aus der Auswahl aufspielen Bzw. ein Backup davon machen.

Ich wähle das Raspian aus, das auch gleich heruntergeladen und auf dem USB-Stick installiert wird.

Nachdem ich das heruntergeladene System auf Default gesetzt habe, wird nach dem Reboot ein Auswahlfenster mit den Betriebssystemen angezeigt, und das gewählte nach 10 Sec. gestartet.

Perfekt !

Pi in das Automatisierungssystem EVAGui mit einbinden.


Schaut auch mal bei EVAGui2 (Windows-Tool für Automatisierung) vorbei !


Dort finden sich Projekte, wie ihr mit den Pi als Client für EVAGui2
Heimautomatisierungsprojekte umsetzen könnt.

Ein Blick lohnt auf alle Fälle !

DynDNS Client mit dem Raspberry


DynDNS Client mit dem Raspberry

Alles was dazu benötigt wird, ist ein DynDNS.org Account und das Programm “ddclient” für Linux.

Installation:
Um ddclient zu installieren müssen lediglich folgende Befehle in die Shell eingegeben werden

sudo apt-get update
sudo apt-get install ddclient


Konfiguration:
Schon während der Installation startet der Konfigurationsassistent, der nachfragt, welcher DynDNS Service genutzt werden soll.

Im Anschluss müssen als erstes der Benutzername und das Passwort eingegeben werden.

Außerdem wird gefragt, ob der IPCheck von DynDNS genutzt werden soll. Diese Frage bestätigt man mit “yes“.

Ist dies erledigt, so muss nun nur noch die richtige Domain ausgewählt, und bestätigt werden. Dazu wird im ersten Schritt der Menüpunkt “From List” ausgewählt, und anschließend ein Sternchen vor der gewünschten Domain gesetzt werden.

TV-Streaming mit dem Pi


Dieser Artikel befindet sich gerade im Aufbau ...

Als erstes holen wir uns die aktuelle Version von GitHub mit
git clone https://github.com/tvheadend/tvheadend.git
danach wechseln wir in das Verzeichnis mit TVheadend
mit cd tvheadend.

dann updaten wir die Paketlisten mit
apt-get update && apt-get upgrade

apt-get install libssl.dev  openssl.dev  libcurl4-openssl-dev  libavcodec-dev  libavformat-dev  libswscale-dev unrar-free

jetzt führen wir
./configure
make && make install aus, um die Pakete zu compilieren.

danach können wir das ganze auch schon mit tvheadend --noacl starten und einen
ersten Benutzer erstellen.
In meinem Fall habe ich auch einen 2. Streamingbenutzer ohne Kennwort erstellt, um
beim öffnen der Videos über VLC keine Benutzerdateneingabe machen zu müssen.

 Nach dem Installieren der Pakete geht es nun an die Installation des Tevii DVB-S2 USB.

apt-get install -y mercurial gcc libc6-dev
wget http://www.tevii.com/dvb-usb.rar
wget http://www.tevii.com/dvb-fe-ds3000.rar

die Dateien entpacken wir und kopieren die fw-Dateien in den Ordner
cp -pv dvb-usb-s660.fw /lib/firmware
cp -pv dvb-fe-ds3000.fw /lib/firmware

Danach noch ein Neustart des Systems mit
init 6

Nach dem Neustart starten wir tvheadend und melden uns auf der Seite
http://IP-des-Raspi:9981 mit
Benutzernamen/Kennwort an, Gehen unter Configuration -> DVB Inputs -> TV-Adapters
und wählen unseren TV-Adapter aus. danach müssen wir den Satelliten (Bei mir Astra 19.2E) hinzufügen und einen ersten Scan ausführen.

Jetzt werden alle Sender des Satelliten gesucht. Nach der Suche können wir unter Mapping die gefundenen Sender auf Kanäle mappen.

ansehen kann man sich das ganze (SDTV und Radio) am besten mit dem VLC-Player
wenn wir den Link hinter "Play" kopieren und im VLC-Player öffnen und unsere Benutzerdaten
nochmals eingeben bzw. den allgemeinen Streaming-User * verwenden.

Links für VLC sind:
http://IP-Raspberry:9981/playlist/channels
um eine Auflistung der Kanäle zu erhalten
oder
http://192.168.1.110:9981/stream/channelid/15
um einen bestimmten Kanal aufzurufen.

Wenn wir eine Liste der aktuell laufenden Sendungen erhalten wollen dann können wir den Link
http://192.168.1.110:9981/epg
verwendn. Dieser Link liefert eine JSON-Datei zurück, die wir leicht (z.B. mit NodeBrowser aus EVACMD) parsen können.

... und hier wie gewünscht eine Anleitung für den Autostart:

Startscript erstellen für Tvheadend Server

nano /etc/init.d/tvheadend

mit diesem Inhalt füllen

#!/bin/bash

TVHNAME="tvheadend"
TVHBIN="/usr/local/bin/tvheadend"
TVHUSER="root"
TVHGROUP="root"

case "$1" in
start)
echo "Starting tvheadend"
start-stop-daemon --start --user ${TVHUSER} --exec ${TVHBIN} -- \
-u ${TVHUSER} -g ${TVHGROUP} -f -C
;;
stop)
echo "Stopping tvheadend"
start-stop-daemon --stop --quiet --name ${TVHNAME} --signal 2
;;
restart)
echo "Restarting tvheadend"

start-stop-daemon --stop --quiet --name ${TVHNAME} --signal 2

start-stop-daemon --start --user ${TVHUSER} --exec ${TVHBIN} -- \
-u ${TVHUSER} -g ${TVHGROUP} -f -C

;;
*)
echo "Usage: tvheadend {start|stop|restart}"
exit 1
esac
exit 0


Startscript ausführbar machen
chmod 755 /etc/init.d/tvheadend


und im Bootprozess anlegen
update-rc.d tvheadend defaults

USB Stick mit FAT 32 in fstab fest einbinden.

cd /media
mkdir DVBS
chmod -R 777 DVBS/
nano /etc/fstab
/dev/sda1 /media/DVBS auto defaults
mount -a


Links: http://christian-nagel.net/?p=285

Angetestet - Fedora für den Pi


Hier mal ein kleiner Test des angepassten Fedora-Linux für den Pi.

Erstmal muss man das Image von: http://pidora.ca/pidora/releases/18/images/pidora-18-r1c.zip
von http://pidora.ca/ herunterladen.

Danach beginnt das Entpacken des Images und das aufspielen auf die SD-Karte mithilfe von
Disk-Imager (Aus dem Blog Grundeinrichtung).
Nach dem aufspielen auf die SD-Karte und starten des PI finden wir auch gleich eine Benutzeroberfläche für die Konfiguration, die sehr schnell beendet ist.
Nach dem Setup können wir uns an dem XFCE-Desktop anmelden.



Spracherkennung auf dem RaspberryPi

Linkliste:

http://stevenhickson.blogspot.com/2013/05/voice-command-v20-for-raspberry-pi.html
http://aonsquared.co.uk/raspi_voice_control 
http://voxforge.org/home/dev/acousticmodels/windows/create/htkjulius/tutorial/data-prep/step-1

Am besten funktioniert jedoch Atom Electron, welches ein NodeJS mit Webkit ist und Spracherkennung als HTML Api beinhaltet. Um an die Daten zu kommen verwende ich momentan Websockets. Bei Fragen meldet euch einfach !

Asterisk auf dem Raspi


Hier folgt noch eine Anleitung

Ampache auf dem Raspi


apt-get install ampache

nach dem Setup im Browser mit
IP-DES-RASPBERRY/Ampache 
 starten.

und den Anweisungen für das Setup folgen.

Face Detection


Face Detection (Gesichtserkennung) auf dem Raspberry-PI:

Als erstes erstellen wir uns auf dem Raspi einen Ordner mit
mkdir facedetect && cd facedetect
danach installieren wir die Pakete mit:
apt-get install python-opencv festival 

und laden uns die Dateien mit 
git clone https://github.com/vectrasoft/raspi-face-talk.git
herunter.

schon können wir das ganze mit 
python facedetect.py --cascade=face.xml 0
starten und sehen im Ausgabefenster einen Rahmen
um das erkannte Gesicht. 

Ein zusätzliches Paket ist Motion, das ein Webinterface
und Bewegungserkennung bietet, dieses kann sogar mit 
EVACMD verwendet werden, wenn es bei einem Ereignis
einen Code an das Webinterface per HTTPGet sendet.

VNC Server installieren


VNC Server installieren und starten ..

Als erstes holen wir uns mit apt-get update die aktuellsten Pakete.
Danch führen wir apt-get install tightvncserver aus.

Jetzt starten wir den Server mit 
tightvncserver
und vergeben ein Kennwort für den Server.

und schon kann es losgehen, indem wir eine neue Session mit
vncserver :1 -geometry 1024x768 -depth 24 -- httpport 9501
öffnen .

Um den VNCServer beim Booten mitzustarten legen wir ein Startscript mit folgendem Inhalt unter /etx/init.d ab:

#!/bin/sh
#
# /etc/init.d/vncserver                 this Script
# /usr/bin/vncserver                    Program
#
### BEGIN INIT INFO
# Provides:          tightvncserver
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: vnc server
# Description:
#
### END INIT INFO
# Check for missing binaries
FOO_BIN=/usr/bin/vncserver
test -x $FOO_BIN || exit 5

# User, unter dem der VNC-Server ausgefuehrt wird
VNC_USER=""
export VNC_USER

# Set HOME of User
HOME=""
export HOME

# Set ID for Connections
FOO_ID=1

case "$1" in
    start)
        echo -n "Starting Vnc-Server with Terminal-ID $FOO_ID "

        # Delete old PIDs
        rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.pid

        if [ -e $HOME/.vnc/$HOSTNAME:$FOO_ID.log ]; then
           cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
           rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log
        fi

        sudo -u $VNC_USER -H $FOO_BIN :$FOO_ID 2>&1
        ;;
#
     stop)
        echo -n "Shutting down Vnc-Server "
        $FOO_BIN -kill :$FOO_ID 2>&1

        cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
        rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log

        ;;
#
     restart)
        $0 stop
        $0 start
        ;;
#
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

danach noch folgende Befehle ausführen:

sudo chown root:root /etc/init.d/vncserver
sudo chmod 0755 /etc/init.d/vncserver

sudo update-rc.d vncserver defaults

Im Windows holen wir uns einen VNC-Client, UltraVNC ist hier meine wahl
und geben als IP-Adresse die Adresse des Raspberry ein und danach den Port (:9501)

schon sehen wir das LXDE im VNC-Viewer.