
Raspberry Pi Alexa Smart Home Steuerung
21.09.2018
Tutorial, Raspberry Pi Smart Home, Alexa Tipps
In diesem Artikel bzw. Tutorial möchte ich dir zeigen, wie du ganz einfach auf dem Raspberry Pi Alexa installieren kannst. Dann kannst du wie von deinem Amazon Echo gewohnt (fast) alle Funktionen mit deinem neuen smarten Lautsprecher nutzen: dein Smarthome steuern, das Wetter abfragen, deine Skills benutzen und so weiter.Raspberry Pi Alexa Hardware
Um Alexa auf deinem Raspberry Pi sinnvoll nutzen zu können, brauchst du neben dem Raspberry Pi natürlich auch noch ein Mikrofon, dass auf deine Sprachbefehle reagieren kann. Als Lautsprecher habe ich günstige Lautsprecher (10€) mit Klinkenaschluss benutzt, die sich über einen USB-Anschluss mit Strom versorgen lassen - dann kann ich sie bei Bedarf ohne Probleme austauschen! Beim Raspberry habe ich einen Raspberry Pi 2 Model B verwendet - Model 3 und 4 des Pi funktionieren aber natürlich auch! Diese hier sehen identisch aus, nur eben mit einem anderen Logo darauf: Dein selbstgebauter Alexa-Lautsprecher kann selbstverständlich auch dein gesamtes Amazon Alexa Zubehör steuern - smarte Steckdosen, WLAN-Lampen, deine Kaffeemaschine und vieles mehr.Raspberry Pi Alexa installieren als Video
Amazon Voice Service vorbereiten
Bevor du das Alexa System auf deinem Raspberry Pi installieren kannst, musst du in der Amazon Developer Console ein Projekt anlegen. Dazu öffnest du zuerst die Developer Console (developer.amazon.com) und loggst dich ein bzw. erstellst ein Amazon-Konto. Danach wechselst du über die Menüleiste in den Tab "Alexa Voice Service". Auf der Seite, auf der du dich jetzt befindest, klickst du auf den blauen "Get Started"-Button, damit du ein Projekt erstellen kannst. Hier kannst du nun die Projektdaten eintragen. Als Produktname und Produkt-ID trägst du "raspberrypialexa" ein. Bei Produkttyp habe ich "Device with Alexa built-in" ausgewählt und bei der "Companion App" habe ich "Nein" gewählt. Die Produktkategorie lautet "Wireless Speakers" und die Beschreibung ist eigentlich egal. Dort habe ich "Custom Alexa Speaker" eingetragen. Nutzer sollen mit dem Gerät nur per Sprache interagieren, deshalb habe ich "Hands-free" und "Far-field" als Interaktionsarten markiert. Außerdem soll das Produkt nicht kommerziell vertrieben werden und ist nicht speziell an Kinder gerichtet. Anschließend kannst du auf "Next" klicken. Im nächsten Schritt musst du ein Sicherheits-Profil für das Produkt anlegen, damit du dich mit deinem Amazon-Konto anmelden kannst. Wähle entweder ein Profil aus oder klicke auf "Create new Profile". Wenn du ein neues Profil erstellst, musst du nur einen Namen und eine kurze Beschreibung angeben. Gehe dann weiter zum nächsten Schritt. Damit der Lautsprecher sich bei Amazon verifizieren kann, musst du nun noch URLs eintragen, die Amazon nach der Verifizierung aufruft, um dem Gerät die Zugriffsschlüssel mitzuteilen. Trage bei "Allowed origins" als URL "https://localhost:3000" ein und bei "Allowed return URLs "https://localhost:3000/authresponse". Wichtig ist, dass du bei den URLs auf "Add" klickst, um sie hinzuzufügen. Klicke nun auf "Finish", um dein Produkt und das Sicherheitsprofil zu speichern. Du wirst jetzt zu deiner Produktübersicht geführt. Wähle jetzt das Produkt aus, dass du gerade angelegt hast und notiere dir folgende Daten davon, da sie später wieder benötigt werden (Client ID und Client Secret findest du im Abschnitt "Security Profile"):- Product ID
- Client ID
- Client Secret
Raspberry Pi: Alexa installieren
So, jetzt sind fast alle Vorbereitungen abgeschlossen. Doch bevor du auf deinem Raspberry Pi Alexa installieren kannst, musst du zuerst die vorhandene Software auf deinem Pi aktualisieren und einen Git-Client installieren, damit die Alexa AVS Sample App heruntergeladen werden kann. Dazu gibst du folgenden Befehl einfach in die Kommandozeile ein:
sudo apt-get update && sudo apt-get upgrade -y
Anschließend installierst du das Paket "git-core" und das Java Development Kit:
sudo apt-get install git-core oracle-java7-jdk -y
Jetzt kann Alexa endlich heruntergeladen werden:
git clone https://github.com/alexa/alexa-avs-sample-app.git
Wenn die Dateien heruntergeladen wurden, muss noch die Konfigurationsdatei bearbeitet werden.
Öffne dazu die Datei:
cd ~/alexa-avs-sample-app
sudo nano automated_install.sh
Dort fügst du nun bei "ProductID", "ClientID" und "ClientSecret" die Daten aus der Amazon Developer Konsole ein.
Speichere die Datei mit STRG+X, drücke Y und anschließend die Eingabetaste.
Jetzt kann die Installation gestartet werden:
. automated_install.sh
Als erstes werden dir ein paar Fragen gestellt. Die ersten drei kannst du mit "y" beantworten. Bei der nächsten Frage wählst du "de-DE" (Antwort 3) aus. Danach musst du noch festlegen, ob du die Audioausgabe über HDMI oder den Klinkenstecker haben möchtest und ob du das Aktivierungswort "Alexa" nutzen möchtest.
Ich lasse den Ton über den Klinkenanschluss wiedergeben und nutze das Alexa-Hotword.
Raspberry Pi Alexa authentifizieren
Bevor du deinen Alexa-Assistenten jetzt nutzen kannst, muss er zuerst verifiziert und mit deinem Konto verknüpft werden. Dazu öffnest du auf deinem Pi das Terminal und gibst folgenden Befehl ein:
cd ~/alexa-avs-sample-app/samples/companionService
npm start
Lasse das Terminal geöffnet und starte ein zweites Terminal, in das du den folgenden Befehl eingibst:
cd ~/alexa-avs-sample-app/samples/javaclient
mvn exec:exec
Jetzt öffnet sich ein Dialog, der dich auffordert, eine URL aufzurufen, um das Gerät zu registrieren.
Klicke auf "Yes", damit sich dein Browser öffnet und diese URL aufruft.
Auf deinem Raspberry Pi sollte sich nun der Chromium-Browser öffnen und dir anzeigen, dass diese Website nicht sicher ist. Das ist aber okay.
Klicke unten links auf "Advanced" bzw. "Erweitert" und dann auf "Proceed to localhost" bzw. "Weiter zu localhost".
Jetzt wirst du zu Amazon weitergeleitet und musst dich einloggen. Dann wirst du gefragt, ob dein Alexa Raspberry Pi auf dein Amazon Konto zugreifen darf. Hier klickst du auf "Okay". Jetzt wirst du wieder auf eine andere Seite umgeleitet, auf der nur "device tokens ready" stehen sollte.
Wechsle wieder zum Java-Client und klicke "OK".
Dein Alexa-Lautsprecher kann jetzt benutzt werden. Wenn du im Java-Fenster auf "Listen" klickst, kannst du ganz normal mit Alexa interagieren.
Alexa Hotword-Erkennung
Damit dein Lautsprecher auch auf dich hört, wenn du "Alexa" sagst, musst du die Hotword-Erkennung starten. Dazu gibst du in ein neues Terminal den folgenden Befehl ein:
cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src
./wakeWordAgent -e kitt_ai
Jetzt kannst du wie gewohnt mit deinem Raspberry Pi Alexa-Lautsprecher interagieren:
- Alexa, wie wird das Wetter morgen
- Alexa, mach das Licht an
Raspberry Pi Alexa nach dem Hochfahren automatisch starten
Damit Alexa auch startet, nachdem dein Raspberry Pi hochgefahren ist, wird nun ein Autostart-Eintrag erstellt. Dazu erstellst du zuerst ein Start-Skript:
sudo nano alexa.sh
In das Skript fügst du jetzt den folgenden Code ein:
#!/bin/bash
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/companionService && npm start;" &
sleep 10s
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/javaclient && mvn exec:exec;" &
sleep 30s
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e kitt_ai;" &
Jetzt speicherst du das Skript ab. Danach werden dem Skript die nötigen Rechte erteilt:
sudo chmod +x alexa.sh
Dann erstellst du eine Autostart-Datei:
sudo nano /home/pi/.config/autostart
Dort fügst du nun den folgenden Code ein und speicherst die Datei:
[Desktop Entry]
Comment=Comment
Exec=/home/pi/alexa.sh
Name=alexa.sh
Path=/home/pi/alexa.sh
Type=Shell
Nach einem Neustart sollte deine Raspberry Pi Alexa-Konstruktion fertig sein und bereits auf Zuruf deine Fragen beantworten bzw. deine Befehle befolgen.
Wenn du Probleme oder Fragen hast, kannst du mir gerne einen Kommentar hinterlassen.
Dieser Beitrag hat dir gefallen?
Dann abonniere doch unseren Newsletter!