[Neues Modul] Spotify

Begonnen von neumann, 28 Mai 2017, 15:58:19

Vorheriges Thema - Nächstes Thema

neumann

Hallo liebe FHEM Community,

bei dem Vorhaben, mir einen "Radio"-Wecker zu bauen, ist mir aufgefallen, dass es bisher noch keine Möglichkeit gibt, die Wiedergabe mit Spotify (auf anderen Geräten) zu steuern.
Deswegen habe ich nun ein umfangreiches Spotify-Modul geschrieben, welches einen großen Teil der Spotify WEB API abbildet. Aktuell werden entsprechend nur Geräte unterstützt, die über den Web Player auffindbar sind.

Gerne würde ich das Modul in die Repo einchecken, auf die ich bereits Zugriff habe, vorher würde ich aber gerne um Feedback von euch bitten. Vielen Dank!
Edit: Das Modul ist nun eingecheckt - ich bitte weiterhin um Feedback und helfe gerne bei potentiellen Problemen.

Folgende Funktionen sind implementiert (fast alle benötigen einen Premium Account):
- aktuelle Wiedergabe steuern: pause, play, next, previous, shuffle, repeat, volume, seek
- neue Wiedergabe starten: Song, Playlist, Künstler, Album, gespeicherte Titel mit Angabe eines Zielgeräts
- aktuelle Wiedergabe auf ein anderes Gerät übertragen
- Suche von Titeln, Alben und Künstlern
- zahlreiche Readings über den aktuellen Zustand

Damit das Modul funktioniert, benötigt es eine eigene Spotify API application, die hier erstellt werden kann: https://developer.spotify.com/my-applications/#!/applications/create
Da Spotify OAuth verwendet, muss während der Erstellung eine redirect_uri angegeben werden (wichtig: auf add und save drücken, damit die Änderungen übernommen werden), dort kann jede beliebige URL verwendet werden, ich stelle jedoch meine Website https://oskar.pw/ bereit, die den Authorisierungs-Code leserlich ausgibt. Ihr könnt diese bedenkenlos als redirect_uri verwenden, da der Code ohne client_secret nutzlos ist und nur wenige Minuten gültig ist. Ansonsten muss dieser nach der Anmeldung aus der URL kopiert werden.

Bei der Erstellung des Devices gilt folgender Syntax:
define <name> Spotify <client_id> <client_secret> [ <redirect_uri> ]

Sobald das Gerät erstellt wurde, kann die AUTHORIZATION_URL aufgerufen werden und nach erfolgreicher Anmeldung der Code wie folgt gesetzt werden:
set <name> code <code>

Der Status sollte nun auf "connected" wechseln und das Modul ist von jetzt an dauerhaft einsatzbereit.
Die Dokumentation des Codes und Syntax der Befehle findet ihr in der commandref: https://fhem.de/commandref_DE.html#Spotify

Ich freue mich bereits auf euer Feedback!

Euer Oskar
Modulentwickler
- Spotify #72490
- Nello #75127

Loredo

Hi Oskar,


cool, funktioniert auf anhieb!  8)


Es wäre super, wenn du vor dem einchecken noch einen Blick in die Dev-Guidelines für AV Geräte werfen könntest:
https://wiki.fhem.de/wiki/DevelopmentGuidelinesAV


Wenn du die Namen und Values einiger Readings und Setter entsprechend umbenennst, ist das neue Modul eine super Ergänzung fürs bestehende Ökosystem 👍🏼




Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

tterrafan

Kann auch bestätigen, dass alles funktioniert!

Vielen Dank fürs Schreiben des Moduls!

neumann

#3
Lieber Julian, lieber tterrafan, danke für euer Feedback!
Ich habe das Modul mit entsprechenden Änderungen nun mal eingecheckt und freue mich auf weitere Rückmeldungen!

Liebe Grüße
Oskar
Modulentwickler
- Spotify #72490
- Nello #75127

Chaos

Ahoi,

vielen Dank für das Modul. Liest sich schon mal sehr gut :-)

Nur mal als Tipp bei der Einrichtung der Spotify API (weil ich zu dumm war):
Bei Redirect URL (https://oskar.pw/) muss man nach eintragen der URL noch den ADD Button rechts daneben klicken. Abschließend unten auf SAVE.

MfG
Manuel

l2r

#5
danke! Läuft 8)

folgende Meldung hatte ich noch im Log:
PERL WARNING: main::Spotify_volumeFadeStep() called too early to check prototype at ./FHEM/37_Spotify.pm line 699

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

neumann

Lieber Manuel, lieber l2r,

danke für euer Feedback!
Manuel, da hast du völlig Recht, das ist sehr unintuitiv von denen gemacht - ich werde den Hinweis in die Dokumentation mit aufnehmen! Danke!

Liebe Grüße
Oskar
Modulentwickler
- Spotify #72490
- Nello #75127

neumann

Danke Michael, nichts dramatisches, ich reiche ein Update ein ;-)
Modulentwickler
- Spotify #72490
- Nello #75127

n0bbi

Wie geil, wird am Wochenende direkt ausprobiert! Vielen Dank, das habe ich bisher schmerzlich vermisst :)

accessburn

Läuft super... 
Jetzt muss ich nur noch was für die FTUI schneidern. Dann kann die Pseudoschaltung über AMAD->Tablet->BT->Alexa endlich gekillt werden :-)

Danke Oskar!
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

ralf-ms

Vielen Dank Oskar!
Genau das hatte mir noch gefehlt!
Funktioniert wunderbar!

Jetzt noch mit Lametric Time verwursten und die Sache ist für mich perfekt! :D

Grüße
Ralf

Bischemer

TOP ... vielen vielen Dank .. eine geniale Ergänzung im AV Bereich. Die Installation war sehr gut beschrieben und hat auf Anhieb funktioniert. Als bekennender Spotify Junkie werde ich die Tage mal testen und berichten. 

Ma_Bo

Danke für das geniale Modul, hat auf Anhieb geklappt.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

ralf-ms

Hallo Oskar,

beim Wechsel eines Tracks (also z.B. beim Beginn eines neuen Tracks) werden keine Events der track_.*  Readings erzeugt (auch bei den Readings progess_ms oder is_playing nicht).
Ist das Absicht?
Es wäre super, wenn du das ev. noch ändern könntest, dann könnte man hier mit notify arbeiten...

Grüße
Ralf


neumann

#14
Vielen Dank für das zahlreiche Feedback! Es freut mich, dass das Modul so gut ankommt und gut zu funktionieren scheint.
Ich werde den Thread weiterhin verfolgen und stehe bei Problemen und Fragen gerne bereit :)
Viel Erfolg mit euren Projekten, berichtet gerne von euren Einsatzzwecken - ich verwende das Modul beispielsweise in Kombination mit einem Echo-Dot als Musikwecker.

Ralf, das kann gut sein, dass ich das vergessen habe - schaue ich an und reiche gegebenenfalls ein Update nach. Edit: Ich habe dafür ein Update eingereicht, ist dann ab morgen drin - danke für den Hinweis!

Liebe Grüße
Oskar
Modulentwickler
- Spotify #72490
- Nello #75127