OpenHAB ist bietet für viele Geräte der Hausautomatisierung eine Schnittstelle. Daneben ist es auch möglich die gespielte Musik zu kontrollieren. In diesem Fall: Spotify. Wie man es kennt, kann Spotify remote ferngesteuert werden (z.B. aus der App). Dies machen wir uns zu Nutzen und erstellen unseren eigenen Remote Raspberry Pi Spotify Player in OpenHAB.
Die nötigen Skripte können anschließend in den grafischen Oberflächen und Sitemaps von OpenHAB 2 eingebunden werden, wodurch man die Steuerung aller wichtigen Geräte an einem Ort gesammelt hat.
Zubehör
Dieses Projekt ist hauptsächlich softwarebasiert, daher brauchen wir nicht mehr als einen Raspberry Pi und eine Internetverbindung.
Außerdem muss ein offizieller Spotify Client laufen. Dies kann entweder auf dem PC, Smartphone oder bspw. der Sprachassistentin Amazon Alexa auf der Echo Platform sein. Dafür reicht auch bereits ein kleiner Echo Dot (optimalerweise mit Lautsprecher).
Außerdem brauchst du einen (Free oder Premium) Spotify Account, sowie einen Entwickler Account (die Einrichtung gehen wir gleich Schritt für Schritt durch).
Vorbereitung für den Raspberry Pi Spotify Player
Zunächst wird ein einfacher Spotify Account benötigt (Free oder Premium ist dabei egal). Hast du noch keinen, musst du erst einen anlegen. Anschließend aktivieren wir den Entwickleraccount auf dieser Seite: https://developer.spotify.com/my-applications/#!/applications
Nachdem du eingeloggt bist und den Entwickleraccount erstellt hast, müssen wir ein neues Projekt anlegen. Gib an, dass die App nicht kommerziell ist und benenne das Projekt.
Es wird eine Client ID und Client Secret zugewiesen. Diese werden wir im nächsten Schritt benötigen.
Klicke nun noch auf „Edit Settings“ und gib unter „Redirect URIs“ dies ein, klicke auf ADD und speichere:
http://openhabianpi:8080/static/spotify-auth.html
Als nächstes müssen wir noch OpenHAB installieren. Sobald dies geschehen ist, können wir zum nächsten Schritt fortfahren.
Raspberry Pi Spotify Player installieren
Das verwendete Skript basiert auf diesem GitHub Projekt. Es enthält einige Dateien, die wir zunächst herunterladen müssen. Verbinde dich daher per SSH und führe anschließend folgendes aus:
wget https://raw.githubusercontent.com/pmpkk/openhab_spotify-webconnect-api/master/matrix-theme.css -P /etc/openhab2/html/matrix-theme/ wget https://raw.githubusercontent.com/pmpkk/openhab_spotify-webconnect-api/master/AppIcons.svg -P /etc/openhab2/html/matrix-theme/ wget https://raw.githubusercontent.com/pmpkk/openhab_spotify-webconnect-api/master/spotify-auth.html -P /etc/openhab2/html/ wget https://raw.githubusercontent.com/pmpkk/openhab_spotify-webconnect-api/master/myopenhab.py -P /etc/openhab2/scripts/ wget https://raw.githubusercontent.com/pmpkk/openhab_spotify-webconnect-api/master/spotify.py -P /etc/openhab2/scripts/ wget https://raw.githubusercontent.com/pmpkk/openhab_spotify-webconnect-api/master/spotify.rules -P /etc/openhab2/rules/ wget https://raw.githubusercontent.com/pmpkk/openhab_spotify-webconnect-api/master/spotify.items -P /etc/openhab2/items/
Ob alle Dateien vorhanden sind, prüfen wir, indem wir http://openhabianpi:8080/static/spotify-auth.html am PC aufrufen. Es sollte ein solches Bild erscheinen („Spotify Integration“):
Da wir bisher noch nichts eingerichtet haben, erscheinen diese Meldungen. Dazu öffnen wir die OpenHAB CLI:
ssh -p 8101 openhab@localhost
Das Passwort lautet habopen. Hier aktualisieren wir die Werte mittels:
smarthome:update spotify_client_id bd7d01b72d...0a260a9 smarthome:update spotify_client_secret 0c8f6ddb1...6216b6e13c737
Statt meinen Werten musst du natürlich deine ID und Secret von vorher eintragen. Um zur normalen Konsole zurückzukehren, reicht es logout einzugeben.
Öffne nun wieder http://openhabianpi:8080/static/spotify-auth.html und klicke unten auf „Click to Authenticate“. Nach erfolreicher Authentifizierung sollte dieser Text dort stehen: „New Auth Code successfully saved to OpenHab!“.
Hinweis: Falls das Panel bei dir nur über http://openhabianpi:8080 und nicht über http://openhabianpi.local:8080 aufrufbar ist, so musst du noch folgendes anpassen:
sudo nano /etc/openhab2/scripts/spotify.py
Dort muss die REDIRECT_URI entsprechend geändert werden:
REDIRECT_URI = 'http://openhabianpi:8080/static/spotify-auth.html'
Spotify Player testen
Um den Remote Raspberry Pi Spotify Player nun zu testen, müssen wir auf einem Gerät (PC, Amazon Alexa, etc.) Spotify offen haben bzw. Musik bereit haben. Bei mir ist dies auf meinem Computer der Fall.
Daraufhin rufen wir das Skript auf:
/usr/bin/python /etc/openhab2/scripts/spotify.py
Es sollten Informationen zum Gerät, zum angespielten Song usw. angezeigt werden.
Falls kein Gerät unter deinem Account verbunden ist, so wird die Fernsteuerung fehlschlagen. Welche Geräte verbunden sind, kannst du hiermit prüfen:
/usr/bin/python /etc/openhab2/scripts/spotify.py get_devices
Um einen Song abzuspielen, zu stoppen, überspringen, Lautstärke ändern, usw. geben wir dem Skript einfach den Parameter (play, pause, next, previous, etc.) mit. Alle Befehle findest du hier.
/usr/bin/python /etc/openhab2/scripts/spotify.py play
Dieses Skript kann nun von anderen Things eingebunden werden, z.B. über eine Oberfläche und einem Touchscreen.
4 Kommentare
Habe alles gemäß Anleitung durchgeführt.
Ich nutze Spotify auf meienm iPhone.
Nachdem ich noch ’systems‘ nachinstalliert hatte läuft das Python Programm.
Leider nur mit mäßigem Erfolg. Es wird angezeigt, welcher Song gerade läuft. Die Kommandos Puase, Play, Next etc sind aber wirkungslos auf dem Iphone. In den Programmmeldung wird zwar zwischen ON/OFF geschaltet, die Lautärke wird verändert angezeigt, aber keine Änderung auf dem iPhone.
Hat jemand eine Idee, was flasch ist?
Hallo,
vielen Dank für die Anleitung!
Leider bekomme ich bei „/usr/bin/python /etc/openhab2/scripts/spotify.py“ immer folgende Fehlermeldung:
Traceback (most recent call last):
File „/etc/openhab2/scripts/spotify.py“, line 6, in
import requests
ImportError: No module named requests
Bis zu diesem Schritt hat noch alle geklappt. Ich weiß echt nicht woran es noch liegen könnte. Habt ihr eine Idee?
Vielen Dank und beste Grüße!
sudo pip install requests
bzw. für Python3:pip3 install requests
ich habe das gleiche Problem. Muss ich hinter: pip3 install requests noch etwas schreiben?
Vielen Dank!