FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: neumann am 28 Mai 2017, 15:58:19

Titel: [Neues Modul] Spotify
Beitrag von: neumann am 28 Mai 2017, 15:58:19
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 (https://fhem.de/commandref_DE.html#Spotify)

Ich freue mich bereits auf euer Feedback!

Euer Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Loredo am 28 Mai 2017, 16:33:08
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 (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
Titel: Antw:[Neues Modul] Spotify
Beitrag von: tterrafan am 28 Mai 2017, 18:16:24
Kann auch bestätigen, dass alles funktioniert!

Vielen Dank fürs Schreiben des Moduls!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 29 Mai 2017, 15:31:53
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
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Chaos am 30 Mai 2017, 08:40:22
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
Titel: Antw:[Neues Modul] Spotify
Beitrag von: l2r am 30 Mai 2017, 09:03:44
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
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 09:07:18
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
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 10:46:09
Danke Michael, nichts dramatisches, ich reiche ein Update ein ;-)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: n0bbi am 30 Mai 2017, 10:58:08
Wie geil, wird am Wochenende direkt ausprobiert! Vielen Dank, das habe ich bisher schmerzlich vermisst :)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: accessburn am 30 Mai 2017, 12:13:12
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!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: ralf-ms am 30 Mai 2017, 14:57:17
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
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Bischemer am 30 Mai 2017, 15:06:55
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. 
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 30 Mai 2017, 15:54:12
Danke für das geniale Modul, hat auf Anhieb geklappt.

Grüße Marcel
Titel: Antw:[Neues Modul] Spotify
Beitrag von: ralf-ms am 30 Mai 2017, 17:17:38
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

Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 17:20:07
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
Titel: Antw:[Neues Modul] Spotify
Beitrag von: minias am 30 Mai 2017, 17:42:32
Hallo Oskar,

vielen Dank für das Modul, so was hab ich schon lange gesucht  ;)
Sehr gut beschrieben und die Einrichtung ist sehr einfach.

Was mir aufgefallen ist:
- Das Reading "is_playing" aktualisiert sich manchmal nicht richtig und ändert sich von 1 auf 0 (Dann verschwindet mir das Interface auf dem Tablet UI da ich dies mit is_playing triggere)
- 1 : PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/37_Spotify.pm line 721.2017-05-30 17:40:27 Spotify g_spotify is_playing: 1

Ich freue mich auf die Möglichkeiten die sich nun auftun!

LG
Flo
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 30 Mai 2017, 18:09:37
@Oskar: Könntest du die Fehlerausgabe (in meinem Testfall habe ich versucht eine device_id anzugeben, die im moment offline ist) in ein Reading ausgeben.
Z.Z. steht es nur im Log:

2017.05.30 18:05:33.473 3: Spotify_spotify_account_alexa: request failed: Device not found
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 18:33:15
Danke für euer Feedback!

An minias: danke für den Hinweis, tatsächlich hat ein "end update" gefehlt, sodass das reading zeitversetzt geupdatet wurde, das habe ich nun behoben!
Ma_Bo: ich habe die entsprechenden readings angelegt!

Zusätzlich werden nun auch Bild-URLs zum Album-Cover in verschiedenen Größen in den Readings abgelegt und das Update-Intervall während der Wiedergabe kann angepasst werden.

Liebe Grüße
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 30 Mai 2017, 18:50:24
Danke für die schnellen Umsetzungen !!!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 30 Mai 2017, 19:00:47
@Oskar: Gibt es die Möglichkeit, das man in einem Reading erkennt, auf welcher device_id, gerade die Musik abgespielt wird ?

Edit: habs gefunden, wer lesen kann ist klar im Vorteil
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 19:02:54
Gerne!
Ja gibt es, im Reading device_active.* ist das aktuelle aktive Gerät hinterlegt - falls es kein aktives Gerät gibt, wird das Reading gelöscht.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: JoWiemann am 30 Mai 2017, 19:13:41
Hallo,

so stirbt Fhem:
2017.05.30 19:10:48 3: mySpoti: pause
<h1>Software error:</h1>
<pre>Operation &quot;ne&quot;: no method found,
left argument in overloaded package JSON::PP::Boolean,
right argument has no overloaded magic at /opt/fhem/FHEM/37_Spotify.pm line 801.
</pre>
<p>
For help, please send mail to this site's webmaster, giving this error message
and the time and date of the error.

</p>
[Tue May 30 19:10:49 2017] fhem.pl: Operation "ne": no method found,
[Tue May 30 19:10:49 2017] fhem.pl: left argument in overloaded package JSON::PP::Boolean,
[Tue May 30 19:10:49 2017] fhem.pl: right argument has no overloaded magic at /opt/fhem/FHEM/37_Spotify.pm line 801.

Grüße Jörg

PS: Aktuelle Version aus dem trunc.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: CoolTux am 30 Mai 2017, 19:20:25
Gerne!
Ja gibt es, im Reading device_active.* ist das aktuelle aktive Gerät hinterlegt - falls es kein aktives Gerät gibt, wird das Reading gelöscht.

Hallo,

Das löschen von Readings sollte eher eine Ausnahme sein. Vielleicht wäre es möglich stattdessen​ als value ein none oder halt gar nichts zu nehmen.


Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 30 Mai 2017, 19:32:51
@Oskar: Könntest du noch das attr disable einbauen.
Ich würde gerne mit

attr <spotifydevice> disable 1

das Gerät deaktivieren und mit

attr <spotifydevice> disable 0
wieder aktivieren können.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 30 Mai 2017, 19:37:41
Folgende Fehlermeldung habe ich gerade gehabt:

2017.05.30 19:28:43.491 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/37_Spotify.pm line 632.
2017.05.30 19:28:43.491 1: PERL WARNING: Use of uninitialized value in lc at ./FHEM/37_Spotify.pm line 632.
2017.05.30 19:28:43.736 3: Spotify_spotify_account_tabletwohn: track spotify:track:5DJw9VKepj0TAS9y8QLmyQ

Der Track wurde auch nicht abgespielt.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: accessburn am 30 Mai 2017, 19:46:36
Wie komme ich denn an meine Playlists ran?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 19:47:10
Danke für die vielen Meldungen!

Jörg: sehr merkwürdig, dass der Fehler bei mir nicht geflogen ist - sollte nun behoben sein, kannst du mal den aktuellen Trunk checken?
CoolTux: danke für den Hinweis, ich setze nun auf none / none / -1 für ID / Name / Volume.
Ma_Bo: Disable ist nun drin und die Warnings sind behoben.

Vielen Dank für eure Mitarbeit!

Grüße
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 19:48:27
accessburn: In Spotify gehst du auf teilen, kopierst dir die URI und kannst es dann über playContextByURI abspielen.

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: accessburn am 30 Mai 2017, 20:00:52
accessburn: In Spotify gehst du auf teilen, kopierst dir die URI und kannst es dann über playContextByURI abspielen.

LG

Gefunden  :-*
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 30 Mai 2017, 20:04:06
accessburn: In Spotify gehst du auf teilen, kopierst dir die URI und kannst es dann über playContextByURI abspielen.

LG

Funktioniert bei mir nur auf der device_id die zuletzt etwas abgespielt hat, ich kann zwar die device_id oder name hinten anhängen, aber er spielt es nicht auf dem gerät ab, wo er soll.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: JoWiemann am 30 Mai 2017, 20:22:42
Jörg: sehr merkwürdig, dass der Fehler bei mir nicht geflogen ist - sollte nun behoben sein, kannst du mal den aktuellen Trunk checken?

Hallo Oskar,

ich hatte das Modul renamed um Fhem wieder starten zu können. Mit der neuen Version aus dem Trunk nun folgendes:

- Fhem mit neuem Modul neu gestartet
- Device neu angelegt und alten Code benutzt -> geht natürlich nicht
- neuen Code generiert und eingegeben
- Fhem wieder gestorben

[Tue May 30 20:15:30 2017] fhem.pl: Use of uninitialized value $value in string eq at fhem.pl line 4317.
[Tue May 30 20:15:30 2017] fhem.pl: Use of uninitialized value $value in string eq at fhem.pl line 4317.
[Tue May 30 20:15:30 2017] fhem.pl: Use of uninitialized value $value in string eq at fhem.pl line 4317.
<h1>Software error:</h1>
<pre>Operation &quot;ne&quot;: no method found,
left argument in overloaded package JSON::PP::Boolean,
right argument has no overloaded magic at /opt/fhem/FHEM/37_Spotify.pm line 830.
</pre>
<p>
For help, please send mail to this site's webmaster, giving this error message
and the time and date of the error.

</p>
[Tue May 30 20:15:30 2017] fhem.pl: Operation "ne": no method found,
[Tue May 30 20:15:30 2017] fhem.pl: left argument in overloaded package JSON::PP::Boolean,
[Tue May 30 20:15:30 2017] fhem.pl: right argument has no overloaded magic at /opt/fhem/FHEM/37_Spotify.pm line 830.

Grüße Jörg
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 20:28:43
Ma_Bo: Danke für den Hinweis, der Befehl erwartet als zweiten Parameter die Nummer des Tracks, mit der diese starten soll, das habe ich falsch dokumentiert und er sollte eigentlich optional sein. Habe ich beides behoben.

Jörg: entschuldige, es gab eine zweite Stelle, an der das gleiche Problem war. Nun müsste es aber wirklich klappen - sorry!

Danke an alle für's kräftige Testen!

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: JoWiemann am 30 Mai 2017, 20:37:02
Jo: entschuldige, es gab eine zweite Stelle, an der das gleiche Problem war. Nun müsste es aber wirklich klappen - sorry!

Oh, musst Dich nicht entschuldigen und passt jetzt. Jetzt wird weiter gespielt und meine Frau ermahnt mich schon :-)

Danke für das Modul und Grüße

Jörg
Titel: Antw:[Neues Modul] Spotify
Beitrag von: JoWiemann am 30 Mai 2017, 20:56:25
Hallo Oskar,

gefunden werden meine Amazon Devices. Müssten nicht auch die Sonos gefunden werden?

Grüße Jörg
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 20:59:15
Jörg, bei mir zeigt er alle Spotify-Connect fähigen Geräte an sowie alle, die die App offen haben... Die Geräte werden als Array von der API übergeben, du kannst mal ein set <name> update versuchen.
Edit: Kannst du deine Sonos Lautsprecher ansteuern, wenn du dich nicht im gleichen WLAN befindest? Damit man die Geräte über die API steuern kann, müssen sie sich auf deinem Account einloggen. In der Regel machen das Connect fähige Geräte automatisch, sobald man etwas über sie abspielt.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: JoWiemann am 30 Mai 2017, 21:10:16
Hallo Oskar,

die Sonos können nur im gleichen WLAN erreicht werden. Hier habe ich sie mit Spotify über mein Konto verbunden. Ich kann so auch, nur in meinem WLAN, über die Spotify App Lieder auf den Sonos abspielen.

Grüße Jörg
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 21:15:06
Hey Jörg,
daran wird es wohl liegen... Die Web API hat den gleichen Funktionsumfang wie der Spotify Web Player - wenn deine Geräte dort nicht auftauchen, dann auch nicht im Modul.
Kann man die Sonos nicht irgendwie von außerhalb zugänglich machen / dauerhaft in Spotify einloggen?

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 30 Mai 2017, 21:26:38
Hallo zusammen,




Erst mal, mega Modul! Läuft auch auf Anhieb.


Ich würde mir wünschen, das ich bei playPlaylistbyName auch ein Device mit angeben kann, bisher geht das leider nicht. Daher spielt er auf dem Default ab. Es gibt aber Playlist die ich nur auf einem bestimmten anderen Gerät abspiel.


Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 21:33:23
Hallo AmunRe,

danke für dein Feedback, das stimmt, bei dem Command hat die Angabe eines Zielgeräts noch gefehlt - habe ich nun hinzugefügt!
Ist im Update morgen mit dabei (oder jetzt schon im Trunk).

Edit: Ich habe nun auch die volumeUp/volumeDown Funktion gemäß AV-Spezifikation eingebaut.

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 30 Mai 2017, 22:40:57
Hallo AmunRe,

danke für dein Feedback, das stimmt, bei dem Command hat die Angabe eines Zielgeräts noch gefehlt - habe ich nun hinzugefügt!
Ist im Update morgen mit dabei (oder jetzt schon im Trunk).

Edit: Ich habe nun auch die volumeUp/volumeDown Funktion gemäß AV-Spezifikation eingebaut.

LG
Oskar


Ich bedanke mich, das funktioniert jetzt auch mit der DeviceID! Super!


Ich hab grad mal "volumeUp" getestet. im normalfall ist dahinter dann kein Feld und erhöt um einen bestimmten Wert. Bei mir hab ich dswegen auch nichts eingetragen, was bei volumeUp zur Maxlautstärke führte.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 30 Mai 2017, 22:43:24
Hey, sehr gerne!
Ja, das Feld ist optional, es wird standardmäßig immer um 5% erhöht.
Das kann man über das Attribut volumeStep einstellen oder eben als Parameter eingeben.
Wenn du ein spezielles device mit dem Befehl ansprechen willst musst du dir nochmal die aktuelle Version ziehen, das habe ich eben erst eingebaut.

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 31 Mai 2017, 15:15:37
@Oskar: Bei mir funktioniert folgendes nicht richtig : playContextByURI <context_uri> [ <nr_of_start_track> ] [ <device_id / device_name> ]

Ob ich die [ <nr_of_start_track> ] eingebe oder nicht, es wird immer das erste Lied abgespielt.

####Edit: das war auch noch im LOG

2017.05.31 15:12:05.429 1: PERL WARNING: Odd number of elements in anonymous hash at ./FHEM/37_Spotify.pm line 577.
Ich habe nur das Modul aktualisiert und ein relaod gemacht, muss ggfs. ein FHEM Neustart sein?


Gruß Marcel
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 31 Mai 2017, 15:41:15
Ma_Bo, danke für den Hinweis, ist behoben!

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 31 Mai 2017, 18:40:52
Zitat
playRandomTrackFromPlaylistByURI <track_uri> [ <limit> ] [ <device_id / device_name> ]


Hi Oskar,
In der Commandref ist es so angegeben. Müsste es nicht heißten PlaylistUri? Es gibt leider noch kein Reading für die playlisturi wie bekomme ich diese, versuche mich morgens nämlich ebenfalls vom Echo wecken zu lassen, nur bei der playPlaylistbyName startet er immer mit dem gleichen, daher würde ich das gern random lösen.


Lieben Gruß


Torsten
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 31 Mai 2017, 18:46:57
Hey Torsten,
ja stimmt, da gehört playlist_uri hin, habe ich geändert.
Du bekommst die URIs über die (Desktop) App, wenn du auf den Teilen-Knopf drückst.

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 31 Mai 2017, 19:01:03
Hey Thorsten,
ja stimmt, da gehört playlist_uri hin, habe ich geändert.
Du bekommst die URIs über die (Desktop) App, wenn du auf den Teilen-Knopf drückst.

LG


hey cool danke für die Info.


Mit der Uri klappt es auch fast, ich hab jetzt noch das problem das ich ihm 5 Tracks als Limit vorgebe, er übernimmt aber dennoch nur einen in die playlist und nicht 5.


Edit: Ich seh grad, das ich ihm damit nur sage, wie groß der Zufall ist, also wie viel Tracks berücksichtigt werden. Sorry, das hab ich falsch verstanden. Dachte ich könnte sagen er soll 5 Tracks übernehmen :(
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 31 Mai 2017, 19:06:37
Das Limit bezieht sich ja auf die ersten X Songs der Playlist, aus denen ein zufälliger Song ausgewählt werden soll (um so z.B. bei Chart-Playlists alte Songs auszufiltern etc).
Und du meinst, da kommt immer der gleiche Song? Führ das Command mal mehrfach nacheinander aus.

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 31 Mai 2017, 19:43:32
Das Limit bezieht sich ja auf die ersten X Songs der Playlist, aus denen ein zufälliger Song ausgewählt werden soll (um so z.B. bei Chart-Playlists alte Songs auszufiltern etc).
Und du meinst, da kommt immer der gleiche Song? Führ das Command mal mehrfach nacheinander aus.

LG


Nein, da kommt nicht der gleiche.


Mein Problem ist, ich würde gern eine Playlist abspielen, dabei soll aber nicht immer der selbe song abspielen. Ab dem zweiten song wäre es kein Problem weil ich ja shuffle auf on setzen kann. Damit ist aber immer der erste Song der gleiche. Deswegen dachte ich randomPlaylist sorgt dafür das eine randomplaylist abgespielt wird und zwar mit der Anzahl an Tracks die in Limit hinterlegt sind. Dem ist aber leider nicht so. Jetzt muss ich mir was anderes überlegen um nicht immer den selben Song zu haben morgens.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 31 Mai 2017, 19:45:43
Es wird bei dem Command nicht immer der gleiche Song abgespielt sondern ein zufälliger aus einer Playlist ausgewählt, damit nicht immer der gleiche kommt.
Ich verstehe nicht so richtig, woran es hängt.

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: n0bbi am 31 Mai 2017, 19:48:03
Innerhalb weniger Minuten installiert und funktioniert, vielen vielen Dank!

Eine Frage habe ich aber noch und ich glaube das Problem hatte hier schon mal jemand mit seinen Sonos-Boxen: Der Webplayer und das Modul hier erkennen deutlich weniger Geräte im Netzwerk als die Handy-App. Mir fehlen im FHEM-Modul zum Beispiel mein Chromecast, die FireTVs und mein Receiver. Gefunden werden lediglich die Amazon Echos.

Jemand eine Idee wie man das Problem noch lösen könnte?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 31 Mai 2017, 20:08:40
Es wird bei dem Command nicht immer der gleiche Song abgespielt sondern ein zufälliger aus einer Playlist ausgewählt, damit nicht immer der gleiche kommt.
Ich verstehe nicht so richtig, woran es hängt.

LG


Ich würde gern mehrals nur einen Song in der Playlist haben ;)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 31 Mai 2017, 21:13:19
n00bi - gerne, ich glaube das wird schwerer. Man müsste die Geräte lokal im Netzwerk erkennen und ansteuern, wie genau das Protokoll funktioniert weiß ich leider nicht. Im Vergleich dazu ist die Web API wahrscheinlich sehr einfach :D

Torsten, ich verstehe leider immer noch nicht, was genau du meinst.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 31 Mai 2017, 23:22:23

Thorsten, ich verstehe leider immer noch nicht, was genau du meinst.


Bisher spielt playRandomTrackFromPlaylistByUrl genau EINEN Song ab. Ich hätte gern, das ich mehr als nur einen aus der Playlist übernehmen kann. Also quasi die erste 5 zufällig ausgewählten.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 01 Juni 2017, 23:25:30
Ah, ich verstehe. Man könnte es darüber lösen eine Playlist zu starten, shuffle zu aktivieren und dann entsprechend zum nächsten Track zu skippen... Würde das funktionieren?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: moonsorrox am 02 Juni 2017, 00:37:32
Hallo Super Modul, einrichten hat alles prima geklappt, aber ich kann z.B. den Webplayer den er mir anzeigt nicht abspielen.
In den readings steht bei
device_active_name Spotify Web Player
device_active_type Computer

error_code 403
error_description Not available for the current user
aber die "user_id" ist richtig

Log Fehler:
2017.06.02 00:31:29 3: Spotify: request failed: Not available for the current user
2017.06.02 00:31:28 3: Spotify: request failed: Not available for the current user

Weiterhin zeigt er mir in den Readings auch alles an was ich direkt gerade im WebPlayer abgespielt habe, Künstler, Titel welche Platte usw.
Was muss ich noch beachten.? Geht das evtl. nur mit einem Premium Account.?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Haecksler am 02 Juni 2017, 10:53:25
Weiterhin zeigt er mir in den Readings auch alles an was ich direkt gerade im WebPlayer abgespielt habe, Künstler, Titel welche Platte usw.
Was muss ich noch beachten.? Geht das evtl. nur mit einem Premium Account.?
Ja, kann nicht alles umsonst sein. 8)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 02 Juni 2017, 13:01:43
Ja, leider stehen manche Funktionen nur Premium-Nutzern zur Verfügung.

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: moonsorrox am 02 Juni 2017, 15:09:13
OK, vllt. sollte man dann auf der 1.Seite eine kleine Information dazu schreiben, dass es einem Premium Account voraus setzt.
Ich höre nicht oft am PC Musik, aber eben ab und an... und dann nehme ich Spotify und lebe mit der kurzen Werbung...!

O.T.
Man muss nicht alles kaufen, möchte hier aber deshalb keine Diskussion auslösen... ob nun alles umsonst oder nicht umsonst sein sollte. Wäre ich ein Spotify extrem Hörer würde ich auch den Premium Account vorziehen  ;) :D ;)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Tobias am 02 Juni 2017, 16:10:19
Hi,
ich habe hier Sonos - und MPD Player. Wie kann ich diese mit diesem Spotify Modul hier verknüpfen bzw die Musik dort abspielen?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 02 Juni 2017, 16:15:22
OK, vllt. sollte man dann auf der 1.Seite eine kleine Information dazu schreiben, dass es einem Premium Account voraus setzt.
Da hast du natürlich völlig Recht, mir war das auch nicht bewusst, in welchem Umfang ein Premium Account benötigt wird, oder nicht - das konnte ich auch nicht testen, weil ich selbst eben Premium verwende.

Hi,
ich habe hier Sonos - und MPD Player. Wie kann ich diese mit diesem Spotify Modul hier verknüpfen bzw die Musik dort abspielen?
Tobias, wenn die Geräte über den Web Player nicht ansteuerbar sind, ist das Starten einer initialen neuen Wiedergabe wahrscheinlich vorerst schwierig.
Allerdings sollte es ohne Probleme möglich sein, sobald die Wiedergabe auf dem Zielgerät aktiv ist, diese zu steuern / zu verändern.

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 02 Juni 2017, 17:05:40
Ah, ich verstehe. Man könnte es darüber lösen eine Playlist zu starten, shuffle zu aktivieren und dann entsprechend zum nächsten Track zu skippen... Würde das funktionieren?


Sag ich dir morgen früh, aber danke für die Idee!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ma_Bo am 02 Juni 2017, 17:55:54
@Oskar: diese Meldung hatte ich gerade nach einem Neustart von FHEM

2017.06.02 17:50:00.189 1: PERL WARNING: main::Spotify_getTargetDeviceID() called too early to check prototype at ./FHEM/37_Spotify.pm line 674, <$fh> line 13067.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 02 Juni 2017, 18:04:52
@Oskar: diese Meldung hatte ich gerade nach einem Neustart von FHEM

2017.06.02 17:50:00.189 1: PERL WARNING: main::Spotify_getTargetDeviceID() called too early to check prototype at ./FHEM/37_Spotify.pm line 674, <$fh> line 13067.

Dankeschön, sollte nun behoben sein :)
LG Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: enrikb am 02 Juni 2017, 22:33:45
Ich habe mir hier lokal mal angesehen, wie die Spotify Windows Anwendung wohl mein lokales Connect-Gerät, ein ASUS Clique R100, findet. Das R100 sendet - neben den üblichen UPnP / SSDP Media-Gedöns Announcements auch Bonjour. Der PTR RR sieht so aus:

_spotify-connect._tcp.local: type PTR, class IN, Wohnzimmer._spotify-connect._tcp.local

("Wohnzimmer" ist natürlich der Gerätename).

Der Name löst zu einem TXT und SRV RR auf (Auszüge aus dem Wireshark-Dump):

Wohnzimmer._spotify-connect._tcp.local: type SRV, class IN, cache flush, priority 0, weight 0, port 8080, target Qualcomm-Atheros-CUS227-047d43.local
Wohnzimmer._spotify-connect._tcp.local: type TXT, class IN, cache flush
  TXT: VERSION=1.0
  TXT: CPath=/zeroConf

Die Spotify-Anwendung macht dann eine Verbindung auf Port 8080 (vgl. SRV RR) und setzt einen HTTP GET-Request auf /zeroConf?action=getInfo (vgl. TXT RR) ab:

GET /zeroConf?action=getInfo HTTP/1.1
Host: 192.168.128.56:8080
User-Agent: Spotify/105500487 Win32/0 (PC laptop)
Keep-Alive: 0
Connection: keep-alive
Accept-Encoding: gzip
Content-Type: application/x-www-form-urlencoded


Zurück kommt ein JSON-Objekt:

{
  "status": 101,
  "statusString": "OK",
  "spotifyError": 0,
  "version": "2.1.0",
  "deviceID": "255720ef-e852-419f-a2f5-6443905b8cfd",
  "remoteName": "Wohnzimmer",
  "publicKey": "bTBzujQi9/JfWvZZIlhMnFy7MHwzTrHH1DC2B7Xtl3VJhFgZTywLD26VlsrqSv5jO5f6sLgZ01wrotShQpNPJ7varaZ9VJ/7Ch/tHegbeObCCAMMOAQkpWIp0/aPlI/g",
  "activeUser": "enrik.berkhan",
  "accountReq": "PREMIUM",
  "deviceType": "SPEAKER",
  "brandDisplayName": "ASUS",
  "modelDisplayName": "Clique_R100",
  "libraryVersion": "1.20.0-g594175d4"
}

Die interessanten Member sind vermutlich "deviceID" und "publicKey". Keine Ahnung, ob man das im WebAPI irgendwie verwenden kann, aber vielleicht kommt damit jemand weiter. Da mein Account der aktuelle 'activeUser' ist, sehe ich das Gerät zurzeit wohl auch im FHEM Modul. Das ist nicht immer der Fall.

Viel Erfolg,
Enrik
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 02 Juni 2017, 22:42:29
Hallo Enrik,

vielen Dank für deine Analyse!
Mir ist es auch bereits gelungen, lokale Geräte zu entdecken - man müsste es nur schaffen, das Gerät zu "aktivieren", danach wäre es über die Web API steuerbar.
Dazu benötigt es allerdings blobs & co, von denen ich noch nicht weiß, wie ich sie generieren kann.
Das ganze wurde bereits in go implementiert, man müsste es entsprechend noch in das Modul portieren: https://github.com/badfortrains/spotcontrol (https://github.com/badfortrains/spotcontrol)

Falls jemand eine Idee hat und helfen mag, sehr gerne!

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: moonsorrox am 03 Juni 2017, 13:33:30
Interessehalber möchte ich noch mal nachfragen
Folgende Funktionen sind implementiert (manche benötigen einen Premium Account):
welche benötigen denn keinen Premium Account oder sind damit nur readings gemeint (die ja fast alle erscheinen)

Diese Funktionen hier sind mit webCMD angelegt und es funktioniert keiner davon.
paused toggle next prev volumeUp volumeDown
Ich glaube ich werde mir mal den 3monatigen Testaccount zulegen  ;)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 03 Juni 2017, 13:37:45
Interessehalber möchte ich noch mal nachfragenwelche benötigen denn keinen Premium Account oder sind damit nur readings gemeint (die ja fast alle erscheinen)

Diese Funktionen hier sind mit webCMD angelegt und es funktioniert keiner davon.
paused toggle next prev volumeUp volumeDown
Ich glaube ich werde mir mal den 3monatigen Testaccount zulegen  ;)

Ich habe gerade noch mal nachgelesen, anscheinend sind leider alle steuernden Aktionen Premium only: https://developer.spotify.com/web-api/working-with-connect/ (https://developer.spotify.com/web-api/working-with-connect/)

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: moonsorrox am 03 Juni 2017, 13:47:36
OK, vielen Dank
Titel: Antw:[Neues Modul] Spotify
Beitrag von: enrikb am 04 Juni 2017, 00:15:57
Hallo Oskar,

danke für den Hinweis auf spotcontrol. Bin schon am Go lesenlernen.

Viele Grüße,
Enrik
Titel: Antw:[Neues Modul] Spotify
Beitrag von: accessburn am 10 Juni 2017, 09:57:59
Hat schon jemand etwas interessantes für FTUI zusammen geschustert?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Haecksler am 11 Juni 2017, 12:59:44
Tolles Modul! Funktioniert soweit einwandfrei.
Das einzige was komisch ist, ist dass wenn man mit "playPlaylistByName" ein Mixtape z.B. "Dein Mixtape 1" abspielen will, kommt zwar das Mixtape 1, dass was gespielt wird hat aber nichts mit dem Mixtape, welches in der Spotify App angezeigt wird zutun.
Kann das sonst noch jemand bestätigen?

Gruß,
Stefan
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 11 Juni 2017, 13:02:11
Hey Stefan!

playPlaylistByName bezieht sich auf alle öffentlichen Spotify Playlists wie z.B. "Top Hits Deutschland" etc.
Generell empfiehlt es sich, immer wenn es möglich ist, alles über die contextURI anzusprechen, da du dann garantiert die richtige Playlist abspielst.

Liebe Grüße
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Tomatenjoghurt am 12 Juni 2017, 21:36:42
Hi!

Erstmal danke für das Modul - es funktioniert wirklich auf Anhieb super!  ;D

Eine Frage...gibt es evtl eine Möglichkeit bestimmte Playlists zu speichern?
Ich hatte mir überlegt Playlists in einem dummy (playlist) als STATE zu speichern...aber dann krieg ichs irgendwie noch nicht hin, den STATE des dummys, der die URi der Playlist enthält, abzuspielen...
Gibt es da irgendeine Möglichkeit?
Quasi...
set Spotify playContextByURI playlist.STATE
...was ja leider nicht geht, da er so nicht den Inhalt der Variable abspielt, sondern den String an sich interpresiert...  ::)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 12 Juni 2017, 21:40:52
Hey!
Gerne :)

Klar, das sollte mit Perl Syntax kein Problem sein:
{ fhem("set Spotify playContextByURI ". Value("playlistXY")) }
Meinst du das?

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: CoolTux am 12 Juni 2017, 21:48:18
Hi!

Erstmal danke für das Modul - es funktioniert wirklich auf Anhieb super!  ;D

Eine Frage...gibt es evtl eine Möglichkeit bestimmte Playlists zu speichern?
Ich hatte mir überlegt Playlists in einem dummy (playlist) als STATE zu speichern...aber dann krieg ichs irgendwie noch nicht hin, den STATE des dummys, der die URi der Playlist enthält, abzuspielen...
Gibt es da irgendeine Möglichkeit?
Quasi...
set Spotify playContextByURI playlist.STATE
...was ja leider nicht geht, da er so nicht den Inhalt der Variable abspielt, sondern den String an sich interpresiert...  ::)

Wenn Du einen Dummy anlegst und mit den Attributen setList und readingList arbeitest kannst Du eine spätere Abfrage ganz einfach mit
set Spotify playContextByURI [playlistDummy:playListXY]

das ganze abspielen.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Tomatenjoghurt am 13 Juni 2017, 21:14:40
Perfekt, hab mich für die Variante von CoolTux entschieden, funktioniert super! :)

Falls es wen interessiert...ich setze mir via FTUI über eine select-box eine playlist, die dann im state von besagtem dummy gespeichert wird. Ein klick auf den play button mit dem befehl von CoolTux spielt dann die ausgewählte playlist ab.
Wirklich super, danke!  ;D
Titel: Antw:[Neues Modul] Spotify
Beitrag von: enrikb am 13 Juni 2017, 23:33:41
[Spotify Connect]

Falls jemand eine Idee hat und helfen mag, sehr gerne!

Also, ich habe mal ein bisschen weiter gespielt und die Informationen von spotcontrol und librespot in einen perl proof-of-concept übersetzt, um etwas Licht ins Dunkel zu bringen. Damit sich ein spotify-connect client mit einem Account verbindet, schickt man ihm offenbar einen 'addUser'-Request, der mehrfach verschlüsselte und verschleierte wiederverwendbare Logininformationen enthält. Wenn man die Spotify-Anwendung dazu bringt, ein nachgebautes connect device zu akzeptieren und das dann als Ziel auswählt, schenkt einem die Anwendung diese Logininformationen als 'blob'. Möglicherweise kann man in diesem 'blob' auch ein OAuth-Token verwenden. Was man von der Spotify-Anwendung bekommt, scheint aber ein volles, nicht ablaufendes Äquivalent von Nutzername/Passwort zu sein.

Hier ist ein kleiner in perl heruntergeschriebener Server, der die entsprechenden Anfragen von der Spotify-Anwendung verarbeitet und nach einem addUser die Daten auf STDERR ausgibt:

#!/usr/bin/perl -w

use Math::BigInt;
use Data::UUID;

$priv_key = Math::BigInt->from_hex(
  'cafebabe_cafebabe_cafebabe_cafebabe_cafebabe_cafebabe'.
  'cafebabe_cafebabe_cafebabe_cafebabe_cafebabe_cafebabe'.
  'cafebabe_cafebabe_cafebabe_cafebabe_cafebabe_cafebabe'.
  'cafebabe_cafebabe_cafebabe_cafebabe_cafebabe_cafebabe'
);

$local_id = Data::UUID->new->create_from_name_str(Data::UUID::NameSpace_URL, "cafebabe.fake.spotify.com");

{
  package MyConnect;

  use HTTP::Server::Simple::CGI;
  use base qw(HTTP::Server::Simple::CGI);

  use MIME::Base64;
  use JSON::PP;
  use Crypt::DH;
  use Crypt::Rijndael;
  use Crypt::PBKDF2;
  use Digest::SHA qw(sha1);
  use Digest::HMAC_SHA1 qw(hmac_sha1);

  my $dh = Crypt::DH->new;

  my %dispatch = (
    '/' => \&resp_conf,
    # ...
  );

  sub post_setup_hook {
    my $self = shift;
    # First Oakley Default Group
    $dh->p(Math::BigInt->from_hex(
        'FFFFFFFF_FFFFFFFF_C90FDAA2_2168C234_C4C6628B_80DC1CD1'.
        '29024E08_8A67CC740_20BBEA6_3B139B22_514A0879_8E3404DD'.
        'EF9519B3_CD3A431B_302B0A6D_F25F1437_4FE1356D_6D51C245'.
        'E485B576_625E7EC6_F44C42E9_A63A3620_FFFFFFFF_FFFFFFFF'
      ));
    $dh->g(2);
    $dh->priv_key($main::priv_key);
    $dh->generate_keys;
    $self->SUPER::post_setup_hook();
  }

  sub handle_request {
    my $self = shift;
    my $cgi  = shift;

    my $path = $cgi->path_info();
    my $handler = $dispatch{$path};

    if (ref($handler) eq "CODE") {
      $handler->($cgi);

    } else {
      print "HTTP/1.0 404 Not found\r\n";
      print $cgi->header,
      $cgi->start_html('Not found'),
      $cgi->h1('Not found'),
      $cgi->end_html;
    }
  }

  sub resp_conf {
    my $cgi  = shift;   # CGI.pm object
    return if !ref $cgi;

    my $action = $cgi->param('action');
    my $pub_key = "blurb";

    if ($action eq "getInfo") {
      print "HTTP/1.0 200 OK\r\n";
      print $cgi->header("application/json"),

      encode_json({
          status => 101,
          statusString => "OK",
          spotifyError => 0,
          version => "2.1.0",
          deviceID => $main::local_id,
          remoteName => "Da Fake Speaker",
          activeUser => "",
          publicKey => encode_base64(pack('H*', substr($dh->pub_key->as_hex, 2)), ''),
          deviceType => "SPEAKER",
          libraryVersion => "1.20.0-g594175d4",
          accountReq => "PREMIUM",
          brandDisplayName => "MyConnector",
          modelDisplayName => "HAL 9000",
        });
      print "\n";
    } elsif ($action eq "addUser") {

      decode_and_dump($cgi);

      print "HTTP/1.0 200 OK\r\n";
      print $cgi->header("application/json"),

      encode_json({
          status => "101",
          statusString => "ERROR-OK",
          spotifyError => 0,
        });
      print "\n";
    } else {
      print "HTTP/1.0 404 Not found\r\n";
      print $cgi->header,
      $cgi->start_html('Not found'),
      $cgi->h1('Not found'),
      $cgi->end_html;
    }
  }

  sub decode_and_dump {
    my $cgi = shift;

    my $local_id = $main::local_id;
    my $username = $cgi->param('userName');
    my $client_key = Math::BigInt->from_hex(unpack('H*', decode_base64($cgi->param('clientKey'))));
    my $encrypted_blob = decode_base64($cgi->param('blob'));

    my $shared_key = $dh->compute_secret($client_key);
    my $base_key       = substr(sha1(pack('H*', substr($shared_key->as_hex, 2))), 0, 16);
    my $checksum_key   = hmac_sha1("checksum",   $base_key);
    my $encryption_key = substr(hmac_sha1("encryption", $base_key),0 , 16);

    my $iv        = substr($encrypted_blob, 0, 16);
    my $encrypted = substr($encrypted_blob, 16, -20);
    my $cksum     = substr($encrypted_blob, -20);

    my $mac = hmac_sha1($encrypted, $checksum_key);

    #die "Bad checksum!" unless ($mac eq $cksum);
    return unless ($mac eq $cksum);

    # outer decryption
    my $aes = new Crypt::Rijndael($encryption_key, Crypt::Rijndael::MODE_CTR());
    $aes->set_iv($iv);
    my $decrypted = $aes->decrypt($encrypted);
    $decrypted = decode_base64($decrypted);

    # inner decryption
    my $pbkdf2 = Crypt::PBKDF2->new(
      hash_class => 'HMACSHA1',
      iterations => 0x100,
      output_len => 20,
      salt_len => length($username),
    );

    my $blob_key = $pbkdf2->PBKDF2($username, sha1($local_id));
    $blob_key  = sha1($blob_key);
    $blob_key .= pack('N', length($blob_key));

    $aes = new Crypt::Rijndael($blob_key, Crypt::Rijndael::MODE_ECB());
    $decrypted = $aes->decrypt($decrypted);

    # inner obfuscation
    my @decrypted = split('', $decrypted);
    my $l = length($decrypted);
    for (my $i = 0; $i < $l - 16; $i++) {
      $decrypted[$l - $i - 1] ^= $decrypted[$l - $i - 17];
    }

    print STDERR encode_json(
      {
        Username => $username,
        DecodedBlob => encode_base64(join('', @decrypted), ''),
      }
    ), "\n";

  }
}

MyConnect->new(8080, Socket::AF_INET6)->run();

Damit der gefunden wird, muss man ihn noch per Bonjour ankündigen. Der Einfachheit halber habe ich das mit avahi gemacht:

$ avahi-publish-service -v FakeSpeaker _spotify-connect._tcp 8080 VERSION=1.0 CPath=/
Server version: avahi 0.6.32-rc; Host name: chekov.local
Established under name 'FakeSpeaker'

Wenn man diese Daten erstmal hat, kann man sie umgekehrt für sein Wunschdevice wieder verschlüsseln und per addUser dorthin schicken. Das habe ich noch nicht implementiert oder gar getestet. Allerdings hat spotcontrol die Ausgabe des mini-Servers, abgespeichert als blob-Datei dafür, akzeptiert und erfolgreich verwendet.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: LeoSum am 14 Juni 2017, 20:14:01
Heyho,
erstmal vielen Dank für das tolle Modul!
Bislang hatte ich spotifyd-http (https://github.com/Spotifyd/spotifyd-http) eingesetzt und curl commands von FHEM aus gesendet um librespot fernzusteuern.
Das ist nun mit deinem Modul viel einfacher und ich spare mir eine Softwarekomponente.

Allerdings habe ich ein Problem:

Ich möchte auf Knopfdruck die Wiedergabe fortsetzen wenn sie pausiert ist und gleichzeitig auf meinen librespot player übertragen, falls das nicht schon der aktive ist.
Dazu führe ich folgende Aktion durch ein Notify aus:

(set SpotifyWeb resume ; set SpotifyWeb transferPlayback Librespot)Allerdings wird hier scheinbar zufällig stets nur einer der beiden Befehle ausgeführt.

Ist das vielleicht ein Timing-Problem durch meinen schwachbrüstigen Raspberry Pi 2? Könnte man im Modul mehrere Commands irgendwie queuen und verzögert rausschicken?

EDIT: Ich habe jetzt erstmal ein "sleep 1" zwischen die beiden Kommandos geklemmt, damit werden alle Kommandos sicher ausgeführt.


Einen Wunsch hätte ich noch @neumann:

librespot unterstützt aktuell kein shuffle, und das wird sich wohl mittelfristig auch nicht ändern.
Siehst du eine Möglichkeit, bei der Funktion "playRandomTrackFromPlaylistByURI" noch eine Zahl als weiteren Parameter anzuhängen um so beispielsweise 20 random tracks aus einer Playlist in die Warteschlange zu packen? So könnte man diesen Mangel in librespot umschiffen.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 15 Juni 2017, 09:14:33
Hey LeoSum,

danke für das Feedback!
Der Einfachheit halber habe ich nun einfach das resume command um die Möglichkeit zur Angabe eines Zielgeräts erweitert, damit sollte dein Problem in jedem Fall behoben sein. Das Update ist im SVN und wird dann morgen via "update" zur Verfügung stehen.

Die Erweiterung für die random Playlist habe ich mir mal für die Zukunft aufgeschrieben :)

Liebe Grüße
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 15 Juni 2017, 09:16:34
Hey enrikb,

sehr cool, da hast du ja echt schon einiges geschafft.
Damit es praktikabel ist und in das Modul rein kann müssten geklärt sein wie man den Blob bekommt und die Wiedergabe startet.
Ich bin gespannt was du noch rausfindest, danke für deine Arbeit!

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 15 Juni 2017, 13:45:52


librespot unterstützt aktuell kein shuffle, und das wird sich wohl mittelfristig auch nicht ändern.
Siehst du eine Möglichkeit, bei der Funktion "playRandomTrackFromPlaylistByURI" noch eine Zahl als weiteren Parameter anzuhängen um so beispielsweise 20 random tracks aus einer Playlist in die Warteschlange zu packen? So könnte man diesen Mangel in librespot umschiffen.


Das wäre das, was ich mir auch wünsche, der trick play, shuffle und next track klappt nämlich nicht.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: LeoSum am 15 Juni 2017, 16:24:32
@neumann: schön zu hören, danke!

@AmunRe: ich hatte zuvor, als ich noch mit spotifyd-httpd gesteuert habe, eine python script gehabt, welches alle Song URIs einer Playlist URI in zufälliger Reihenfolge ausgegeben hat. Diese SongURI-Liste konnte man dann per spotifyd-httpd auf librespot ausgeben lassen. Das war dann wie shuffle.

@neumann: wäre es möglich dein Modul eine beliebig lange liste an SongURIs annehmen zu lassen? Dann könnte ich mein Skript weiterverwenden.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 15 Juni 2017, 17:36:48
LeoSum, ja das ist möglich, du kannst bei playTrackByURI mehrere URIs nacheinander angeben (und ganz am Ende das Zielgerät falls gewünscht).
Ich werde das Feature auch demnächst genauso wie du beschrieben hast implementieren, gebt mir noch ein bisschen Zeit.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: LeoSum am 16 Juni 2017, 06:50:07
Klingt super! Ich freue mich drauf
Titel: Antw:[Neues Modul] Spotify
Beitrag von: jove01 am 24 Juni 2017, 20:17:00
Hallo

Leider habe ich dieses Modul nicht wirklich geschnallt. :-[

Ich habe mir gerade einen kostenlosen Account geholt, wohlwissend, dass damit viele Funktionen nicht funktionieren.

Die Definition des Spotify-Devices gelang relativ problemlos. Die Spotify-App habe ich auf einem Laptop und auf ein Tablet installiert.

Eine Url konnte ich kopieren . Aber mit den verschieden Playfunktionen im FHEM-Device startet nichts. STATE bleibt auf paused.

Auch mit transferPlayback komme ich nicht weiter, um eines der beiden Spotfy-Devices anzusprechen.

Wo ist mein Denkfehler, auch wenn alle anderen das schnallen ?

Auf eine Soundtouch 10 kann ich mit dem kostenlosen Spotfy nichts übertragen, obwohl es in der App gesehen wird.

Das ist aber sicher alles in den Griff zu kriegen, wenn ich hier den entscheidenden Tip bekomme. Aber mein eigentliches Ansinnen scheint wohl generell nicht zu funktionieren.:

Über den DLNA-Renderer spiele ich Radiostreams auf meinen Marantz-AV. Hier hoffte ich, Spotify irgendwie reinzubekommen. Seht Ihr da eine Chance ?

Danke
Jürgen

Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 25 Juni 2017, 13:04:44
Hey Jürgen,

leider funktionieren die meisten Funktionen tatsächlich nur mit einem Spotify Premium Account...
Fast die gesamte API ist darauf beschränkt.

Liebe Grüße
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: jove01 am 25 Juni 2017, 14:55:34
Hallo Oskar

Danke für deine Antwort.
Aber selbst mit dem kostenlosen Spotify müsste ich doch mit deinem Modul eine Wiedergabe auf eines meiner geräte mit Spotify starten können, oder verstehe ich alles falsch.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 25 Juni 2017, 14:58:08
Ich glaube, dass sich die Funktionen der API bei einem kostenlosen Account auf den lesenden Zugriff beschränkt (d.h. Readings über die aktuelle Wiedergabe).
Ich selbst habe nur einen Premium-Account (ist bei einem Familien-Abo mit 2,50€ p.P. ja vertretbar), kann also nicht sagen, welche Funktionen klappen und welche nicht.

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: jove01 am 25 Juni 2017, 15:54:49
O.k.
Das mit dem lesenden Zugriff könnte dann mit dem was ich sehe zutreffen.

Vielen Dank
Jürgen
Titel: Antw:[Neues Modul] Spotify
Beitrag von: swilalaa am 08 Juli 2017, 15:25:18
Danke für das super Plugin, die Einbindung von Spotify funktioniert ruck zuck!

Nun würde ich gerne homebridge / Siri eine fixe Playlist starten / pausieren. Die Lautstärke spielt nicht wirklich eine Rolle, wäre nur ein nice to have.

Ich habe bisher nur Lichter via Homebridge eingebunden, bin aber zu doof die Brücke zu schlagen wie ich die attribute ordentlich setze.

Könnte hier eventuell jemand unterstützen?

Danke im voraus!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 08 Juli 2017, 17:14:57
Danke für das super Plugin, die Einbindung von Spotify funktioniert ruck zuck!

Nun würde ich gerne homebridge / Siri eine fixe Playlist starten / pausieren. Die Lautstärke spielt nicht wirklich eine Rolle, wäre nur ein nice to have.

Ich habe bisher nur Lichter via Homebridge eingebunden, bin aber zu doof die Brücke zu schlagen wie ich die attribute ordentlich setze.

Könnte hier eventuell jemand unterstützen?

Danke im voraus!

Schau mal in den ersten Post von homekit/homebridge, da ist ausführlich erklärt,wie homebridgeMapping funktioniert.Das wird sonst eine never ending story.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: swilalaa am 11 Juli 2017, 22:47:49
Schau mal in den ersten Post von homekit/homebridge, da ist ausführlich erklärt,wie homebridgeMapping funktioniert.Das wird sonst eine never ending story.

Das habe ich gemacht, leider werd ich wie gesagt nicht ganz schlau daraus die Brücke zu schlagen, on / off bekomme ich zwar hin, aber das war's dann leider auch.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 12 Juli 2017, 17:32:34
Hey Oskar,


wochenlang lief dein Modul super, seit heute :
Zitat

error_code 502
error_description Bad gateway.


erkennt keine Device mehr und nix.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: DerBaer am 15 Juli 2017, 12:45:42
Hi,

super Sache!
Hab das ganze auch schon ins FTUI eingebaut mit Wiedergabe an meinem AV-Receiver.
Jetzt fehlt eigentlich nur noch eine aktive Playlist die ich im FTUI darstellen kann.
Wirds sowas geben?

Ich würde halt ganz gern die aktive Playlist im FTUI darstellen und im zweifel sogar zwischen den vorhandenen Playlisten switchen, bzw zwischen den angzeigten Titeln.

Es gibt zwar schon so eine Möglichkeit mit Mopidy, allerdings hab ich festgestellt das mein Raspy damit sehr laggy wird und rumzickt.
Außerdem ist der Response ziemlich schlecht, mal gehts mal ned.

Außerdem würd ich gern die laufende Zeit des Tracks darstellen, das bekomm ich aber mit den Millisekunden ned so ganz hin, zufällig eine Idee wie ich das umsetzen kann?^^

Danke schonmal :)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kusselin am 22 Juli 2017, 11:19:09
Hallo Zusammen,

ich habe das Modul soweit auch erstellt bei mir nur habe ich jetzt noch das Problem beim einchecken.

Internals:
   A1_INSTRUCTIONS Open AUTHORIZATION_URL in your browser and set the code afterwards. Make sure to specify REDIRECT_URI as a redirect_uri in your API application.
   AUTHORIZATION_URL https://accounts.spotify.com/authorize/?client_iXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5b
   CFGFN
   CLIENT_ID  XXXXXXXXXXXXXXXXXXXXXXXXXXXX
   CLIENT_SECRET XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   DEF        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [ https://XXXXXXX ]
   NAME       Spotify
   NR         105299
   NTFY_ORDER 50-Spotify
   REDIRECT_URI [
   STATE      authorization pending (see instructions)
   TYPE       Spotify
   helper:
     access_token
     authorization_url https://accounts.spotify.com/authorize/?client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5b
     custom_redirect 1
     expires
     refresh_token
Attributes:
   room       Multimedia

jetzt weiss ich aber nicht wie es weitergeht...

muss ich jetzt den Code, den ich mir hole von "get Spotify AutorizationURL hole:
https://accounts.spotify.com/authorize/?client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXresponse_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5b kopieren und und in das Feld einfügen von "Spotify code" und dann "SET" drücken????

wenn ich das so mache kommt folgende Fehlermeldung:
Failed to get access token: Invalid authorization code
Über ne Info danke ich Euch.

Gruss

Kussel
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 22 Juli 2017, 15:11:55
Einfach die Url aufrufen. Wie eine normale Website.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kusselin am 22 Juli 2017, 18:26:42
Wie?? Könntest bitte genauer erklären bitte


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kusselin am 22 Juli 2017, 21:22:03
Ich finds ja toll das sich jemand hier erbarmt und mir antwortet, aber wie solll ich das verstehen..einfach die url aufrufen??? Ja wo und wie?? Kann man das dann nicht so erklären das das auch die Anfänger oder auch Mitglieder die noch nicht solange dabei sind ..verstehen!!
Das wäre echt nett!!


Gesendet von iPod touch mit Tapatalk
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 22 Juli 2017, 22:01:37
Ich finds ja toll das sich jemand hier erbarmt und mir antwortet, aber wie solll ich das verstehen..einfach die url aufrufen??? Ja wo und wie?? Kann man das dann nicht so erklären das das auch die Anfänger oder auch Mitglieder die noch nicht solange dabei sind ..verstehen!!
Das wäre echt nett!!


Gesendet von iPod touch mit Tapatalk
Kopier die url,und füge sie da ein in deinem Browser,wo du sonst google.de oder bild.de oder sonst was einfügst.Also oben in das Adressfeld
Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kusselin am 22 Juli 2017, 22:08:25
wenn ich die Info aus dem get Autorization kopiere dann kommt :
Illegal redirect_uri
ich habe auf der spotify seite developer unter my Applications folgendes eingetragen:
Application Name = irgendein NameDescription = irgendwasWebsite = https://oskar.pw/Redirect URIs = https://oskar.pw/
dann ADD und SAVE gedrückt und dann szeht ne ID in Client ID und Client Secret.

Leider komme ich nicht weiter  ???

so wenn ich jetzt die URL in den Browser einfüge komme ich auf die Spotify seite...wenn ich jetzt Benutzer und pass eingeben will und dan auf anmelden gehe ....passiert nichts  :-[
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Elbwurm am 06 August 2017, 11:12:11

wenn ich das so mache kommt folgende Fehlermeldung:
Failed to get access token: Invalid authorization code

Hallo zusammen,

bei mir bekomme ich fast die gleiche Meldung.

Failed to get access token
Weiß da jemand Rat bitte?

Stehe jetzt voll auf dem Schlauch.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 06 August 2017, 11:31:57
Hallo zusammen,

bei Kusselin hat sich das Problem (per PN) geklärt, er hatte die redirect url nicht korrekt gespeichert.
Elbwurm, was kommt denn für eine Meldung, wenn du die authorizationURL aufrufst?

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Elbwurm am 06 August 2017, 12:24:28
Hallo,

da bekomme ich dann den Code angezeigt. Ich hatte allerdings anfangs auch das Problem mit der "illegal redirect_url".
Nachdem ich gesehen habe das in der Definition des Geräts bei redirect_url nur eine eckige Klammer angezeigt wurde, habe ich erst die Leerzeichen und danach noch die Klammern entfernt habe, schien alles normal zu sein.

Hoffentlich hab ich es hier nicht zu gut gemeint.

VG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 06 August 2017, 12:25:33
Die Klammern bedeuten, dass es optional ist. Lass mal komplett die redirect uri bei der Definition weg und versuche es dann erneut.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Elbwurm am 06 August 2017, 16:53:44
Hallo,

habe jetzt nochmal alles von vorn gemacht ohne die redirect_uri beim define anzuhängen, leider mit gleichem Ergebnis.
Failed to get access token
Hilft es evtl. mal die paar Zeilen aus dem Log mit verbose 5 zu Posten?

VG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Elbwurm am 09 August 2017, 16:53:55
Also ich versuche es jetzt einfach mal mit diesen paar Codezeilen...

2017.08.09 16:45:40 4: Spotifhem: checking access code
2017.08.09 16:45:40 4: HttpUtils url=https://accounts.spotify.com/api/token
2017.08.09 16:45:41 4: https://accounts.spotify.com:443: Can't load 'H:/fhem/perl/site/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at H:/fhem/perl/lib/DynaLoader.pm line 193.
 at H:/fhem/perl/site/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at H:/fhem/perl/site/lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at H:/fhem/perl/site/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at (eval 34) line 2.
BEGIN failed--compilation aborted at (eval 34) line 2.

2017.08.09 16:45:41 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/37_Spotify.pm line 189.


Vielleicht kann damit jemand etwas anfangen, ich werde nicht schlau daraus.
Ich habe eher die Vermutung das es sich hier evtl. um ein Problem mit meiner Pearl-Installation handelt, kann mich aber auch Täuschen, manchmal ist es mir einfach zu hoch das Thema.

Ich bin dankbar für jeden Rat.

VG Elbwurm
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 09 August 2017, 17:01:13
Versuch mal folgendes:
apt-get install libcrypt-ssleay-perl
LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Elbwurm am 09 August 2017, 17:36:16
Sorry, ich hätte ja auch mal erwähnen sollen das das ganze bei mir in einer WIN10-Umgebung mit aktuellem Strawberry-Pearl portable läuft. Hat mich schon einiges an Nerven gekostet aber am Ende habe ich alles umgesetzt bekommen was ich gebraucht habe.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 09 August 2017, 17:37:16
Wie du dem Log entnehmen kannst fehlt auf jeden Fall der Handler für SSL Requests SSLeay...
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Elbwurm am 09 August 2017, 17:51:10
Leider fehlt mir da das nötige Knowhow

Folgendes habe ich jetzt gemacht.

https://picload.org/view/rwapplwi/perl.jpg.html (https://picload.org/view/rwapplwi/perl.jpg.html)

In wie weit das Sinn macht... Ich habe keine Ahnung.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: hillbicks am 10 August 2017, 10:32:29
Kurze Verstaendnisfrage.

Zitat
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.

Gibt es eine Uebersicht welche Player das genau sind? Hintergrund der Frage ist das ich ueberlege wie ich am besten Multiroom Audio abbilden kann und hatte ueberlegt ob ich da auf die Chromecast Audio Devices setzen kann (per TOSLINK an die beiden Verstaerker angeschlossen). Ein User schrieb jetzt allerdings hier schon das er seine Chromecast Devices nicht findet.

Kann mir jemand sagen ob die Chromecast Devices von dem Modul unterstuetzt werden und wenn ja, kann auch eine Gruppe von Chromecast Devices angesprochen werden? Das waere dann eine ziemlich gute Multiroom Audio Loesung.

Danke euch schonmal
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Elbwurm am 13 August 2017, 18:35:54
Leider fehlt mir da das nötige Knowhow

Folgendes habe ich jetzt gemacht.

https://picload.org/view/rwapplwi/perl.jpg.html (https://picload.org/view/rwapplwi/perl.jpg.html)

In wie weit das Sinn macht... Ich habe keine Ahnung.

So, ich hake da jetzt nochmals ein...

Vorab, es läuft.

Ich habe einen neuen Server aufgesetzt und einfach mal activeperl für Windows versucht.
Siehe da, keinerlei Probleme.

Auslöser war letztendlich ein weiteres Problem bei der Installation beim 38_Broadlink.pm Modul.
Da hat es auch gehakt. Ich habe es auf den Versuch ankommen lassen.

Keine Ahnung ob es jetzt am Strawberry oder an der Portable-Version lag, auf jeden Fall läuft das Spotify-Modul jetzt.
Dann sehe ich mir die Möglichkeiten mal in aller Ruhe an.

Danke vorerst für dieses Modul.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: dominik am 13 August 2017, 22:04:44
Danke auch für das tolle Modul! Ein Punkt irritiert mich noch etwas. Die Devices ändern sich bei mir immer wieder. In der Spotify App habe ich ca. 6 Geräte angezeigt (BOSE, Chromecast, Google Home, etc.). Im Modul habe ich aber meistens nur 2-3 Geräte. Sobald ich auf einem unbekannten Device abspiele, erscheint es dann aber auch als Device.
Etwas umständlich finde ich, dass sich die Device Nummer immer ändert. Daher bringt das Ansteuern per Device Id wenig, weil man nie sicher sein kann welche es ist. Vielleicht gibt es hier eine bessere Lösung?

@hillbicks, ja, auch Google Cast Devices werden angezeigt - bei mir aber nicht immer. Du kannst Cast Devices (inkl. Multiroom) auch über 98_GOOGLECAST.pm steuern - hab ich gestern veröffentlicht. In Kombination mit dem Spotify Modul hier ist das genial.

Gruß
Dominik
Titel: Antw:[Neues Modul] Spotify
Beitrag von: hillbicks am 14 August 2017, 18:50:23
@Dominik: Meine Chromecast Audio sind grade angekommen und in Betrieb. Ich stelle aber das gleiche Phaenomen fest wie Du, die verfuegbaren Devices aendern sich. Ueber die Spoitify Android App sehe ich sowohl alle drei Chromecast Audio Devices als auch die beiden Gruppen die ich angelegt habe. Wenn ich darueber die Gruppe ansteuer taucht diese auch im Reading auf. Wenn ich dann auf einzelnes Geraet wechsel und dann ein transferplayback auf die vorherige Gruppe anstosse, dann bekomme ich leider ein "SPOTIFY: request failed: Device not found"

Woher kriegt das Modul eigentlich die verfuegbaren Devices? Direkt von Spotify selbst? Muss eigentlich da sich der fhem Server und meine Chromecast Devices und Smartphone in komplett unterschiedlichen Subnetzen befinden, das Smartphone aber gefunden wird.

Wenn wir hier etwas zum debuggen beitragen koennen, ich stehe bereit :)

@Nochmal Dominik: Ja, das ist das naechste was ich mir ansehen werde. Das wird aber sicher etwas tricky werden die Devices richtig in fhem einzubinden weil sie eben in einem anderen subnetz sind.   
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 14 August 2017, 18:53:51
Hallo zusammen,

wie bereits erwähnt nutzt das Modul die Spotify Web API und nicht die deutlich aufwändigere Multicast Erkennung im lokalen Netzwerk.
Dementsprechend werden nur Geräte gefunden, die eine bestehende Login-Verbindung zu Spotify haben - manche Geräte wie der Echo Dot sind dauerhaft angemeldet, andere melden sich ab, sobald sie nicht mehr aktiv sind.

Falls jemand Interesse hat, die Multicast Steuerung zu implementieren, kann dieser sich gerne das Projekt hier anschauen: https://github.com/badfortrains/spotcontrol (https://github.com/badfortrains/spotcontrol)

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: bjoernbo am 04 September 2017, 10:07:05
kurze Frage: Funktioniert das ganz auch mit einem Spotify-Free Acount oder muss man den Premium Account besitzen?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 04 September 2017, 10:12:13
kurze Frage: Funktioniert das ganz auch mit einem Spotify-Free Acount oder muss man den Premium Account besitzen?
Hey Jürgen,

leider funktionieren die meisten Funktionen tatsächlich nur mit einem Spotify Premium Account...
Fast die gesamte API ist darauf beschränkt.

Liebe Grüße
Oskar

Ich bin mal so frei.
Gruß
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 10 September 2017, 18:23:45
Hey Oskar,
kurze Frage. Wäre es möglich, dem Play Befehl noch eine Lautstärke mit zu geben?

So nach dem Motto :

set Spotify playPlaylistByName 30 Good Vibes aa73b249aaf808822d2b45c183c261d3cd939672
Man achte auf die 30 vor Good Vibes!

Danke nochmal für dein Modul!

Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Macx am 13 September 2017, 08:54:21
Hey, das mit der Lautstärke hab ich bei mir so geregelt :)

Zitat
([ZWave_WALL_CONTROLLER_7:"cSceneSet: 6"]) (set Spotify playContextByURI https://open.spotify.com/user/xxxx xxxxxx) (set Kinderzimmer.chromecast volume 7)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 13 September 2017, 09:08:28
Hey, das mit der Lautstärke hab ich bei mir so geregelt :)

Vom Prinzip halte ich das für eine eher unpraktische Lösung. Gerade heute morgen so passiert. Habe gestern Abend beim Duschen die Musik etwas lauter aufgedreht, und dann vergessen sie wieder leiser zu machen. Hätte heute morgen beinahe nen Salto aus dem Bett gemacht. Sprich, wie ist denn die Verzögerung vom Abspielen bis zum Leiser werden?

Gruß
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Macx am 13 September 2017, 09:27:57
Bei dem Scenario spielt es die Einschlafmusik meiner Tochter ab ... Lautstärke 7 reicht hier für mich völlig ... Ich habe auch noch eine Taste für Radio Fritz auf allen Lautsprechern, die vorher auch alle Lautstärke 20 bekommen, somit kann es eigentlich nie zu zu lauten/leisen Aktionen kommen :)

War ja auch nur eine Idee ;)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 13 September 2017, 12:48:30
Hallo zusammen,

ich würde ungern bestehende Befehle miteinander vermischen und etablierte Syntax ändern.
In diesem Fall würde ich wirklich einfach vorschlagen, die Abspiellautstärke vor Beginn des Playbacks immer zu setzen - um sicher zu gehen kannst du das Playback ja auch erst 1-2 Sekunden später starten.
In der Regel sollte es aber passen, wenn du es sequentiell machst.

LG
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 13 September 2017, 14:12:33
Hallo zusammen,

ich würde ungern bestehende Befehle miteinander vermischen und etablierte Syntax ändern.
In diesem Fall würde ich wirklich einfach vorschlagen, die Abspiellautstärke vor Beginn des Playbacks immer zu setzen - um sicher zu gehen kannst du das Playback ja auch erst 1-2 Sekunden später starten.
In der Regel sollte es aber passen, wenn du es sequentiell machst.

LG

Ich nehme alles zurück, und behaupte das Gegenteil. Ich dachte, dass es nur möglich ist die Lautstärke des aktuell abspielenden Gerätes zu ändern. Habe gerade in der Commandref gesehen, das es auch unabhängig geht.

Sorry für die Unruhe.

Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: tklein am 13 September 2017, 18:00:21
Hallo,

ich verzweifel greade daran, ein bestimmtes Lied auf dem Echo zu starten. Eingerichtet ist alles.

Hier der Link zum Lied (Teilenfunktion): https://open.spotify.com/track/2pgYlzjkKrGH7McMiwWpEL?si=10lSFmAa

Habe diese Varianten ausprobiert:

set Spotify_TK playContextByURI spotify:track:2pgYlzjkKrGH7McMiwWpEL 33d9f5b10ca06ade25......
--> Spotify_TK: request failed: Non supported context uri

set Spotify_TK playContextByURI 2pgYlzjkKrGH7McMiwWpEL 33d9f5b10ca06ade25......
--> Spotify_TK: request failed: Invalid context uri

set Spotify_TK playContextByURI track:2pgYlzjkKrGH7McMiwWpEL 33d9f5b10ca06ade25......
--> Spotify_TK error_description: Invalid context uri

set Spotify_TK playContextByURI https://open.spotify.com/track/2pgYlzjkKrGH7McMiwWpEL?si=10lSFmAa 33d9f5b10ca06ade25......
-->
2017.09.13 17:53:04 3 : Spotify_TK: request failed: Non supported context uri
2017-09-13 17:53:04 Spotify Spotify_TK error_code: 400
2017-09-13 17:53:04 Spotify Spotify_TK error_description: Non supported context uri

wie muss ich den Aufruf korrekt starten?

Freue mich auf Hilfe/Feedback

Grüße
Thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 13 September 2017, 18:05:57
Lieber Thomas,

eine vollständige Spotify URI beginnt immer mit spotify: -  das erklärt, warum Beispiel 2 - 4 nicht funktionieren.
Zusätzlich versuchst du bei 1. & 3. einen einzelnen Track abzuspielen, dafür musst die die vollständige URI mit playTrackByURI verwenden.

Um nun das gesamte Album abzuspielen verwende set <name> playContextByURI spotify:album:2J5Lf1s0Q42e31xjSwVd8J <device_id>
Das es sich hierbei um eine passende URI handelt, siehst du ebenfalls an spotify:album.

LG
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: tklein am 13 September 2017, 18:49:04
Hi Oskar,

vielen lieben Dank für deine superschnelle Hilfe. Jetzt kann ich das Lied auf dem Device abspielen. Allerdings nur, wenn es vorher aktiv gewesen ist. Sonst passiert leider nichts.
Muss ich da evtl das defaultPlaybackDeviceID wieder löschen?

Mit dem Modul ist es jetzt möglich Alexa zum "reden" zu bringen. :-)

Sobald meine Fritzbox-Anruferliste einen Anruf signalisiert, werde ich per spotify einen Rington abspielen.
Vielleicht gibt es ja noch weitere Ansagen wie Alarm, Stauwarnung etc. Werde da mal Spotify durchsuchen.
Auf allen ID kann ich nicht gleichzeitig das gleiche abspielen, oder?

Viele Grüße
Thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 13 September 2017, 19:35:09
Sobald meine Fritzbox-Anruferliste einen Anruf signalisiert, werde ich per spotify einen Rington abspielen.
Vielleicht gibt es ja noch weitere Ansagen wie Alarm, Stauwarnung etc. Werde da mal Spotify durchsuchen.
Auf allen ID kann ich nicht gleichzeitig das gleiche abspielen, oder?

Viele Grüße
Thomas


Klar kannst Du. Schaff dir für jedes Endgerät ein Spotify Premium Account an. Und leg für jedes Gerät bzw Account ein Spotify Device an.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: tklein am 14 September 2017, 11:33:38
ok, danke. Habe ich mir schon gedacht.

Jetzt habe ich immer noch das Problem, dass ich keine Ausgabe auf meinem Echo bzw. Echo Dot habe. In den GUI's (Desktop, App) zeigt er mir an, das dort abgespielt wird. Es kommt aber kein Ton an bzw raus. Ja es ist nicht stumm und die Lautstärke ist nicht 0 :-)

setstate Spotify_TK 2017-09-14 10:28:00 device_1_id 7c7aed7f69a99dd45877a19..
setstate Spotify_TK 2017-09-14 10:28:00 device_1_name Thomas' Echo Dot
setstate Spotify_TK 2017-09-14 10:28:00 device_1_type Speaker
setstate Spotify_TK 2017-09-14 10:28:00 device_1_volume 80

setstate Spotify_TK 2017-09-14 10:28:00 device_2_id 3854157b19d748ea2..
setstate Spotify_TK 2017-09-14 10:28:00 device_2_name Thomas' Echo
setstate Spotify_TK 2017-09-14 10:28:00 device_2_type Speaker
setstate Spotify_TK 2017-09-14 11:22:52 device_2_volume 48

setstate Spotify_TK 2017-09-14 10:57:52 device_3_id 835b71aa3d550d40f5af6..
setstate Spotify_TK 2017-09-14 10:57:52 device_3_name HPLAPTOPKLEIN
setstate Spotify_TK 2017-09-14 10:28:00 device_3_type Computer
setstate Spotify_TK 2017-09-14 10:57:52 device_3_volume 46

setstate Spotify_TK 2017-09-14 10:57:52 device_4_id 4ff687d87d4480a3054..
setstate Spotify_TK 2017-09-14 10:57:52 device_4_name PC
setstate Spotify_TK 2017-09-14 10:57:52 device_4_type Computer
setstate Spotify_TK 2017-09-14 10:57:52 device_4_volume 53

setstate Spotify_TK 2017-09-14 11:22:52 device_5_id 33d9f5b10ca06ade25ca..
setstate Spotify_TK 2017-09-14 11:22:52 device_5_name thomas.klein’s iPhone 5s
setstate Spotify_TK 2017-09-14 11:22:52 device_5_type Smartphone

setstate Spotify_TK 2017-09-14 11:24:18 device_active_id 3854157b19d748ea263..
setstate Spotify_TK 2017-09-14 11:24:18 device_active_name Thomas' Echo
setstate Spotify_TK 2017-09-14 11:24:18 device_active_type Speaker
setstate Spotify_TK 2017-09-14 11:24:18 device_active_volume 48

Das Lied wird auch nicht auf das gewünschte gewechselt.

Wenn ich das iPhone oder meinen Laptop/PC ansteuere, höre ich das entsprechende gewünschte Lied.

Verwirrte Grüße
Thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AmunRe am 14 September 2017, 20:19:12
ok, danke. Habe ich mir schon gedacht.

Jetzt habe ich immer noch das Problem, dass ich keine Ausgabe auf meinem Echo bzw. Echo Dot habe. In den GUI's (Desktop, App) zeigt er mir an, das dort abgespielt wird. Es kommt aber kein Ton an bzw raus. Ja es ist nicht stumm und die Lautstärke ist nicht 0 :-)

setstate Spotify_TK 2017-09-14 10:28:00 device_1_id 7c7aed7f69a99dd45877a19..
setstate Spotify_TK 2017-09-14 10:28:00 device_1_name Thomas' Echo Dot
setstate Spotify_TK 2017-09-14 10:28:00 device_1_type Speaker
setstate Spotify_TK 2017-09-14 10:28:00 device_1_volume 80

setstate Spotify_TK 2017-09-14 10:28:00 device_2_id 3854157b19d748ea2..
setstate Spotify_TK 2017-09-14 10:28:00 device_2_name Thomas' Echo
setstate Spotify_TK 2017-09-14 10:28:00 device_2_type Speaker
setstate Spotify_TK 2017-09-14 11:22:52 device_2_volume 48

setstate Spotify_TK 2017-09-14 10:57:52 device_3_id 835b71aa3d550d40f5af6..
setstate Spotify_TK 2017-09-14 10:57:52 device_3_name HPLAPTOPKLEIN
setstate Spotify_TK 2017-09-14 10:28:00 device_3_type Computer
setstate Spotify_TK 2017-09-14 10:57:52 device_3_volume 46

setstate Spotify_TK 2017-09-14 10:57:52 device_4_id 4ff687d87d4480a3054..
setstate Spotify_TK 2017-09-14 10:57:52 device_4_name PC
setstate Spotify_TK 2017-09-14 10:57:52 device_4_type Computer
setstate Spotify_TK 2017-09-14 10:57:52 device_4_volume 53

setstate Spotify_TK 2017-09-14 11:22:52 device_5_id 33d9f5b10ca06ade25ca..
setstate Spotify_TK 2017-09-14 11:22:52 device_5_name thomas.klein’s iPhone 5s
setstate Spotify_TK 2017-09-14 11:22:52 device_5_type Smartphone

setstate Spotify_TK 2017-09-14 11:24:18 device_active_id 3854157b19d748ea263..
setstate Spotify_TK 2017-09-14 11:24:18 device_active_name Thomas' Echo
setstate Spotify_TK 2017-09-14 11:24:18 device_active_type Speaker
setstate Spotify_TK 2017-09-14 11:24:18 device_active_volume 48

Das Lied wird auch nicht auf das gewünschte gewechselt.

Wenn ich das iPhone oder meinen Laptop/PC ansteuere, höre ich das entsprechende gewünschte Lied.

Verwirrte Grüße
Thomas


Wie steuerst Du denn an?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: tklein am 14 September 2017, 21:54:38
Hi,

mit
set Spotify_TK pause
set Spotify_TK playTrackByURI spotify:track:2pgYlzjkKrGH7McMiwWpEL 3854157b19d748ea2632fcd54....

Gruß
Thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: jpp am 16 September 2017, 13:23:40
Servus!

Ein dickes Dankeschön erst mal für das Modul, damit kann man wirklich schön spielen und es hat die Weckroutine defintiv verbessert :)

Aktuell behelfe ich mir mit einem DOIF und manuell eingetragenen Playlisten, damit ich bequem aus der Weboberfläche und aus anderen Aktionen heraus Playlisten starten kann. Habe den Code unten mal angehangen, vllt. kann ihn ja wer gebrauchen.

Besteht evtl. die Möglichkeit in das Spotify Modul ein get für Playlisten zu ergänzen? Bzw. noch besser ein reading oder mehrere mit Unterscheidung zwischen allen und selbst erstellten. So weit ich das verstanden habe, bietet die API dazu verschiedene get-playlist befehl an: https://developer.spotify.com/web-api/get-playlist/ (https://developer.spotify.com/web-api/get-playlist/)
Die man dann anhand der owner property splitten kann bzw. separat abrufen kann. Aber da hört es dann leider bei mir mit den Programmierkenntnissen aber schon auf...

define Spotify Spotify DUMMY  DUMMY
attr Spotify alwaysStartOnDefaultDevice 1
attr Spotify cmdIcon toggle:rc_PLAY next:rc_NEXT prev:rc_PREVIOUS
attr Spotify defaultPlaybackDeviceID DUMMY
attr Spotify icon audio_sound
attr Spotify stateFormat track_artist_name - track_name (is_playing)
attr Spotify webCmd toggle:prev:next:shuffle
attr Spotify webCmdLabel &nbsp;;:&nbsp;;:&nbsp;;:Shuffle&nbsp;;

define di_spotplay DOIF ([di_spotplay:Elektro])\
(set Spotify shuffle on, set Spotify playContextByURI spotify:user:DUMMY:playlist:DUMMY, set Spotify skipToNext)\
DOELSEIF\
([di_spotplay:Rock])\
(set Spotify shuffle on,set Spotify playContextByURI spotify:user:DUMMY:playlist:DUMMY,set Spotify skipToNext)\
DOELSEIF\
...
attr di_spotplay alias Playlist
attr di_spotplay cmdState Elektro|Rock|...
attr di_spotplay icon edit_copy
attr di_spotplay readingList state
attr di_spotplay setList state:Keine,Elektro,Rock,...
attr di_spotplay stateFormat &nbsp;;
attr di_spotplay webCmd state
Titel: Antw:[Neues Modul] Spotify
Beitrag von: LeoSum am 17 Oktober 2017, 22:20:00
Hi Oskar,

nun hat es mich endlich genug gestört, mit librespot kein shuffle nutzen zu können, dass ich mir das mal angesehen habe.

Ich habe deine funktion "Spotify_playRandomTrackFromPlaylistByURI" entwas abgewandelt und daraus "Spotify_randomPlayPlaylistByURI" gemacht. Sieht dann so aus:

sub Spotify_randomPlayPlaylistByURI($$$$) { # play the playlist in random order
my ($hash, $uri, $limit, $device_id) = @_;
my $name = $hash->{NAME};
return 'wrong syntax: set <name> randomPlayPlaylistByURI <playlist_uri> [ <limit> ] [ <device_id> ]' if(!defined $uri);

my ($user_id, $playlist_id) = $uri =~ m/user:(.*):playlist:(.*)/;
return 'invalid playlist_uri' if(!defined $user_id || !defined $playlist_id);

$device_id = $limit . (defined $device_id ? " " . $device_id : "") if(defined $limit && $limit !~ /^[0-9]+$/);
$limit = undef if($limit !~ /^[0-9]+$/);

Spotify_apiRequest($hash, "users/$user_id/playlists/$playlist_id/tracks?fields=items(track(name,uri))". (defined $limit ? "&limit=$limit" : ""), undef, 'GET', 1);
my $result = $hash->{helper}{dispatch}{json}{items};
return 'could not find playlist' if(!defined $result);

my @uris = map { $_->{track}{uri} } @{$result};
@uris = shuffle(@uris);
$hash->{helper}{skipTrackLog} = 1;
Spotify_playTrackByURI($hash, \@uris, $device_id);
Log3 $name, 4, "$name: playing $uri in random order";
return undef;
}

oben brauchen wir hierzu noch ein use List::Util qw/shuffle/; und natürlich in der "Spotify_Set" Funktion ein return Spotify_playRandomTrackFromPlaylistByURI($hash, $args[0], $args[1], defined $args[2] ? join(' ', @args[2..$#args]) : undef) if($cmd eq 'playRandomTrackFromPlaylistByURI');
Funktioniert bei mir wunderbar!
Kannst du das integrieren? Hier waren glaube ich auch noch andere die unter der librespot limitierung gelitten haben.

Danke nochmal für das tolle Modul!

Gruß
Leo
Titel: Antw:[Neues Modul] Spotify
Beitrag von: borsTiHD am 16 Dezember 2017, 19:53:30
Hallo zusammen, Hallo Oskar,

erstmal danke das du hier dieses Modul anbietest.
Ich bin frisch mit FHEM eingestiegen und versuche gerade interessante Dinge für mich zu finden.
Bei mir im Netzwerk steht ein Onkyo AVR den ich bereits eingebunden habe. Auch in den Spotify Modus kann ich wechseln, aber leider keine Playlist beispielsweise starten. Jetzt bin ich auf dein Spotify Modul aufmerksam geworden und würde das gerne nutzen, in der Hoffnung das ich dadurch Spotify über FHEM auf meinem Onkyo starten kann.

Folgendes Problem habe ich, wie bekomme ich das Spotify Modul überhaupt in FHEM?
Wenn ich nach folgendem Muster versuche zu definieren bekomme ich nur folgende Fehlermeldung:
define Spotify Spotify  xxx xxx
Unknown module Spotify

Könnte mir bitte jemand helfen?
Danke. :)

Auch direkt die Frage als Neuling, sind die Module in der Commandref alle bereits vorinstalliert, oder muss man gewisse Module sich nachholen?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 16 Dezember 2017, 19:55:37
Hey!

gerne - die Module werden alle installiert, jedoch musst du regelmäßig Updates machen mit dem Befehl
update all
Lg
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: borsTiHD am 16 Dezember 2017, 20:53:40
Danke dir für die schnelle Antwort.  ;D
Nach dem Update und einem Restart hat alles funktioniert. :)

Wobei ich der Meinung bin, ich hab bereits nach der ersten FHEM Einrichtung schonmal ein Update gemacht, samt Neustart.  ???
Wie dem auch sei, vielen Dank für deine schnelle Hilfe und mach weiter so. :D

 
Titel: Antw:[Neues Modul] Spotify
Beitrag von: MrTom am 17 Dezember 2017, 20:50:58
Hallo zusammen

ich habe das Modul Spotify zusammen mit einem Raspberry Pi und installiertem spotify-connect (von hier: https://github.com/Fornoth/spotify-connect-web) in Betrieb genommen. Das Ganz läuft ausgesprochen gut und begeistert mich. Merci Oskar für das tolle Modul.

Einen Issue habe ich jedoch noch: die Laufstärke-Regelung. Ich kann die Lautstärke mit "set <device> volume 10" einstellen, auch lauter und leiser geht mit diesem Befehl. Ebenfalls funktioniert das Ganze mit dem "volumeFade"-Befehl. Jedoch mit den beiden Befehlen "volumeDown/volumeUp" springt die Lautstärke jeweils auf 100 und lässt sich nicht einstellen. Auch der Versuch mit "volumeDown 20" ändert die Lautstärke nur auch 100. Die Verwendung von der Vorgabe "VolumeStep" bringt keine Verbesserung.

Hat jemand eine Lösung für mein Problem? Stimmt was mit meiner Konfig nicht?

Gruss und Danke
Thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: accessburn am 20 Dezember 2017, 21:21:03
Huhu,
ich hab ein Problem mit alwaysStartOnDefaultDevice. Scheinbar ist mein Echo nicht das Standardgerät, wie ändere ich das? Denn bei "alwaysStartOnDefaultDevice" kann ich 0 oder 1 wählen, davon bringt nichts eine Veränderung.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: SteFanShepherd am 28 Dezember 2017, 11:21:19
Hallo allerseits,

auch ich habe das Modul Spotify ausgetestet. Ergebnis - Total happy!!
Vielen lieben Dank dafür!

Die Lautstärkeregelung über die set Befehle volumeDown / volumeUp funktionieren bei mir jedoch auch nicht, wie bei MrTom...
Auch bei mir springt die Lautstärkeregelung immer auf 100...
Ist eher nebensächlich, da ich die Lautstärke eh an den Endgeräten ein bzw. verstellen will.

Wenn hier jemand helfen kann wäre es schön, wenn nicht, wenig tragisch  ;)

Grüße und allen zusammen einen Guten Rutsch
Stefan
Titel: Antw:[Neues Modul] Spotify
Beitrag von: setstate am 30 Dezember 2017, 10:23:02
gibt es schon etwas neues bezüglich Aufwachen des Devices? Speziell enrikb hatte da schon ein paar gute Ansätze in Richtung action=addUser
Ich hatte gehofft mit dem Aufrufe <IP>:<port>?action=getInfo bekommt man librespot dazu, die Connection zum Server neu aufzubauen.
Leider klappt das nur beim Restart des Services. Es meldet sich zwar des Device mit den Infos, aber nur lokal. Man kann aber nicht vor jeder Neu-Nutzung des Modules nach einer Zeit von x-Stunden den Service durchstarten müssen.

Ich würde gerne von MPD-Modul zum Spotify-Modul wechseln, weil das hätte den Vorteil, dass man gleichzeitig auf dem Telefon bedienen kann und die Suche besser zu Implementieren wäre. Die Anzeige der Playlists habe ich schon für FTUI gebaut, aber es macht keinen Sinn wenn man am nächsten Tag keine Playlist mehr starten kann, weil das Device nicht mehr verfügbar ist.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: mcfhem am 05 Januar 2018, 13:06:07
Kann ich über das Modul auch die Applikation "Spotty" auf der Squeezebox Touch steuern? (die original Spotify-Applikation wird ja von der SB nicht mehr unterstützt)

Hat schon jemand eine Tablet UI-Ansicht zum Modul entwickelt?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: setstate am 05 Januar 2018, 13:38:37
Ich habe schon den Player mit Cover, Fortschrittsanzeige, Play, Forward, Next usw.
Dafür habe ich einfach die MPD Variante auf die neuen Readings geändert.
Playlist Anzeige als Dropdown-Menü oder als Cover-Kacheln habe ich auch schon. Dafür müsste ich aber das Spotify Modul erweitern. Das ganze würde ich aber erst veröffentlichen, wenn ich etwas weiter bin. Suche und aktuelle Playlist möchte ich noch einbauen. Dafür wird es dann ein FTUI Spotify Widget geben.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Diablo_III am 06 Januar 2018, 17:15:54
Hallo,

ich habe das Spotify-Modul zum laufen bekommen. Vielen Dank dafür.
Was ich aber nicht hinbekomme ist ein Radiosender laufen zu lassen. Ich finde Hierfür enfach keine passende URI.
Gibt es sowas oder bin ich hier suf dem falschen weg?

Kann mir jemand weiterhelfen?

Danke :-)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: accessburn am 07 Januar 2018, 15:23:36
Ich habe schon den Player mit Cover, Fortschrittsanzeige, Play, Forward, Next usw.
Dafür habe ich einfach die MPD Variante auf die neuen Readings geändert.
Playlist Anzeige als Dropdown-Menü oder als Cover-Kacheln habe ich auch schon. Dafür müsste ich aber das Spotify Modul erweitern. Das ganze würde ich aber erst veröffentlichen, wenn ich etwas weiter bin. Suche und aktuelle Playlist möchte ich noch einbauen. Dafür wird es dann ein FTUI Spotify Widget geben.

Wärst du so lieb es zu teilen :-)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Flipper92 am 09 Januar 2018, 20:56:33
Hey zusammen,

kann mir jemand helfen?
Ich hab folgendes Problem:
Wenn ich den AUTHORIZATION_URL eingebe, kann ich mich zwar mit Spotify anmelden, aber ich komme nicht weiter als die Abfrage ob ich die App mit Spotify verbinden möchte.
Nach einem klick auf OK passiert jedoch nichts.
Woran könnte es liegen?

Gruß Flipper
Titel: Antw:[Neues Modul] Spotify
Beitrag von: red81 am 17 Januar 2018, 09:16:36
Hallo, bei mir klappt die Autorisierung leider auch nicht. Wenn ich den Link Aufrufe kann ich mich anmelden, bekomme aber dann nur die Nachricht "Something gone wrong"
Titel: Antw:[Neues Modul] Spotify
Beitrag von: DanqerClose am 22 Januar 2018, 11:45:52
Schon jemand weiter gekommen mit dem thema volumedown, dass die Lautstärke immer auf 100% steigt?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: kaihs am 29 Januar 2018, 20:40:14
Ich habe immer wieder Warnungen wegen nicht initialisierter Variablen im Log,

Beispiele:
2018.01.15 21:38:21 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4399.
2018.01.15 21:38:21 1: stacktrace:
2018.01.15 21:38:21 1:     main::__ANON__                      called by fhem.pl (4399)
2018.01.15 21:38:21 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/37_Spotify.pm (958)
2018.01.15 21:38:21 1:     main::Spotify_saveDevice            called by ./FHEM/37_Spotify.pm (863)
2018.01.15 21:38:21 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (576)
2018.01.15 21:38:21 1:     main::__ANON__                      called by fhem.pl (684)

2018.01.18 18:26:25 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4399.
2018.01.18 18:26:25 1: stacktrace:
2018.01.18 18:26:25 1:     main::__ANON__                      called by fhem.pl (4399)
2018.01.18 18:26:25 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/37_Spotify.pm (848)
2018.01.18 18:26:25 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (576)
2018.01.18 18:26:25 1:     main::__ANON__                      called by fhem.pl (684)

2018.01.18 18:27:23 1: PERL WARNING: Use of uninitialized value in division (/) at ./FHEM/37_Spotify.pm line 849.
2018.01.18 18:27:23 1: stacktrace:
2018.01.18 18:27:23 1:     main::__ANON__                      called by ./FHEM/37_Spotify.pm (849)
2018.01.18 18:27:23 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (576)
2018.01.18 18:27:23 1:     main::__ANON__                      called by fhem.pl (684)

2018.01.28 09:49:17 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4424.
2018.01.28 09:49:17 1: stacktrace:
2018.01.28 09:49:17 1:     main::__ANON__                      called by fhem.pl (4424)
2018.01.28 09:49:17 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/37_Spotify.pm (958)
2018.01.28 09:49:17 1:     main::Spotify_saveDevice            called by ./FHEM/37_Spotify.pm (863)
2018.01.28 09:49:17 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (576)
2018.01.28 09:49:17 1:     main::__ANON__                      called by fhem.pl (686)

Zumindest die ersten drei entstehen wohl, weil im empfangenen JSON nicht die erwarteten Werte stehen,

Ich habe einen Spotify Premium Account, irgendeine Idee woran das liegen könnte?
Evtl. müsste der Code robuster gestaltet werden weil nicht immer alle Werte von Spotify geliefert werden?

Titel: Antw:[Neues Modul] Spotify
Beitrag von: iSnoxX am 06 Februar 2018, 11:32:30
Hi,

Erst mal ein super Modul hat direkt alles funktioniert. Playlist wird direkt abgespielt beim drücken des DashButtons.
Nur bekomme ich es nicht hin das zufällig ein titel von der liste genommen wird. Entweder wird zufällig ein titel abgespielt und dann muss ich erneut den Button drücken. Oder er spielt immer die liste gleich ab. Somit funktioniert auch der Wecker nicht wie er soll.
Und er soll nicht immer mit dem selben track beginnen.
Ich versuche das ganze über notify. Die lautstärke wird auch bei meinem wecker notify nicht übertragen so das der wecker die lautstärke langsam hochfährt bis zu einem eingestellten Maximum.


Hier ein bsp wo er die komplette playlist abspielt aber leider nicht zufällig. Mir ist klar das bei diesem bsp keine lautstärke übertragen wird.

DB_Manhattan_Spotify::.short set Spotify playContextByURI spotify:user:xxx:playlist PlayerID shuffle on

Scheinbar blicke ich das ganze noch nicht...bin auch ziemlich neu was FHEM betrifft und habe mir bestimmt die 10 seiten 20 mal angeschaut.
Ich bin mir ziemlich sicher das es sich hierbei um eine kleinigkeit handelt.

LG Thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: DarkT am 06 Februar 2018, 13:31:24
Ich wollte meinen Spotify App über die Web-Seite von dir (als redirect uri) verifizieren.
Als Antwort erhalte ich aber:

INVALID_CLIENT: Invalid redirect URI

Eine Idee woran es liegt?

Meine URL sieht so aus:

https://accounts.spotify.com/authorize/?client_id=e3cdae87e423473f8d79528d27215413&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=https%3a%2f%2foskar%2epw
Titel: Antw:[Neues Modul] Spotify
Beitrag von: DarkT am 06 Februar 2018, 13:40:08
Ich wollte meinen Spotify App über die Web-Seite von dir (als redirect uri) verifizieren.
Als Antwort erhalte ich aber:

INVALID_CLIENT: Invalid redirect URI

Eine Idee woran es liegt?

Meine URL sieht so aus:

https://accounts.spotify.com/authorize/?client_id=e3cdae87e423473f8d79528d27215413&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=https%3a%2f%2foskar%2epw

Hatte vergessen in meiner App die redirect-uri einzutragen. :)

ABER:

Selbst mit scheint es zur Zeit ein Problem zu geben, denn die redirect-Uri-Seite öffnet sich nicht:

https://oskar.pw/?code=AQA9_4H_xzlACMcUrUOkUeBck5me3yhm4N5qnb_c9f8P1t2azMlL6e0tNvwRM8Jp2dKNZhBr9_MPAe8lmg6JfT3nhByTEkzQWG859onzBvzyh2O-_lCd3bPgjSITPVYqk4mJtspyTWNIw5MM5AtMFzhLWZahbaG2r43ue6MrfocVYc_ZN40WHiW17juT5ywf8zG69pKuYKz_KTeQcV3vj3RCKZ1Uj6FbTwC-GQTPr88KlZRwZr4K27teopstTxHkQuI5C6LEaJAs9pwkF_C_qsTQatAGfaJTPUBT1ib6gAQucu-vRZdpSoCP9-W7_6ee5WdEdTxuEhDGIGcVliKCeynhoFXZjg

Habe mir den Code dann von Hand kopiert. Teste jetzt weiter. Danke erstmal
Titel: Antw:[Neues Modul] Spotify
Beitrag von: iSnoxX am 06 Februar 2018, 19:08:38
@darkt
Hatte das selbe problem...wenn du den link aus der FHEM kopierst zum Autorizieren wird am ende des links 2 leerzeichen mitkopiert. Diese entfernen und erneut versuchen dann klappt das ganze wunderbar.

Lg thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: benedikt-wue am 22 Februar 2018, 18:15:40
Hallo und Guten Abend zusammen,
vielen Dank erstmal für das Modul, das ich seit einigen Wochen in Verwendung habe und toll finde.
Abgesehen evtl. von meiner Unfähigkeit: bei mir werden die einzelnen Abspielgeräte nicht gespeichert, heisst, meine GoogleHomes werden immer wieder aus der Liste gelöscht. Auch ein Tablet, das ich in der Küche stehen habe, muss immer wieder "neu" erkannt werden, indem ich die App auf dem Tablet aufrufe.
Wenn ich das richtig verstanden, werden in dem Modul die gleichen Connect - Geräte wie z.B. in der Handy - App erkannt oder? Dort sind die oben genannten Geräte jederzeit angezeigt. Ich verstehe irgendwas falsch oder bin ich einfach nur bisschen doof?
Schöne Grüße
Ben
Titel: Antw:[Neues Modul] Spotify
Beitrag von: setstate am 22 Februar 2018, 18:34:33
Das Modul sieht nur die Geräte, die noch in der Spotify Cloud angemeldet sind. Manche Geräte gehen bei Nichtbenutzung in Standby und melden sich online ab. Das Spotify Modul bekommt diese dann nicht mehr von der WebApi gemeldet und kann diese damit nicht mehr ansprechen. Die Bedienung funktioniert eh komplett über die Cloud. Das Spotify Modul sagt Play und der Spotify Server schickt das wieder zu deinem Gerät runter. Wenn das schläft, kann der Server nix starten. Die Mobile App funktioniert anders. Sie findet die Geräte lokal und kann sie aufwecken. Da gibt es im Netz einige Beispiele, wie man diese Kommunikation mitlauscht und dann den gewonnen Token nutzen kann, um die Geräte lokal zu finden und zu steuern. Das hatte ich hier weiter oben auch schon mal angefragt, ob man das einbauen könnte. Aber der Entwickler ließt vermutlich hier nicht mehr mit.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kusselin am 23 Februar 2018, 12:53:33
Abgesehen evtl. von meiner Unfähigkeit:

Hallo Ben,
wieso machst Du dich hier selbst nieder?? Wieso sollst Du unfähig sein? Du bist nicht unfähig Du bist nur unerfahren und musst das Fhem verstehen lernen. Deswegen frage was das Zeug hält! das ist ein Forum das von Fragen und Antworten lebt!

Gruss
Kussel 
Titel: Antw:[Neues Modul] Spotify
Beitrag von: thebrain1984 am 09 März 2018, 21:48:38
Hallo zusammen,

ich weiß nicht ob jemand von euch, das gleich Problem hat wie ich oder ob es einfach nur nicht viel genutzt wird. Die "SET"-Option "playRandomTrackFromPlaylistByURI" funktioniert nicht (mehr) mir den URIs die man bekommt wenn man die Links die man beim "Teilen" bekommt als Argument mitgibt.

Ich hab mal ein wenig gebastelt und aus:

        my ($user_id, $playlist_id) = $uri =~ m/user:(.*):playlist:(.*)/;
        return 'invalid playlist_uri' if(!defined $user_id || !defined $playlist_id);

das gemacht:

        my ($user_id, $playlist_id) = $uri =~ m|user/([^/]*)/playlist/([^/]*)|;
        return 'invalid playlist_uri ' . $uri if(!defined $user_id || !defined $playlist_id);

@Neumann: Bitte vielleicht bei Gelegenheit mal prüfen und wenn es für gut befunden wird mit aufnehmen ;)

Danke!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: thebrain1984 am 09 März 2018, 23:22:05
[...]
Entweder wird zufällig ein titel abgespielt und dann muss ich erneut den Button drücken. Oder er spielt immer die liste gleich ab. Somit funktioniert auch der Wecker nicht wie er soll.
Und er soll nicht immer mit dem selben track beginnen.
[...]

Hallo Thomas,

ich hatte das gleiche Problem und habe mich ein wenig in das Modul eingearbeitet.
Ich nehme an, dass du für die zufällige Wiedergabe "playRandomTrackFromPlaylistByURI" verwendest. Das ist in der Tat so geschrieben, dass es genau einen Track spielen soll, ich nehme an deswegen heißt es auch "playRandomTrackFromPlaylistByURI" und nicht "playRandomTracksFromPlaylistByURI" oder "playPlaylistInRandomOrderByURI". Vermutlich könnte man es so umschreiben (oder eine neue "SET"-Funktion schreiben), die die Lieder in einer zufälligen Reihenfolge abspielt, allerdings so wie ich es sehe mit der Einschränkung (zumindest sehe ich im Moment keine andere Option), dass das erste Lied immer das gleiche wäre. Ziel wäre es nämlich "shuffle" zu aktivieren und das scheint wohl erst zu funktionieren, wenn die Playlist ausgewählt ist. Man könnte zwar direkt danach skippen, aber die ersten Sekunden wirst du wohl trotzdem mitbekommen.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: LeoSum am 15 April 2018, 14:11:09
schaut mal ein bisschen weiter zurück. Ich hatte einen Vorschlag für eine Modifikation gemacht, die genau das bewirkt was ihr sucht. Laut eigener Aussage hat Neumann das mittlerweile auch schon in der aktuellsten version integriert.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: benedikt-wue am 17 April 2018, 16:47:17
Hallo nochmals,
habe nach wie vor das "Problem", dass sich die Geräte abmelden. Ich habe mehrere GoogleHomes im Einsatz, die mit dem dafür vorgesehenen Modul super funktionieren. Sind sie mal per Sprache oder z.B. Handy - App gestartet, kann ich alles über das hier verfügbare Modul auch steuern, nur der Start funktioniert eben leider nicht. Plan wäre es, das ganze "Freundin - freundlich" zu gestalten... Sie drückt einen Button, auf dem eine Playlist für sie hinterlegt ist, sucht sich den Raum aus, wo diese abgespielt werden soll und schön ist :-) Hat da noch irgendjemand eine Idee? Zumal die Geräte in der Handy - App aus irgendwelchen Gründen sichtbar bleiben, auch wenn das Gerät längere Zeit nicht verwendet wurden. Vielleicht kann der Ersteller dieses Moduls da noch etwas herausfinden, wie die Abmeldung in der Cloud zu umgehen ist!?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Pr3mut05 am 20 April 2018, 06:11:48
OK - ich bin erst mal beruhigt das der Fehler nicht bei mir liegt.
Ich leide unter dem selben Problem.
Wenn ich automatisiert Spotify auf meinen Google home starten will, klappt das nicht. Erst wenn ich via App mal Musik "angestossen" habe
Titel: Antw:[Neues Modul] Spotify
Beitrag von: benedikt-wue am 23 April 2018, 13:52:25
Niemand hier, der da evtl noch ne Idee hätte? :-)

Gesendet von meinem ZTE BLADE V0800 mit Tapatalk

Titel: Antw:[Neues Modul] Spotify
Beitrag von: mrSnatz am 13 Mai 2018, 20:29:40
Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen. Das SpotifyModul konnte ich recht schnell einrichten. die suche nach Liedern oder Künstlern funktioniert auch. es wir entsprechend abgespielt und die readings passen auch. leider funktionieren

set volumeUp; volumeDown, Pause, next, prev nicht.

Hat einer eine idee woran das liegen könnte? hier ein Ausschnitt meines EventMonitor:

2018-05-13 20:25:45 Spotify Spotify volume 100
2018-05-13 20:25:46 Spotify Spotify progress_ms: 92189
2018-05-13 20:25:46 Spotify Spotify progress: 00:01:32
2018-05-13 20:25:57 Spotify Spotify progress_ms: 102393
2018-05-13 20:25:57 Spotify Spotify progress: 00:01:42
2018-05-13 20:25:59 Spotify Spotify is_playing: 0
2018-05-13 20:25:59 Spotify Spotify is_playing: 1
2018-05-13 20:25:59 Spotify Spotify progress_ms: 105186
2018-05-13 20:25:59 Spotify Spotify progress: 00:01:45
2018-05-13 20:26:02 Spotify Spotify progress_ms: 107381
2018-05-13 20:26:02 Spotify Spotify progress: 00:01:47

is_playing wird wenn ich auf Pause drücke gleich wieder von 0 auf 1 gesetzt. bei volume passiert garnichts.

Hoffe es kann mir jemand weiterhelfen
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 14 Mai 2018, 14:10:17
Hallo zusammen,

erstmal danke an alle, die das Modul soweit gebracht haben.

Musste gestern feststellen, dass auch bei mir einige Funktionen, wie bei mrSnatz, ins leere laufen. Bis vor kurzem ging es noch. Ist es ein generelles Problem?

Grüße

ThE

[...] es wir entsprechend abgespielt und die readings passen auch. leider funktionieren

set volumeUp; volumeDown, Pause, next, prev nicht.
[...]

Titel: Antw:[Neues Modul] Spotify
Beitrag von: mrSnatz am 15 Mai 2018, 08:42:48
ich hatte kurz mit Oskar geschrieben, scheint wohl an der api zu liegen. Er wollte sich das ganze mal die tage anschauen
Titel: Antw:[Neues Modul] Spotify
Beitrag von: benedikt-wue am 19 Mai 2018, 10:24:56
Könnte an dem (in meinen Augen nicht wirklich geglückten) Update von Spotify liegen, denke ich... Schade. Irgendwie nimmt Spotify zu wenig Rücksicht auf FHEM-User, die sich freuen, ein lauffähiges System zu haben :-D

Gesendet von meinem ZTE BLADE V0800 mit Tapatalk

Titel: Antw:[Neues Modul] Spotify
Beitrag von: raxor am 25 Mai 2018, 22:44:10
Ja sehr schade..
Titel: Antw:[Neues Modul] Spotify
Beitrag von: rip am 30 Mai 2018, 16:16:51
Bei mir selbes Problem, genau die wichtigen Funktionen (play/pause/next/volume) gehen nicht mehr :(
Gibt es vielleicht schon Info vom Entwickler ob sich das nach den Spotify Api Änderungen wieder reparieren lässt?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: setstate am 01 Juni 2018, 19:53:08
Im HTTP-Reply kann man den Grund erkennen:
Zitat
<p><b>411.</b> <ins>That’s an error.</ins>
  <p>POST requests require a <code>Content-length</code> header.

In der 37_Spotify.pm gibt es zwei PUT Aufrufe, die müssen dahingehend angepasst werden, sodass HttpUtils_NonblockingGet auch ein ContentLength in den Header einbaut.

vorher
Spotify_apiRequest($hash, 'me/player/pause', undef, 'PUT', 0);
nachher
Spotify_apiRequest($hash, 'me/player/pause', {}, 'PUT', 0);
vorher
Spotify_apiRequest($hash, 'me/player/play' . (defined $device_id ? "?device_id=$device_id" : ''), undef, 'PUT', 0);
nachher
Spotify_apiRequest($hash, 'me/player/play' . (defined $device_id ? "?device_id=$device_id" : ''), {}, 'PUT', 0);
Ändern, speichern und im FHEM das Spotify-Modul neu laden

reload 37_Spotify

Für Next und Previous noch etwas verdrehter:

Spotify_apiRequest($hash, 'me/player/previous', encode_json {}, 'POST', 0);
Volume Up/Down ging bei mir noch nie, aber wenn man die min / max Funktionen bei der Spotify_volumeStep rausschmeißt

sub Spotify_volumeStep($$$$) {
my ($hash, $direction, $step, $device_id) = @_;
my $name = $hash->{NAME};

$device_id = $step . (defined $device_id ? " ". $device_id : "") if(defined $step && $step !~ /^[0-9]+$/);
$step = $attr{$name}{volumeStep} if(!defined $step || $step !~ /^[0-9]+$/);
$step = 5 if(!defined $step);

my $nextVolume = undef;
if(defined $device_id) {
my @devices = @{$hash->{helper}{devices}};
foreach my $device (@devices) {
if(defined $device->{id} && $device->{id} eq $device_id) {
$nextVolume = $device->{volume_percent} + $step * $direction;
$device->{volume_percent} = $nextVolume;
}
}
} else {
$nextVolume = $hash->{helper}{device_active}{volume_percent} + $step * $direction;
        $hash->{helper}{device_active}{volume_percent} = $nextVolume;
}

return "could not find device" if(!defined $nextVolume);

Spotify_setVolume($hash, 0, $nextVolume, $device_id);

return undef;
}

und einen leeren $data-Parameter ({}) mitschickt, damit HttpUtils_NonblockingGet ein ContentLength in den Header einbaut, klappt auch das

Spotify_apiRequest($hash, "me/player/volume?volume_percent=$volume". (defined $device_id ? "&device_id=$device_id" : ''), {}, 'PUT', $block
Titel: Antw:[Neues Modul] Spotify
Beitrag von: rip am 02 Juni 2018, 15:51:53
Spitze, funktioniert! (nur Volume noch nicht getestet). Danke @setstate!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 06 Juni 2018, 07:54:07
Super setstate! Vielen Dank!

Analog dazu noch für Shuffle une Repeat:

Vorher - Shuffle:
Spotify_apiRequest($hash, "me/player/shuffle?state=$mode". (defined $device_id ? "&device_id=$device_id" : ""), undef, 'PUT', 0);
Nachher - Shuffle:
Spotify_apiRequest($hash, "me/player/shuffle?state=$mode". (defined $device_id ? "&device_id=$device_id" : ""), {}, 'PUT', 0);
Vorher - Repeat:
Spotify_apiRequest($hash, "me/player/repeat?state=$mode". (defined $device_id ? "&device_id=$device_id" : ""), undef, 'PUT', 0);
Nachher - Repeat:
Spotify_apiRequest($hash, "me/player/repeat?state=$mode". (defined $device_id ? "&device_id=$device_id" : ""), {}, 'PUT', 0);
Titel: Antw:[Neues Modul] Spotify
Beitrag von: mrSnatz am 08 Juni 2018, 09:56:35
Hi,

habe die 37_Spotify.pm entsprechend angepasst aber es gibt bei mir immernoch keine Änderung. Muss ich irgendetwas anderes noch beachten? noch etwas in der HttpUtils.pm oder wegen einer https Verbindung? Bei mir wird nur der Text und das Bild geändert wenn ich etwas von meinen Geräten abspiele. Eine Eingabe über fhem funktioniert aber nicht:((
Titel: Antw:[Neues Modul] Spotify
Beitrag von: CoolTux am 08 Juni 2018, 10:03:22
Das Modul neu laden

reload 37_Spotify.pm

oder FHEM neu starten.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: mrSnatz am 08 Juni 2018, 21:34:37
okay Fehler lag bei mir. Hatte die Datei mit dem Editor von Mobaxterm bearbeitet. Nachdem ich es dann via ssh gemacht habe klappt play Pause next und previus allerdings funktioniert das mit lauter und leiser noch nicht. habe wie oben beschrieben die Volume funktion einfach ausgeklammert mit #. und in der apiequest von volume  undef durch {} ersetzt. am ende habe ich $blocking); gelassen da nur block zu einer Fehlermeldung führt.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: raxor am 28 Juni 2018, 21:24:50
Vielen Dank! Klappt!

Nach dem gleichen Schema konnte ich bei mir auch folgende Probleme lösen:

setVolume für meinen volumeFade (Find ich eh besser als VolumeStep was bei mir auch nicht geht)
Vorher
Spotify_apiRequest($hash, "me/player/volume?volume_percent=$volume". (defined $device_id ? "&device_id=$device_id" : ''), undef, 'PUT', $blocking);NachherSpotify_apiRequest($hash, "me/player/volume?volume_percent=$volume". (defined $device_id ? "&device_id=$device_id" : ''), {}, 'PUT', $blocking);
seekToPosition für den Fortschritsbalken
Vorher
Spotify_apiRequest($hash, "me/player/seek?position_ms=$position", undef, 'PUT', 0);Nachher
Spotify_apiRequest($hash, "me/player/seek?position_ms=$position", {}, 'PUT', 0);
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ranseyer am 01 Juli 2018, 11:26:52
Danke für den Input. Mir haben diese Hinweise massiv geholfen !

PS: Blöd an der Sache finde ich: Wenn der Source in einem öffentlicheren Sourcecode-Management System liegen würde bräuchtet ihrt nur einen Pull-Request stellen, Oskar könnte die Änderung checken und mit wenif Aufwand übernehmen. (Oder andere die Änderung einfach nachvollziehen)

PPS: Was will ich damit sagen, ich würde sehr cool finden wenn der FHEM-Source etwas zeitgemäßer gemanaged würde, beispielsweise auf Basis der offenen GitLab-Lösung. (Und wer hätte es gedacht, GitLab setzt ja auch GIT auf :-) )
Titel: Antw:[Neues Modul] Spotify
Beitrag von: neumann am 09 Juli 2018, 18:04:04
Hey zusammen,

entschuldigt, ich war durch die Arbeit etwas eingespannt und habe das hier nicht so mitbekommen.
Ich habe eure Änderungen mit in das Modul aufgenommen und eingecheckt - könntet ihr kurz überprüfen, ob jetzt alles passt oder ob ich noch was vergessen habe?

Danke!

Lg
Oskar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Ranseyer am 09 Juli 2018, 18:11:39
Zitat
entschuldigt

Dazu gibt es wohl kaum nen Grund. Danke fürs Beheben !
Titel: Antw:[Neues Modul] Spotify
Beitrag von: forum-merlin am 17 August 2018, 13:40:13
Hi Oskar!

Danke dass du das Modul geschrieben hast.
Leider habe ich ein paar Problemchen und bin grad nicht sicher ob ich die 10.- EUR zum Fenster rausgeschmissen habe oder nicht.

Ich habe hier ein SONOS System mit so einigen Lautsprechern.
Sonos ist grundsätzlich lauffähig, und ich habe auch meinen Spotify Premium Account in der Sonos App eingetragen.
Ich kann jetzt von der Sonos app aus Spotify triggern, und auch aus der Spotify App heraus.

Ich bin dann so vorgegangen dass ich erst im Developer Dashboard (welches sich inzwischen etwas verändert hat) eine eigene FHEM app angelgt habe, und habe mir die Client ID und das Secret geholt.
Dann habe ich es in FHEM angelegt, und habe die Client ID und das Secret angegeben, und dann habe ich GET Auth URL geklickt, und dann diese im Browser aufgerufen.
(Im übrigen die Redirect URL von https://oskar.pw funktionierte bei mir nicht. Ich habe dann https://oskarneumann.de genommen.)
Dann habe ich das bestätigt, und den Code eingefügt und SET geklickt.

Nach einem Save habe ich dann einen refresh gemacht, und dann in den Readings geschaut.
Leider sehe ich die SONOS Devices nicht.

Ich habe dann mal aus der Spotify App heraus einen Song gestartet, udn dann habe ich das Sonos Device gesehen. Auch was gerade an Lautstärke gesetzt war etc.
Nur steuern aus FHEM heraus ging irgendwie nicht.
Da ich habe mehrere SONOS Speaker habe habe ich dann mal aus der Spotify app noch die anderen Speaker angesteuert, aber das Problem ist, dass ich in FHEM, im Spotify Gerät immer nur einen Player sehe. Nämlich genau den, der in der Spotify App auf dem z.B. Tablet getriggert wurde.
Meinen PC und die darauf laufende Sonos App sehe ich beispielsweise garnicht.

Was ich auch nicht verstehe ist eine error_description "Forbidden."

Fragen:
- sind aus Sicht deines Moduls die anzusprechenden Geräte die Spotify Connect Settings, oder die Geräte?
- stimmt die https://oskar.pw/ redirect URI überhaupt noch?
- warum sehe ich von 4  Sonos playern immer nur den einen den ich von der Tablet Spotify App agehakt hatte?
- was bedeutet der Forbidden error?`

defmod Spotify Spotify e17a873c87xxxxxxxxaef0aaaaa5 bdb46a17121246xxxxxxd9bbbbe7 https://oskarneumann.de/

setstate Spotify playing
setstate Spotify 2018-08-17 13:08:45 .access_token BQCfJlM52UU7XGjxxxxo-8z59OdcxyqtXfJI6BS_CHTddotxxxxxgseWWgQ8-8x1LY9O089yUZHXRxxxxxxxUolOIMvFExeUnWshJVtU5cvONIxxxxxxxxxB2QGXT4AD1uPPY1Oi1d6X6ftJp1XWy_LMaw7P9GeLctmoZZxxxxxxxxxeWTQDuT
setstate Spotify 2018-08-17 13:08:45 .expires 1534507725.81592
setstate Spotify 2018-08-17 13:08:45 .refresh_token AQCHq3lrNixxxxxw-FLjmHZr6_Oqv6JI-CuAdvVwN0ooN9-SND0FSwVz9xxxxxxxxxxpOmx5Spim9QOhex7c3Z-hVGL4eFGfDy0NioxxxxxxxxxxxxxxxxxxxxxxJKRIb98dTBYmE
setstate Spotify 2018-08-17 13:08:46 device_active_id none
setstate Spotify 2018-08-17 13:33:46 device_active_name Keller
setstate Spotify 2018-08-17 13:33:46 device_active_type Speaker
setstate Spotify 2018-08-17 13:33:46 device_active_volume 18
setstate Spotify 2018-08-17 13:08:46 devices_cnt 0
setstate Spotify 2018-08-17 13:12:20 error_code 403
setstate Spotify 2018-08-17 13:12:20 error_description Forbidden.
setstate Spotify 2018-08-17 13:33:46 is_playing 1
setstate Spotify 2018-08-17 13:35:47 progress 00:00:22
setstate Spotify 2018-08-17 13:35:47 progress_ms 22254
setstate Spotify 2018-08-17 13:08:46 repeat off
setstate Spotify 2018-08-17 13:08:46 shuffle off
setstate Spotify 2018-08-17 13:35:27 track_album_cover_large https://i.scdn.co/image/f0b48c9c54cdee56bc28641d75be717fc6f98bd6
setstate Spotify 2018-08-17 13:35:27 track_album_cover_medium https://i.scdn.co/image/124aefdc96c9fa9b40280bd7330f118b461782fa
setstate Spotify 2018-08-17 13:35:27 track_album_cover_small https://i.scdn.co/image/b9625f8ef5e05ee960e1988ca3e50ba03544ec91
setstate Spotify 2018-08-17 13:35:27 track_album_name Take Me Apart
setstate Spotify 2018-08-17 13:35:27 track_album_uri spotify:album:6pw1XPub1bSMq03ASVqRVu
setstate Spotify 2018-08-17 13:35:27 track_artist_name Kelela
setstate Spotify 2018-08-17 13:35:27 track_artist_uri spotify:artist:1U0sIzpRtDkvu1hXXzxh60
setstate Spotify 2018-08-17 13:35:27 track_duration 00:03:38
setstate Spotify 2018-08-17 13:35:27 track_duration_ms 218319
setstate Spotify 2018-08-17 13:35:27 track_name LMK
setstate Spotify 2018-08-17 13:35:27 track_popularity 52
setstate Spotify 2018-08-17 13:35:27 track_uri spotify:track:1D7NJhUyFsFpjIwXMiVO1R
setstate Spotify 2018-08-17 13:08:46 user_country DE
setstate Spotify 2018-08-17 13:08:46 user_follower_cnt 0
setstate Spotify 2018-08-17 13:08:46 user_id xxxxxxxxxxxxxxx
setstate Spotify 2018-08-17 13:31:19 volume 18

Titel: Antw:[Neues Modul] Spotify
Beitrag von: setstate am 23 August 2018, 18:56:56
hier ist auch noch ein Bugfix nötig:

vorher
sub Spotify_isDisabled($) {
my ($hash) = @_;
my $name = $hash->{NAME};
return defined $attr{$name}{disable};
}

nachher
sub Spotify_isDisabled($) {
my ($hash) = @_;
my $name = $hash->{NAME};
return defined $attr{$name}{disable} && $attr{$name}{disable};
}

die Funktion liefert bei disable=0 sonst einen falschen Wert


Außerdem habe ich noch ein

return if(Spotify_isDisabled($hash));

in die Funktion "sub Spotify_dispatch($$$)" gesetzt, damit bei disable=1 jegliche Abfragen gestoppt (=> InternalTimer)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: abc2006 am 29 August 2018, 12:52:48
Hi,
ich habe noch das Problem, dass wenn ich den Befehl
set spotify playPlaylistbyName Daily Mix 1absetze, er zwar ein Lied spielt, aber anscheinend nicht aus der Playliste (in Spotify ist erkennbar, dass das Lied nicht in der Liste ist...


Laut Ausgaben des Moduls (verbose 5) ist aber alles i.O.




Gestellte Beispiel:
Playlist "test", inhalt 1(ein) Lied
set spotify playPlaylistbyName testSpotify spielt "bubbles, in der Playlist ist aber "I Will Remember".


Grüße,
Stephan
Titel: Antw:[Neues Modul] Spotify
Beitrag von: speridal am 19 September 2018, 13:00:06
Erstmal ein ganz großes Dankeschön! für dieses Modul. Läuft auf Anhieb!

Bevor ich jetzt selber damit anfange: Hat jemand schon eine TabletUI - Oberfläche dafür gebaut?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 19 September 2018, 13:24:24
Hallo Speridal, TabletUI-Interessierten,

ich hatte mal begonnen eine TabletUI-Oberfläche zu erstellen. Ergebnis siehe Bild, läuft soweit auch ganz gut. Vielleicht hilft es dir weiter. Für Hinweise/Anregungen bin ich dankbar.

Hier der Code:

<html>
<title>FHEM</title>
<head>
<!--
/* FHEM tablet ui */
* Multimedia * -->
</head>
<body>
<div class="page" id="main2">
<div class="gridster">
<ul>


 <li data-row="2" data-col="4" data-sizex="3" data-sizey="6">
                <header class="">Spotify</header>
              <div class="sheet">

                <div class="row-40">
                <div class="cell top-space">
                        <div data-type="image"
                                data-device="Spotify"
                                data-get="track_album_cover_medium"
                                data-height='240'
                                data-width='240'
                                class="">
                        </div>
                </div>
                </div>


                <div class="row-5">
                <div class="cell top-align">
                                <div data-type="label"
                                        data-device="Spotify"
                                        data-get="progress"
                                        class="inline">
                                </div>
                                <div data-type="level"
                                        data-device="Spotify"
                                        data-get="progress_ms"
                                        data-max="track_duration_ms"
                                        class="inline horizontal">
                                </div>
                                <div data-type="label"
                                        data-device="Spotify"
                                        data-get="track_duration"
                                        class="inline">
                                </div>
                </div>
                </div>

                <div class="row-10">
                <div class="cell top-align">
                        <div class="hbox items-center">
                                <div data-type="switch"
                                        data-device="Spotify"
                                        data-get="shuffle"
                                        data-set="shuffle"
                                        data-icon="fa-random" data-background-icon="-"
                                        data-on-color="white" data-off-color="gray"
                                        data-get-on="on" data-get-off="off"
                                        data-set-on="on" data-set-off="off"
                                        class="inline mini thin">
                                </div>
                                <div data-type="push"
                                        data-device="Spotify"
                                        data-icon="fa-step-backward" data-background-icon="-"
                                        data-off-color="#fff" data-on-color="#aa6900"
                                        data-set-on="previous"
                                        class="inline small thin">
                                </div>
                                <div data-type="switch"
                                        data-device="Spotify"
                                        data-states='["paused","playing"]'
                                        data-set-states='["resume","pause"]'
                                        data-background-icon="fa-circle-thin"
                                        data-background-colors='["white","white"]'
                                        data-colors='["white","white"]'
                                        data-icons='["fa-play","fa-pause"]'
                                        class="inline small">
                                </div>
                                <div data-type="push"
                                        data-device="Spotify"
                                        data-icon="fa-step-forward" data-background-icon="-"
                                        data-off-color="#fff" data-on-color="#aa6900"
                                        data-set-on="next"
                                        class="inline small thin">
                                </div>
                                <div data-type="switch"
                                        data-device="Spotify"
                                        data-get="repeat"
                                        data-set="repeat"
                                        data-icon="fa-repeat" data-background-icon="-"
                                        data-on-color="white" data-off-color="gray"
                                        data-get-on="all" data-get-off="off"
                                        data-set-on="all" data-set-off="off"
                                        class="inline mini thin">
                                </div>
                                </div>

                </div>
                </div>

                <div class="row-40">
                <div class="cell top-align">
                        <div data-type="label"
                                data-device="Spotify"
                                data-get="track_name"
                                data-substitution="s/Or//g"
                                class="large thin bold top-space truncate">
                        </div>
                        <div data-type="label"
                                data-device="Spotify"
                                data-get="track_artist_name"
                                class="large truncate">
                        </div>
                </div>
                </div>

              </div>
        </li>
</ul>
</div>
</div>
</body>
</html>
Titel: Antw:[Neues Modul] Spotify
Beitrag von: speridal am 19 September 2018, 16:18:28
Hi Anjo1979,

vielen Dank für deinen Code! Klappt auf Anhieb und sieht sehr gut aus!

Ich will noch irgendwann die Möglichkeit einbauen, die anderen Ausgabegeräte anzuwählen. Wenn ich Zeit dafür finde, würde ich das dann hier posten.

Gruß,
Bernd
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 19 September 2018, 16:23:50
Hallo Bernd,

es freut mich, dass es gleich auf Anhieb klappt und gefällt. Die Auswahl der anderen Ausgabegeräte steht bei mir auch auf der ToDo-Liste (recht weit hinten), über dein Ergebnis würde ich mich freuen.

Grüße
Thomas
Titel: Antw:[Neues Modul] Spotify
Beitrag von: masl am 03 Oktober 2018, 13:44:18
Ich bin total von dem Modul begeistert.

Allerdings komme ich nicht weiter mit den Device Einstellungen.

Ich habe Spotify auf meinem Smartphone und ebenso auf dem Tablet auf dem auch TabletUI läuft.
Zudem ist ein Chromecast installiert.
Bin ich zuhause habe ich bisher mit dem Smartphone über den Chromecast Spotify gehört.
Allerdings höre ich Spotify auch wenn ich unterwegs bin.

In FHEM habe ich einen Dummy angelegt:
Zitat
define n_musik_an notify Musik_an:on set AV_Receiver on;; set AV_Receiver input: av5;; set AV_Receiver volume: 43 | set Spotify playPlaylistByName Mixed 02/2018

Wie bekomme ich nun Spotify gesagt, dass er die Playlist vom Tablet abspielen soll und die Ausgabe über Chromecast erfolgen soll?

Muss dies über "Googlecast" gemacht werden?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: riker1 am 06 Oktober 2018, 20:21:53
Hi

hatte leider einen Fehler bei der Anmeldung des Dev in Fhem.

die redirect url ist nicht gültig?


INVALID_CLIENT: Invalid redirect URI
authorization pending (see instructions)


komisch, man kann doch gar nicht viel falsch machen?

habe die app angelegt, die beiden ids client|secret  eingegeben und die redirect url

...was kann das denn sein?

Danke

Titel: Antw:[Neues Modul] Spotify
Beitrag von: Tardar am 07 Oktober 2018, 00:38:36
Hi

hatte leider einen Fehler bei der Anmeldung des Dev in Fhem.

die redirect url ist nicht gültig?


INVALID_CLIENT: Invalid redirect URI
authorization pending (see instructions)


komisch, man kann doch gar nicht viel falsch machen?

habe die app angelegt, die beiden ids client|secret  eingegeben und die redirect url

...was kann das denn sein?

Danke

Habe es gerade eingerichtet, warte aber noch auf meine PREMIUM Freischaltung :)
Mit ClientID & Secret Device in FHEM anlegen, die URL vom Oskar funktioniert.
Dann den Link aufrufen, dort den Code kopieren und unter "set Code" einfügen.
Speichern und du bist connected.

Bei mir funktioniert aktuell die Steuerung noch nicht, das wird aber gehen, sobald mein Premium aktiv ist denke ich :)

Viele Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: merrytor am 14 Oktober 2018, 18:06:48
Hi

hatte leider einen Fehler bei der Anmeldung des Dev in Fhem.

die redirect url ist nicht gültig?


INVALID_CLIENT: Invalid redirect URI
authorization pending (see instructions)


komisch, man kann doch gar nicht viel falsch machen?

habe die app angelegt, die beiden ids client|secret  eingegeben und die redirect url

...was kann das denn sein?

Danke

Ähnliches auch bei mir...

Bei mir ist in der  AUTHORIZATION_URL am Ende die Adresse zu https://oskar.pw "kryptisch", aus welchem Grund auch immer.
Sieht bei mir so aus uri=https%3a%2f%2foskar%2epw%2f

Wenn ich mir die AUTHORIZATION_URl kopiere und dann in einem anderen Tab kopiere und das "kryptische" abändere komme ich dann weiter und bekomme dann den Code von Oskar.pw angezeigt. Nach einfügen in FHEM bekomme ich dann die folgende Fehlermeldung.

Zitat
Failed to get access token: Please add https://oskar.pw/ as a redirect_uri at https://developer.spotify.com/my-applications/#!/applications/



Titel: Antw:[Neues Modul] Spotify
Beitrag von: merrytor am 16 Oktober 2018, 08:49:48
spannend jetzt gehts...

ich habe noch einmal die libcrypt-ssleay-perl gelöscht und neu installiert, dann gings.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Chris489 am 09 November 2018, 18:26:33
Erstmal ein ganz großes DANKE!

Läuft bisher Top!
Da ich gerade an der FTUI Integration bin fällt mir auf, das es kein "set Spotify playbydeviceid" oder so gibt.
Ich würde gerne wenn eine Playlist läuft auch das Gerät wechseln können.

Oder habe ich was übersehen?

Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Abercrombie1892 am 25 November 2018, 20:28:48
Erstmal ein ganz großes DANKE!

Läuft bisher Top!
Da ich gerade an der FTUI Integration bin fällt mir auf, das es kein "set Spotify playbydeviceid" oder so gibt.
Ich würde gerne wenn eine Playlist läuft auch das Gerät wechseln können.

Oder habe ich was übersehen?

Grüße

device lässt sich bei transfer playback ändern mit der device id. problem ist halt oft nur das nicht die gleichen connect geräte wie in der app zusehen sind.
evtl hat es ja jemand schon geschafft in der richtung multicast etwas einzubauen
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Jackson am 11 Dezember 2018, 22:44:15
Hi,

ich habe da mal eine Frage zu den Devices..

es findet nur meinen Fire Stick und meinen Laptop als device aber nicht meine SONOS PLAY1. Gibt es noch was zu beachten, kann man die ID irgendwo auslesen? Ich möchte eigentlich die PLAY1 als Device in FHEM angelegen.

Gruss und Danke
Christian

EDIT: Die Antwort ist hier: https://github.com/spotify/web-api/issues/525#issuecomment-301759031.  Wird leider nicht unterstützt :(
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Bytechanger am 23 Dezember 2018, 13:37:48
Hallo,

welche Funktionalität müsste dann bei der Redirect-URI hinterlegt werden?
Was muss also die Seite können, auf die gelinkt wird?


Ich würde gerne diese Funktion auf meine NAS legen.

Greets

Byte
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Bytechanger am 23 Dezember 2018, 18:34:30
Erledigt, sie dient offensichtlich nur als Ziel für den Token!

Eine Bitte an die Entwicklung, bitte das Interlnal REDIRECT_URI in ein Attribut ändern, dann kann man selbst den Server wählen.

Greets

Byte

EDIT: Sorry, kann man ja bereits, in der define-Methode, sorry, übersehen!
Titel: Antw:[Neues Modul] Spotify
Beitrag von: MisterBeats am 25 Dezember 2018, 19:36:04
Hallo zusammen,

ich habe mir Spotify auch mal eingerichtet. Connected ist es, jedoch kommt immer wieder diese Fehlermeldung:

Spotify: request failed: Player command failed: Premium required
Premium Zugang habe ich schon seit Jahren.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: UweUwe am 03 Januar 2019, 11:58:18
Hallo ,

versuche mir gerade Spotify einzurichten und bekomme die Authorisation url auch zurück.
Mit dieser laufe ich aber auf ein Problem bei Spotify:

https://accounts.spotify.com/authorize/?client_id=1ef940bf87ae45b2abfe992f13ff17a6&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5bhttps%3a%2f%2foskar%2epw%5d

Was mache ich falsch:

List auf Spotify sieht so aus:
Internals:
   A1_INSTRUCTIONS Open AUTHORIZATION_URL in your browser and set the code afterwards. Make sure to specify REDIRECT_URI as a redirect_uri in your API application.
   AUTHORIZATION_URL https://accounts.spotify.com/authorize/?client_id=1ef940bf87ae45b2abfe992f13ff17a6&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5bhttps%3a%2f%2foskar%2epw%5d
   CFGFN     
   CLIENT_ID  1ef940bf87ae45b2abfe992f13ff17a6
   CLIENT_SECRET 82327dbdb48e4da1b23f89cec2496aeb
   DEF        1ef940bf87ae45b2abfe992f13ff17a6 82327dbdb48e4da1b23f89cec2496aeb [https://oskar.pw]
   NAME       Spotify
   NR         154
   NTFY_ORDER 50-Spotify
   REDIRECT_URI [https://oskar.pw]
   STATE      authorization pending (see instructions)
   TYPE       Spotify
   helper:
     access_token
     authorization_url https://accounts.spotify.com/authorize/?client_id=1ef940bf87ae45b2abfe992f13ff17a6&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5bhttps%3a%2f%2foskar%2epw%5d
     custom_redirect 1
     expires   
     refresh_token
Attributes:
   DbLogExclude .

Titel: Antw:[Neues Modul] Spotify
Beitrag von: UweUwe am 09 Januar 2019, 23:01:39
Hi,

wenn ich irgendeinen trivialen Fehler gemacht habe und deshalb keine Antwort bekommen sollte, bitte: ein kleiner Hinweis genügt und ich starte nochmals von vorne.. Spotify ist mir wichtig..
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Jackson am 10 Januar 2019, 11:43:25
   DEF        1ef940bf87ae45b2abfe992f13ff17a6 82327dbdb48e4da1b23f89cec2496aeb [https://oskar.pw]
Dein DEF sieht komisch aus. Versuche mal die oskar.pw ohne [] anzugeben
Titel: Antw:[Neues Modul] Spotify
Beitrag von: UweUwe am 10 Januar 2019, 12:45:58
Hallo Jackson,

dies war der Grund für das Problem. Ich habe jetzt erstmal Spotify installiert und muss es jetzt konfigurieren und ausprobieren.
Vielen Dank
Titel: Antw:[Neues Modul] Spotify
Beitrag von: UweUwe am 11 Januar 2019, 23:50:07
Hallo Jackson,
ganz toll das Spotify Modul. Läuft aktuell gut mit Raumfeld. Werde sehen, wie sich dies weiter entwickelt.
Ich habe gelesen, man sollte DNLA Rendering hier noch installieren.
Was bringt mir dies für einen Vorteil?

Aber noch zu deinem Modul:
"Bedingungsanleitung" bzw. die Beschreibung der Features.. gibts so was?
Ich hätte so eine Suchfunktion gerne und auch, was ich auf Bildern im Block gesehen habe, dass Cover und der Playlistinhalt dargestellt werden.
Das wäre noch toll.
In meine Logfile sehe ich noch ganz regelmässig folgenden Eintrag:
2019.01.11 23:39:32 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at (eval 49694) line 1.
2019.01.11 23:39:32 3: eval: doif_WEB_SpotifyNextTrack: warning in condition c01

Wie bekomme ich dies weg. Da ich gerade sehr intensiv FHEM erweitere, (und dadurch auch viel Spotify höre), stört dies, auch bei der Fehlersuche meines Codes..
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Abercrombie1892 am 12 Januar 2019, 10:02:35
Den dlna renderer brauchst du nicht zwingend. Du kannst hier den Status auslesen ob das Gerät gerade spielt oder auf Pause steht. Damit kannst du dann Aktionen auslösen wie zb Receiver automatisch einschalten, wenn etwas auf dem Raumfeld Connector abgespielt wird. Wenn du nur Spotify hören willst, brauchst ihn nicht.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: UweUwe am 16 Januar 2019, 20:45:38
Hallo,
hab jetzt meine Alarmanlage soweit funktionfähig. Parallel dazu, Spotify über Raumfeld und Bedienung FHEM gehört. Die Warnung :
2019.01.16 20:30:06 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at (eval 27834) line 1.
2019.01.16 20:30:06 3: eval: doif_WEB_SpotifyNextTrack: warning in condition c01
, stört etwas bei debuggen, da diese Warnung zumindest bei jedem Wechsel des Songs kommt. Hat hier jemand ne Lösung, wie man dies wegbekommt. Schreibt auch das Logfile voll.
Das wichtige Thema ist mir aber, wie kann ich meinen Raumfeld-Lautsprecher (ein definiertes Paar meiner Installation) im Einbruchsfall aus dem Standby einschalten, Lautstärke hochstellen und "Hardrock" abspielen, sollte besser als jede Sirene sein.
Eine Kleinigkeit noch zu Spotify: Anzeige der Playlist (in Listenform) und des Covers. Gibt es hierzu etwas nachzulesen?
Merci
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Esjay am 16 Januar 2019, 21:50:12
Damit du nicht so lange auf eine Antwort warten musst, wie beim Alarm Theard hier mal ein Versuch.
Die Warnungen haben nichts mit dem Spotifymodul zu tun. Die hast du selber durch dein Doif zu verantworten ;). Mein Tipp wäre daher, endweder nochmal etwas genauer hinschauen, und wenn das nichts bringt ab ins Doif Forum  :).

Zu Punkt 2 könnte man ein Notify als Actor einsetzen,welches eine sub aufruft,welche das übernimmt. Dazu müsste man wissen, wie genau die Boxen eingebunden sind. Über ein extra Modul, oder nur über Spotify.

Vll wäre bei der Anzahl an Punkten ein eigener Theard im Anfängerforum ( soll nicht heißen, dass du ein Anfänger bist) vorteilhafter. Dann mit sämtlichen list etc.

Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: UweUwe am 16 Januar 2019, 22:28:03
Hallo,
gefunden..
Zitat
Die Warnungen haben nichts mit dem Spotifymodul zu tun. Die hast du selber durch dein Doif zu verantworten ;). Mein Tipp wäre daher, endweder nochmal etwas genauer hinschauen, und wenn das nichts bringt ab ins Doif Forum  :).
  8) Mein Fehler.
Zitat
Zu Punkt 2 könnte man ein Notify als Actor einsetzen,welches eine sub aufruft,welche das übernimmt. Dazu müsste man wissen, wie genau die Boxen eingebunden sind. Über ein extra Modul, oder nur über Spotify.

Vll wäre bei der Anzahl an Punkten ein eigener Theard im Anfängerforum ( soll nicht heißen, dass du ein Anfänger bist) vorteilhafter. Dann mit sämtlichen list etc
Merci, das werde ich formulieren. So kurz wie möglich und nötig. Hab ja dazugelernt.
Merci nochmals
Titel: Antw:[Neues Modul] Spotify
Beitrag von: UweUwe am 06 Februar 2019, 22:13:23
Hallo,
man kann die Raumfeld Lautsprecher als Aktoren für eine Alarmanlage einsetzen.
Hier ein ganz einfacher Lösungsvorschlag, mit dem Event des Alarmes einfach starten:
set Spotify playTrackByURI <track_id> <device_x_id; set Spotify volume 100
Zitat
<track_id>     zum Beispiel    spotify:track:2GQwwgabX1VBacz4kP5fSX  (Kraftwerk, jeder Einbrecher bekommt Herzinfarkt)
<device_x_id>   zum Beispiel    26b8ed47ed53e452zzd662fdc47cb66268ae5723  bekommt man aus den Spotify-readings

Das jeweilig richtige <device_x_id> id bekommt man, indem man über die Raumfeld App die Lautsprecher ansteuert und anschliessend in den Spotify-FHEM readings nachliesst, welche <device_x_id> die Lautsprecher haben. Es sollte auch mit dem <device_x_name> anstatt der <device_x_id> gehen, hat bei mir nicht geklappt. Muss der <device_x_name> in "" oder in ´´ oder?Sicherlich für viele schon klar gewesen, ich finde die Möglichkeit als ALARM ganz gut.



Titel: Antw:[Neues Modul] Spotify
Beitrag von: trfr3ak am 20 Februar 2019, 17:43:38
Hat jemand auch das Problem, dass sich die DeviceID der Echos ständig ändert und deshalb nichts mehr abgespielt wird, sofern man diese nicht händisch anpasst?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Schlimbo am 16 Juni 2019, 22:35:38
Hallo Oskar,
vielen Dank für das Spotify Modul, funktioniert super.

Hätte allerdings noch einen Änderungswunsch:
Julian hatte im zweiten Beitrag ja schon mal auf die AV Guidelines verwiesen:
https://wiki.fhem.de/wiki/DevelopmentGuidelinesAV
Fände es super wenn du das Modul noch daran anlehnen könntest.
Speziell geht es mir um folgende Readings und Set Befehle:
Readings:
track_artist_name --> currentArtist
track_album_name --> currentAlbum
track_name --> currentTitle
is_playing --> playStatus (playing | paused | stopped)
mute (on | off)
Set:
resume --> play
mute  (on | off)
Hintergrund ist folgender, ich habe mir über FHEM eine Art "Universalfernbedienung" gebaut die automatisch auf die AV Readings und Set Befehle zugreift, aufgrund der unterschiedlichen Readings Namen klappt das bei dem Spotify Modul momentan noch nicht.

Beste Grüße
Schlimbo
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Che007 am 17 Juni 2019, 20:44:35
EDIT
Hat sich erledigt. Steht tatsächlich einfach in der URL. Wahrscheinlich war ich bei den Tests zu langsam. Jetzt funktioniert es.

Hallo,

ich beschäftige mich gerade auch mit der Einbindung.
@neumann:
Kannst du erläutern, wie du den Code erzeugst? Ich würde diese gerne selber erstellen über die offizeille Spotify nodejs app.

Habe bereits Access und Refresh Token erhalten. Ich denke damit wird der Code für FHEM zusammengebaut.
Wäre super, wenn du hier unterstützen könntest, da ich einfach gerne meine Daten bei Spotify hinterlegen möchte.

Vielen Dank.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: mahowi am 01 August 2019, 08:12:30
Beim Durchforsten meines Logs ist mir gerade ein PERL WARNING aufgefallen, an dem Spotify scheinbar beteiligt ist:
2019.08.01 07:54:08.882 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4750.
2019.08.01 07:54:08.882 1: stacktrace:
2019.08.01 07:54:08.882 1:     main::__ANON__                      called by fhem.pl (4750)
2019.08.01 07:54:08.882 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/37_Spotify.pm (803)
2019.08.01 07:54:08.882 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (609)
2019.08.01 07:54:08.882 1:     main::__ANON__                      called by fhem.pl (745)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: bennebartsch am 06 August 2019, 12:58:08
Seit dem letztem Update vom fhem docker Container bekomme ich folgenden Fehler beim define:
reload: Error:Modul 37_Spotify deactivated:
 Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

2019.08.06 12:53:18 0: Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

Desweiteren ist mir aufgefallen, dass die Seite https://oskar.pw jetzt auf https://oskarneumann.de/ weiterleitet. Ist das so gewollt?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: bloodybeginner am 07 August 2019, 13:41:26
Seit dem letztem Update vom fhem docker Container bekomme ich folgenden Fehler beim define:
reload: Error:Modul 37_Spotify deactivated:
 Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

2019.08.06 12:53:18 0: Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

Desweiteren ist mir aufgefallen, dass die Seite https://oskar.pw jetzt auf https://oskarneumann.de/ weiterleitet. Ist das so gewollt?

bei mir ebenfalls
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Schlimbo am 11 August 2019, 02:17:30
Hallo zusammen,
auch bei mir läd das Modul nach einem Docker Container update nicht mehr, bekomme beim Start die Meldung:
Messages collected while initializing FHEM:
configfile: Cannot load module Spotify
Please define Spotify ..... first

Ein reload 37_Spotify.pm ergib:
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"
FHEM läuft bei mir im aktuellem Docker Container
https://github.com/fhem/fhem-docker/ (image.version
5.9-s19971_v2.1.1)
Perl: 5.028001
Kann hier jemand helfen?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: bennebartsch am 11 August 2019, 14:03:54
Quick and dirty fix: Zeile 368 und 376 auskommentieren
Titel: Antw:[Neues Modul] Spotify
Beitrag von: bloodybeginner am 09 September 2019, 12:50:33
leider ist das spotify modul in der aktuellen Version unter docker immer noch kaputt
Titel: Antw:[Neues Modul] Spotify
Beitrag von: bennebartsch am 16 September 2019, 15:55:08
Besserer fix:
Zeile 368:
Spotify_apiRequest($hash, 'me/player/next', '{}', 'POST', 0);

Zeile 376:
Spotify_apiRequest($hash, 'me/player/previous', '{}', 'POST', 0);

und natürlich ein "attr global exclude_from_update 37_Spotify.pm" solange das Modul nicht aktualisiert wurde.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: onkel-tobi am 12 Oktober 2019, 09:40:42
Hi zusammen,

Gibt es irgendeinen Trick die device IDs bei Spotify zu erhöhen bzw. gewisse Geräte immer in der Liste zu behalten?
Aufgrund von Multiroom habe ich inzwischen mehr als 7 devices und die sind selbst in der Spotify app dann unterschiedlich.
Insofern verhält sich das Modul vermutlich korrekt, aber ich habe Probleme, wenn ich DOIFs nutze, die je nach Bewegung transferPlayback‘s machen...

Hat jemand dazu eine Idee?

Danke & Gruß,
Tobi
Titel: Antw:[Neues Modul] Spotify
Beitrag von: A-Donut am 17 November 2019, 01:37:19
Vielen Dank für das Modul.

Mit diesem Projekt (https://github.com/dtcooper/raspotify (https://github.com/dtcooper/raspotify)) zusammen, erfüllt es genau das was ich wollte.
Der Pi macht nun sprachgesteuert über Snips und Fhem (Spotify-) Musik.
Der Verstärker freut sich... :-)

BIG THX
Titel: Antw:[Neues Modul] Spotify
Beitrag von: econ_sl83 am 22 November 2019, 10:38:21
Vielen Dank für die Mühe mit dem Modul - das klingt alle super.

Ich hätte dennoch eine Lizenzfrage, die ich mal hier stellen will:
Wenn ich einen Spotify Premium-Accunt habe, kann ich dann über das Modul Titel an Spotify Player ausgeben lassen (etwa auf Raspi-Basis), auch wenn mein Telefon nicht im gleichen Wlan ist und ggf. etwas anderes abspielt? Oder bräuchte ich dafür ein Familien-Konto?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Patrick1983 am 05 Dezember 2019, 19:26:58
Erstmal vielen Dank für dieses Modul.

Ich bin grad dabei ein eigene Visualisierung für TabletUI zu machen, Cover, vor, rück, etc kein Ding.
Nun will ich aber die Devices aussuchen, dazu habe ich ein circlemenu gemacht wo alle Devices mit Namen aufgelistet werden, nur habe ich bis jetzt nicht herausgefunden mit welchem Befehl ich aktiv das Device ändern kann oder geht das gar nicht?!

Ist es auch möglich anhand deines Dropmenüs die Playlisten anzeigen zu lassen?

Danke für die Hilfe
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Che007 am 06 Dezember 2019, 12:50:44
Vielen Dank für das Modul.

Mit diesem Projekt (https://github.com/dtcooper/raspotify (https://github.com/dtcooper/raspotify)) zusammen, erfüllt es genau das was ich wollte.
Der Pi macht nun sprachgesteuert über Snips und Fhem (Spotify-) Musik.
Der Verstärker freut sich... :-)

BIG THX

Hi,
funktioniert es bei dir, dass nach einem Neustart das Standardgerät automatisch angespielt wird? Bei mir habe ich den raspotify Dienst, bzw. die ID als Standardgerät eingetragen, aber losspielen will es nicht. Erst wenn ich raspotify über z.B. iPhone angetriggert habe, reagiert dieses wieder.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: nanocosmos am 16 Dezember 2019, 16:33:17
leider ist das spotify modul in der aktuellen Version unter docker immer noch kaputt
Scheint immer noch so zu sein.
Habe heute mein Docker File aktualisiert 7nd seitdem bekomme ich: Cannot load module Spotify
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kermit20 am 09 Januar 2020, 01:10:29
Ich wollte heute  Spotify einbinden und dazu dieses Modul nutzen, da ich auch über die Problematik im DockerImage gestolpert bin möchte ich mich kurz erkundigen ob es einen "offiziellen FIX" geben wird ?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: speridal am 02 März 2020, 14:25:04
Hallo zusammen,

erstmal vielen Dank für das tolle Modul. Klappt im Prinzip perfekt. Ich habe leider nur ein Problem und bevor ich in die Analyse einsteige, möchte ich eure Erfahrungen abfragen.

Da meine Töchter eigene Spotify-Accounts haben, gibt es bei mir in FHEM drei Spotify-Devices. Das Update dieser Devices bleibt teilweise stehen, d.h. Track-Titel, Künstler, Cover etc. ändert sich beim Liedwechsel nicht mehr.

Ich kann das dann mit einem "set <Spotify_Device> update" wieder reparieren. Ich habe momentan die Vermutung, dass das Problem damit zusammenhängt, dass ich drei Spotify Devices habe. Oder passiert dieses "einfrieren" auch bei einem Device?

Danke.

Viele Grüße,
Bernd
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Sticks65 am 08 März 2020, 15:03:45
Hallo zusammen,

zunächst einmal ein "GROSSES DANKESCHÖN" für dieses geniale Spotify Modul.   :)

Ich bin gerade dabei im FTUI eine Seite für Spotify zu generieren und würde gern per Push-Widget das
Abspiel-Device ändern (trasferPlayback).
Leider werden im Reading nicht immer alle Devices aufgelistet, und die ID's ändern sich auch immer wieder.


Hat jemmand eine Möglichkeit gefunden, die Devices im Spotify Modul in den Readings "festzuschreiben"?
Ich meine damit, dass alle verfügbaren Devices, welche in der Spotify-App zur Verfügung stehen, auch
im Modul aufgelistet werden und diese auch immer in einer definierten device-id stehen.

Z.B.
device_2_id 2aeee88da1e4c83bf122276bb3560f480b1f9016
device_2_name SoundTouch 10
device_2_type Speaker
device_2_volume 27

Viele Grüße
Martin
Titel: Antw:[Neues Modul] Spotify
Beitrag von: altbrotjungbrot am 09 März 2020, 21:14:51
Hallo und Gratulation zum gelungenen Modul!

Ich habe es erfolgreich im Einsatz und es macht zuverlässig das, was es soll.
Weil ich die Möglichkeit vermisst habe, Playlists zu durchsuchen, und die Spotify API prinzipiell diese Möglichkeit bietet, habe ich das Modul kurzerhand um diese Funktion erweitert.
Der Einfachheit halber poste ich hier mal das Patchfile. Da ich noch keine Bilder Posten kann, befindet sich ein Screencast meiner Tablet UI Einbindung ebenfalls im Anhang.
Vielleicht rutschen die Änderungen ja ins SVN Repo  ;)

Grüße,
Flo

Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 28 April 2020, 11:18:51
Hallo altbrotjungbrot,

deine Erweiterung finde ich klasse. Nur, wo muss ich was von dem Patch einfügen? Ich blicke es einfach nicht.

Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: webdandy am 05 Mai 2020, 09:00:39
Hallo Oskar,

die Einrichtung von Deinem Spotify Modul hat auf Anhieb funktioniert und läuft gut, vielen Dank.

Allerdings habe ich ein komisches Phänomen, dass mein Sonos One nicht in der Liste der Devices auftaucht.
Wenn ich jedoch auf dem Sonos One etwas abspiele, taucht das Sonos System temporär als "active Device" auf, jedoch ohne ID.
Kennst Du dieses Problem eventuell schon und kannst mir helfen?
Oder hast vielleicht eine Idee, wonach ich noch schauen kann.

Ein neues Thema hatte ich bereits schon angefangen, aber leider noch keine Antwort bekommen.
Dort sind auch noch mehr Infos zu den Devices.
https://forum.fhem.de/index.php/topic,110696.0.html (https://forum.fhem.de/index.php/topic,110696.0.html)

Hat jemand Ideen für mich?

Danke & Grüße
Fabian


Titel: Antw:[Neues Modul] Spotify
Beitrag von: Helmuth am 26 Mai 2020, 12:57:26
Hallo zusammen

Ich hätte ein paar Fragen zum Modul, das ich nach der gut beschrieben Änderung in der pm in meiner fhem docker Umgebung in Betrieb genommen habe.

Ich hoffe das das Modul noch supportet wird und das Problem in Zukunft behoben wird.

Was ich nicht hin bekomme ist eine device_id mitzusenden das der passende Lautsprecher abspielt.
Einen Standard Lautsprecher kann und will ich nicht angeben, da ich mich ja nicht immer im gleichen Raum aufhalte.
Die Umstellung eines Attributes um den Raum zu wechseln finde ich auch umständlich und sorry wenn ich das schreibe aber meine Frau währe da definitiv raus und würde es nicht nutzen.

Also Ihr merkt schon ich brauche eine Frauen freundliche Lösung für die Bedienung.

Vielleicht hat ja der ein oder andere das selbe Problem.

Grüße Helmuth

PS. Schreibt jetzt bitte nicht neue Frau das zählt nicht!! ;D ;D
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Jewe am 27 Mai 2020, 15:54:14
Hallo zusammen,

das Spotify-Modul hat bei mir lange sehr gut funktioniert. Seit ein paar Wochen bekomme ich ständig folgende Fehlermeldung:

Spotify: request failed: The access token expired
So wie es aussieht ist das Modul bei mir auch für das Freeze-Problem verantwortlich. Nach ein paar Stunden / Tagen passiert das immer wieder.
Im Modul wird wohl gerne HttpUtils_BlockingGet(s)... verwendet.

Ist das bei Euch auchso, habt Ihr auch diese Meldungen ?

Wie kann ich diese wieder loswerden. Habe auch die API-Schnittstelle mal gelöscht und komplett neu angelegt und auch das Geräte in Fhem neu definiert.
Leider ohne Erfolg.

Grüsse, Jens
Titel: Antw:[Neues Modul] Spotify
Beitrag von: webdandy am 28 Mai 2020, 10:50:45
Hallo zusammen

Ich hätte ein paar Fragen zum Modul, das ich nach der gut beschrieben Änderung in der pm in meiner fhem docker Umgebung in Betrieb genommen habe.

Ich hoffe das das Modul noch supportet wird und das Problem in Zukunft behoben wird.

Was ich nicht hin bekomme ist eine device_id mitzusenden das der passende Lautsprecher abspielt.
Einen Standard Lautsprecher kann und will ich nicht angeben, da ich mich ja nicht immer im gleichen Raum aufhalte.
Die Umstellung eines Attributes um den Raum zu wechseln finde ich auch umständlich und sorry wenn ich das schreibe aber meine Frau währe da definitiv raus und würde es nicht nutzen.

Also Ihr merkt schon ich brauche eine Frauen freundliche Lösung für die Bedienung.

Vielleicht hat ja der ein oder andere das selbe Problem.

Grüße Helmuth

PS. Schreibt jetzt bitte nicht neue Frau das zählt nicht!! ;D ;D

Hallo,

also bei mir funktioniert es so wie in der Hilfe angegeben, z.B.:

playTrackByURI <track_uri> [ <device_id / device_name> ]
Grüße
Fabian
Titel: Antw:[Neues Modul] Spotify
Beitrag von: webdandy am 28 Mai 2020, 10:54:24
Hallo zusammen,

das Spotify-Modul hat bei mir lange sehr gut funktioniert. Seit ein paar Wochen bekomme ich ständig folgende Fehlermeldung:

Spotify: request failed: The access token expired
So wie es aussieht ist das Modul bei mir auch für das Freeze-Problem verantwortlich. Nach ein paar Stunden / Tagen passiert das immer wieder.
Im Modul wird wohl gerne HttpUtils_BlockingGet(s)... verwendet.

Ist das bei Euch auchso, habt Ihr auch diese Meldungen ?

Wie kann ich diese wieder loswerden. Habe auch die API-Schnittstelle mal gelöscht und komplett neu angelegt und auch das Geräte in Fhem neu definiert.
Leider ohne Erfolg.

Grüsse, Jens

Hallo,
ich bekomme diese Meldung auch mehrmals täglich:
Spotify: request failed: The access token expiredUnd einen Freeze kann ich auch bestätigen:
2020-05-26: s:23:55:33 e:23:55:34 f:1.546 d:tmr-HUEBridge_GetUpdate(HueBridge) tmr-Spotify_poll(Spotify) tmr-FBAHAHTTP_Poll(fritzbox) tmr-FHEM::readingsWatcher::OnTimer(monitor.readings) Grüße
Fabian
Titel: Antw:[Neues Modul] Spotify
Beitrag von: kimbolero am 28 Mai 2020, 10:56:01
Habe das Modul soweit im Einsatz, jedoch springt bei mir nach einer gewissen Zeit immer das Reading  auf

device_active_id none
defaultPlaybackDeviceID Ist korrekt gesetzt und alwaysStartOnDefaultDevice auf 1.

Im Log steht folgendes:

2020.05.28 18:33:30 3: spotify: request failed: Player command failed: No active device found
Starte ich das Google Home device manuell (ok Google, spiele Musik von Spotify), wird das reading wieder sauber befüllt.
Danach kann ich es auch wieder über FHEM steuern.

Im Haushalt nutzen mehrere Google Devices den gleichen Spotify Account - ich kann jedoch ausschließen, dass die der Auslöser für das leere Reding sind.
Nach ca 30 Minuten Inaktivität wird das Reading wieder auf none gesetzt.

Hat jemand eine Idee was ich noch machen könnte?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Jewe am 28 Mai 2020, 15:10:25
Hallo,
ich bekomme diese Meldung auch mehrmals täglich:
Spotify: request failed: The access token expiredUnd einen Freeze kann ich auch bestätigen:
2020-05-26: s:23:55:33 e:23:55:34 f:1.546 d:tmr-HUEBridge_GetUpdate(HueBridge) tmr-Spotify_poll(Spotify) tmr-FBAHAHTTP_Poll(fritzbox) tmr-FHEM::readingsWatcher::OnTimer(monitor.readings) Grüße
Fabian
Wie oft hast oder hattest Du einen Freeze ?


Gesendet von iPhone mit Tapatalk
Titel: Antw:[Neues Modul] Spotify
Beitrag von: webdandy am 29 Mai 2020, 08:19:26
Wie oft hast oder hattest Du einen Freeze ?


Gesendet von iPhone mit Tapatalk
Nie mehr als 2x am Tag im Log zu finden und dass auch nicht jeden Tag.
Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: altbrotjungbrot am 12 Juli 2020, 21:37:26
Hallo altbrotjungbrot,

deine Erweiterung finde ich klasse. Nur, wo muss ich was von dem Patch einfügen? Ich blicke es einfach nicht.

Grüße

Hallo,

wie man einen Patch anwendet, erfährst du hier: https://man7.org/linux/man-pages/man1/patch.1.html (https://man7.org/linux/man-pages/man1/patch.1.html)
Alternativ kannst du auch das File im Anhang verwenden und durch das Originalfile im FHEM Ordner ersetzen.
Ganz prinzipiell handelt es sich aber um die Modifikation des originalen Trunks. Nach einem Update sind diese Änderungen dann wieder weg!!
Nach einem "shutdown restart" hast du dann folgende neue Readings:

'playlist_name'
'playlist_uri'
'playlist_description'
'playlist_image'
'playlist_owner'
'playlist_total_tracks'

und diese 2 neuen Commands:

'prevPlaylist'
'nextPlaylist'

Zum abspielen einer Playlist rufst du dann

playContextByURI mit dem playlist_uri Reading auf.

The rest is up to you  ;)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 13 Juli 2020, 21:09:28
Hallo,

wie man einen Patch anwendet, erfährst du hier: https://man7.org/linux/man-pages/man1/patch.1.html (https://man7.org/linux/man-pages/man1/patch.1.html)
Alternativ kannst du auch das File im Anhang verwenden und durch das Originalfile im FHEM Ordner ersetzen.
Ganz prinzipiell handelt es sich aber um die Modifikation des originalen Trunks. Nach einem Update sind diese Änderungen dann wieder weg!!
Nach einem "shutdown restart" hast du dann folgende neue Readings:

'playlist_name'
'playlist_uri'
'playlist_description'
'playlist_image'
'playlist_owner'
'playlist_total_tracks'

und diese 2 neuen Commands:

'prevPlaylist'
'nextPlaylist'

Zum abspielen einer Playlist rufst du dann

playContextByURI mit dem playlist_uri Reading auf.

The rest is up to you  ;)

Guten Abend,

vielen vielen Dank. Wieder etwas gelernt. Klappt alles!

Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: febus am 06 September 2020, 11:23:08
Moin, ich nutze Spotify auf Chromecast Audios und habe mit dem Modul das Problem, dass ich ich keinen Stream via FHEM starten kann, da sich die Device IDs ändern. Auch mit den Namen bin ich bisher nicht weitergekommen. Hat das schonmal jemand hinbekommen?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: jove01 am 13 November 2020, 16:35:50
Hallo

auch ich habe das Problem, das mein Spotify Connect Device (AirLino speist meine Anlage) irgendwann (nach Nichtbenutzung?) sein Connect Device verliert. Sowohl in der Android-App als auch in der Windows App wird es als verfügbares Geräte angezeigt. Erst wenn ich hierüber einen Song abspiele, ist das Gerät auch wieder im Fhem verfügbar. Die notwendigen Attribute sind korrekt gesetzt,

Gibt es hierfür eine Lösung

Danke
Jürgen
Titel: Antw:[Neues Modul] Spotify
Beitrag von: riker1 am 22 November 2020, 08:42:04
Hi ,
Danke für das tolle Modul.

habe nen Fehler:
2020.11.22 08:40:00.137 1 : PERL ERROR: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/37_Spotify.pm line 777.
2020.11.22 08:40:00.137 1 : stacktrace:
2020.11.22 08:40:00.137 1 :     main::__ANON__                      called by ./FHEM/37_Spotify.pm (777)
2020.11.22 08:40:00.137 1 :     (eval)                              called by ./FHEM/37_Spotify.pm (777)
2020.11.22 08:40:00.137 1 :     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (639)
2020.11.22 08:40:00.137 1 :     main::__ANON__                      called by fhem.pl (752)

Weiss aber nicht wo ich da suchen soll?

danke für die Hilfe
Titel: Antw:[Neues Modul] Spotify
Beitrag von: smuckl am 30 November 2020, 17:42:54
Beim Durchforsten meines Logs ist mir gerade ein PERL WARNING aufgefallen, an dem Spotify scheinbar beteiligt ist:
2019.08.01 07:54:08.882 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4750.
2019.08.01 07:54:08.882 1: stacktrace:
2019.08.01 07:54:08.882 1:     main::__ANON__                      called by fhem.pl (4750)
2019.08.01 07:54:08.882 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/37_Spotify.pm (803)
2019.08.01 07:54:08.882 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (609)
2019.08.01 07:54:08.882 1:     main::__ANON__                      called by fhem.pl (745)

habe einen sehr ähnlichen Fehler, gibt es hierzu schon Lösungsansätze?

Hier mein Logeintrag des Fehlers:
2020.11.30 17:36:14 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4818.
2020.11.30 17:36:14 1: stacktrace:
2020.11.30 17:36:14 1:     main::__ANON__                      called by fhem.pl (4818)
2020.11.30 17:36:14 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/37_Spotify.pm (803)
2020.11.30 17:36:14 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (639)
2020.11.30 17:36:14 1:     main::__ANON__                      called by fhem.pl (752)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: riker1 am 10 Dezember 2020, 08:22:24
Hallo

habe auch im Log einen Fehler den ich nicht lösen kann.

020.12.10 08:04:38.223 1: PERL ERROR: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/37_Spotify.pm line 777.

2020.12.10 08:04:38.223 1: stacktrace:
2020.12.10 08:04:38.223 1:     main::__ANON__                      called by ./FHEM/37_Spotify.pm (777)
2020.12.10 08:04:38.223 1:     (eval)                              called by ./FHEM/37_Spotify.pm (777)
2020.12.10 08:04:38.223 1:     main::Spotify_dispatch              called by FHEM/HttpUtils.pm (639)
2020.12.10 08:04:38.223 1:     main::__ANON__                      called by fhem.pl (752)

jemand eine Idee?

Danke
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kohle77 am 11 Dezember 2020, 14:19:05
Hallo,
ich bin bald verzweifelt. Das Spotify Modul konnte keine devices finden obwohl ich Echo Dot usw. in FHEM eingebunden habe.
Letztendlich habe ich, nachdem Spotify in FHEM konfiguriert war (inclusive des Fix vom « Antwort #213 am: 16 September 2019, 15:55:08 » in diesem Thema und reload 37_Spotify.pm aus FHEM heraus), die App Spotify in der Alexa App deaktiviert und wieder aktiviert (mit neu anmelden) und schon waren Alexa & Co mit device ID in der Spotify App vorhanden.

FHEM läuft auf einem PI.

Nur falls nochmal jemand danach sucht.

Gruß
Kohle

Titel: Antw:[Neues Modul] Spotify
Beitrag von: Superposchi am 22 Dezember 2020, 23:15:21
Hallo, ich wollte das Spotify-Modul und ein passendes device erstellen.
Habe die App im Developer erstellt und auch die Redirect-url eingetragen.

doch beim Anlegen des Device bekomme ich immer die Rückmeldung "Cannot load module Spotify"

Hat jemand einen Ansatz woran das liegen kann?

Hier das was im Log dazu steht:
2020.12.22 23:11:29.513 1: reload: Error:Modul 37_Spotify deactivated:
 Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

2020.12.22 23:11:29.513 0: Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

List gibt es ja ohne Device nicht.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: AndreM am 31 Dezember 2020, 15:14:49
Hallo Oskar,

die Einrichtung von Deinem Spotify Modul hat auf Anhieb funktioniert und läuft gut, vielen Dank.

Allerdings habe ich ein komisches Phänomen, dass mein Sonos One nicht in der Liste der Devices auftaucht.
Wenn ich jedoch auf dem Sonos One etwas abspiele, taucht das Sonos System temporär als "active Device" auf, jedoch ohne ID.
Kennst Du dieses Problem eventuell schon und kannst mir helfen?
Oder hast vielleicht eine Idee, wonach ich noch schauen kann.

Ein neues Thema hatte ich bereits schon angefangen, aber leider noch keine Antwort bekommen.
Dort sind auch noch mehr Infos zu den Devices.
https://forum.fhem.de/index.php/topic,110696.0.html (https://forum.fhem.de/index.php/topic,110696.0.html)

Hat jemand Ideen für mich?

Danke & Grüße
Fabian

Hallo zusammen,
ich habe das gleiche Problem wie webdandy. Gibt es dafür bereits eine Erklärung bzw. Abhilfe?

Schönen Gruß
Andre
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Kohle77 am 02 Januar 2021, 10:09:29
Hallo,
also das mit der Zeile 368 bzw. 376 gab es in diesem Thread schon. Ist bei mir auf Seite 15.
Dort wurde geschrieben:
Zitat
Besserer fix:
Zeile 368:
Spotify_apiRequest($hash, 'me/player/next', '{}', 'POST', 0);

Zeile 376:
Spotify_apiRequest($hash, 'me/player/previous', '{}', 'POST', 0);

und natürlich ein "attr global exclude_from_update 37_Spotify.pm" solange das Modul nicht aktualisiert wurde.

Das laden des Moduls hängt meist damit zusammen das eben nicht der RAW text kopiert und eingefügt wurde.
Link zum RAW:
https://github.com/mhop/fhem-mirror/raw/master/fhem/FHEM/37_Spotify.pm (https://github.com/mhop/fhem-mirror/raw/master/fhem/FHEM/37_Spotify.pm)

Regards
Christian
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Superposchi am 02 Januar 2021, 10:28:43
Also ich komme mit deinem Zitat nicht klar. Ich habe gestern Abend doch Fhem upgedatet, da müsste das Modul doch mit upgedatet worden sein, oder nicht?
Seit dem sind die Probleme ja erst aufgetreten.

Wo sol denn der RAW-Text eingefügt werden?
Über edit Files komme ich nicht an die Datei ran. Geht es mit Notepad++?
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Superposchi am 02 Januar 2021, 10:50:21
Also ich habe jetzt ein Device für das Spotify-Modul angelegt bekommen nachdem ich deinen RAW-Text in die 37_Spotify.pm gegen den alten Text getauscht und die zwei Zeilen ersetzt habe.

Hier das List zum Device:
Internals:
   A1_INSTRUCTIONS Open AUTHORIZATION_URL in your browser and set the code afterwards. Make sure to specify REDIRECT_URI as a redirect_uri in your API application. It is safe to rely on https://oskar.pw/ as redirect_uri because your code is worthless without the client secret and only valid for a few minutes.
    However, feel free to specify any other redirect_uri in the definition and extract the code after being redirected yourself.
   AUTHORIZATION_URL https://accounts.spotify.com/authorize/?client_id=c0b419c2f0b549a09578a1daee79e16f&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=https%3a%2f%2foskar%2epw%2f
   CFGFN     
   CLIENT_ID  c0b419c2f0b549a09578a1daee79e16f
   CLIENT_SECRET 4ab460d521ce4d63adb10917630ce155
   DEF        c0b419c2f0b549a09578a1daee79e16f 4ab460d521ce4d63adb10917630ce155
   FUUID      5ff03f34-f33f-793a-9231-74a57f739b0dca66
   NAME       SpotifyMusic
   NR         390
   NTFY_ORDER 50-SpotifyMusic
   REDIRECT_URI https://oskar.pw/
   STATE      authorization pending (see instructions)
   TYPE       Spotify
   helper:
     access_token
     authorization_url https://accounts.spotify.com/authorize/?client_id=c0b419c2f0b549a09578a1daee79e16f&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=https%3a%2f%2foskar%2epw%2f
     custom_redirect
     expires   
     refresh_token
Attributes:
   room       Test

Allerdings wird der state noch mit "authorization pending (see instructions)" angezeigt.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Superposchi am 02 Januar 2021, 11:43:00
Also das Device funktioniert jetzt, aber ich kann nichts hören was ausgegeben wird. Im STATE wird "playing" angezeigt, aber es ist keine Audio hörbar
Titel: Antw:[Neues Modul] Spotify
Beitrag von: matsahm am 11 Februar 2021, 13:18:47
Hallo,

Ich habe in Verbindung mit dem Spotify-Modul folgenden Fehler im Protokoll:
PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4836.
stacktrace:
    main::__ANON__                      called by fhem.pl (4836)
    main::readingsBulkUpdateIfChanged   called by ./FHEM/37_Spotify.pm (803)
    main::Spotify_dispatch              called by FHEM/HttpUtils.pm (639)
    main::__ANON__                      called by fhem.pl (756)

Wie kann ich das beheben?

Vielen Dank :-)
Titel: Antw:[Neues Modul] Spotify
Beitrag von: uclara am 13 Februar 2021, 11:36:43
Hallo, wenn ich Hörbücher für Kinder abspiele erscheinen folgende Fehler in den Readings:

error_code: 400
error_description: Unsupported uri kind: album

Nachdem die Hörbücher in Kapitel aufgeteilt sind wäre es schön die Anzahl der Kapitel und die Gesamtdauer des Hörbuchs als Readings auslesen zu können.

Gruß
Ulli

Titel: Antw:[Neues Modul] Spotify
Beitrag von: Treibhaus am 25 Februar 2021, 00:29:05
Hallo,

das Modul funktioniert wunderbar.
Mit den Funktionen komme ich soweit klar.

Mir ist allerdings aufgefallen, da ich Bose Soundtouch-Geräte benutze diese nicht alle angezeigtwerden. (es sind mehr als 5)
Per BoseSt-Module werden alle gelistet - muss dazu auch erwähnen das ich diese im Tagesverlauf mal abschalte (je nachdem wer so anwesend ist)
Per App (Handy) oder Spotify (Webfrontend) tauchen oder etwas später im BoseSt-Modul(Fhem) tauchen diese dann aber wieder alle auf.
Nicht aber in diesem Modul(30-Spotify).

Kann mir kurz jemand das erklären? Ist das Modul ggf begrenzt <6?
Muss ich mir die IDs (fehlender Geräte) anders vermerken ?
Gruß Jörg
Titel: Antw:[Neues Modul] Spotify
Beitrag von: riker1 am 06 Mai 2021, 15:07:27
Hi,

eine Frage zu einem Fehler im Log.

PERL ERROR: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/37_Spotify.pm line 777.
kennt das jemand?

Danke VG T
Titel: Antw:[Neues Modul] Spotify
Beitrag von: masl am 30 Juni 2021, 13:18:31
Wie kann man eine Playlist und die Titel darin zufällig abspielen?
randomPlayPlaylistbyUri geht einfach nicht...
Egal ob
set randomPlayPlaylistByURI spotify:playlist:37i9dQZF1DWXeOurMWUII5oder
randomPlayPlaylistByURI 37i9dQZF1DWXeOurMWUII5Fehler: invalid playlist_uri
Titel: Antw:[Neues Modul] Spotify
Beitrag von: mi.ke am 30 Juni 2021, 17:16:56
Wie kann man eine Playlist und die Titel darin zufällig abspielen?


Moin,
ich mach das so:
set <DEVICE> playPlaylistByName <NAMEderPLAYLIST>;set <DEVICE> shuffle oncheers
mi.ke
Titel: Antw:[Neues Modul] Spotify
Beitrag von: masl am 30 Juni 2021, 20:00:01
Mh...das ist nicht die schönste Lösung. Aber ok

Gibt es eine Möglichkeit Spotify ohne die App zu starten?
Das mit der DefaultID funktioniert ja leider nicht.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: mi.ke am 01 Juli 2021, 01:43:33
Mh...das ist nicht die schönste Lösung.

naja, alles relativ, war ja nur ein Hinweis.

So steuer ich (aus RAW kopiert):
attr Spotify webCmd volume:shuffle:transferPlayback:playArtistByName:playPlaylistByName
attr Spotify webCmdLabel Volume\
:Shuffle\
:Source\
:Artist\
:Playlist

Das bekommt ich angezeigt  (aus RAW kopiert):
attr Spotify stateFormat { if( ReadingsVal($name,"is_playing",999) == 1){ \
"<div style=\"width: 280px;;\"> ".ReadingsVal($name,"track_artist_name",999)." <br> ".ReadingsVal($name,"track_nameSolo",999)." <br> ".ReadingsVal($name,"device_active_name",999)." <br> ".substr(ReadingsVal($name,"progress",999),3,5)." | ".substr(ReadingsVal($name,"track_duration",999),3,5)." <br> ".ReadingsVal($name,"track_album_nameSolo",999)."</div>" } \
else {"S T O P"} }

Das ist die Coveranzeige (aus RAW kopiert):
defmod Spotify_Cover weblink htmlCode {\
my $cover = ReadingsVal("Spotify","track_album_cover_medium",0);;\
my $bild = ReadingsVal("Spotify","user_profile_pic_url",0);;\
\
if (ReadingsVal("Spotify","is_playing",0 == 1)) {return "<a href=http://192.168.1.2:8083/fhem?detail=Spotify><image src=$cover width=330 height=330></a>"}\
else {return "<a href=http://192.168.1.2:8083/fhem?detail=Spotify><image src=$bild width=77 height=77></a>"};;\
}
attr Spotify_Cover group Spotify
attr Spotify_Cover htmlattr width="500" height="500"
attr Spotify_Cover nodetaillink 0
attr Spotify_Cover room Test

und das die "Fernbedienung":
defmod Spotify_RC remotecontrol
attr Spotify_RC alias Spotify
attr Spotify_RC group Spotify
attr Spotify_RC rc_iconpath icons/remotecontrol
attr Spotify_RC rc_iconprefix black_btn_
attr Spotify_RC row00 toggle:PLAY,pause:PAUSE,/seekToPosition 0/:SHUFFLE,prev:REWIND,next:FF,volumeDown:VOLDOWN,volumeUp:VOLUP

Gibt es eine Möglichkeit Spotify ohne die App zu starten?

Ich verstehe die Frage nicht?!
Wenn ich auf "play" klicke oder eine Playliste auswähle, startet Spotify auf der FHEM-Instanz ohne APP.
Und natürlich über notify oder DOIF, auch ohne APP.

cheers
mi.ke
Titel: Antw:[Neues Modul] Spotify
Beitrag von: KlausT am 01 August 2021, 13:31:46
Hallo,

ich komme genau bis zum Punkt AUTHORIZATION_URL, wenn ich die in den Brwoser eingebe und mich mit meine Spotify User anmelde lande ich direkt auf der redirect_uri. Ich hab es auf drei Rechnern, mit unterschiedlichen redirect_uri ausprobiert um Cache-Effekte zu vermeiden.

Wann und wo bitte soll der Code auftauchen?

Klaus
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 02 August 2021, 09:38:52
Hallo KlausT,

da hast du es doch schon fast geschafft. Nach der Weiterleitung auf die im redirect_uri angegebene Page versteckt sich der Anmeldecode in der URL in der Adressleiste deines Browsers. Es gibt kein popup oder ähnliches.


Grüße

Anjo
Titel: Antw:[Neues Modul] Spotify
Beitrag von: KlausT am 03 August 2021, 17:19:10
Danke, hat funktioniert!

Crazy IT: Zum Ausschalten muss man Start drücken, den Antwort steht in der Adresszeile.

Ich geb zu, dass ich den Hinweis in der Online-Doku überlesen hab!

Klaus
Titel: Antw:[Neues Modul] Spotify
Beitrag von: masl am 03 August 2021, 21:34:29

Ich verstehe die Frage nicht?!
Wenn ich auf "play" klicke oder eine Playliste auswähle, startet Spotify auf der FHEM-Instanz ohne APP.
Und natürlich über notify oder DOIF, auch ohne APP.


Ich habe folgendes Problem:
Raspotify läuft auf dem PI und Lautsprecher sind dort angeschlossen. Aus FHEM heraus möchte ich diesen Steuern. Aber bei jedem Neustart verliert Spotify die Verbindung zum Raspotify und baut sie nicht automatisch auf. Ich muss dann erst die Handy App öffnen, Raspotify auswählen und dann kann ich es erst per FHEM steuern.

Trotz der Default Einstellungen im FHEM kommt der Fehler: error_description
Player command failed: No active device found

Ich suche nach einer Lösung, dass dieser Connect automatisch stattfinden kann. Unter dem Wiki von Raspotify habe ich noch nichts gelesen...
Titel: Antw:[Neues Modul] Spotify
Beitrag von: KlausT am 06 August 2021, 15:51:23
Das Problem liegt, soweit ich es sehe, an der WEB-API von Spotify. Es werden nur Geräte erkannt, auf denen Spotify aktuell gestartet ist. Auch die WEB-Oberfläche (https://open.spotify.com) zeigt dieses Verhalten.

Im Gegensatz dazu zeigt die Spotify-App (Android, Linux, Windows) auch Geräte an die Spotify-fähig sind, wie meinen AV-Receiver, selbst wenn er ausgeschaltet ist. Auf dem AVR läuft eben kein Spotify, er ist lediglich ein externer Lautsprecher für Spotify!
Bisher hab ich vergeblich versucht Spotify über FHEM dazu zu bewegen, meine  AVR einzuschalten, den Input auf OnlineMusic-Spotify zu setzen und meine Playlists abzuspielen, wie es auch die Apps machen. Wenn Spotify auf dem AVR läuft, kann ich Spotify steuern, auch wenn mir noch einige Funktionen, wie die Auswahl-Liste meiner Playlists fehlen.

Ich denke, dass nur Spotify das Problem lösen kann, indem sie in der WEB-Api die selbe Funktion zur Identifikation der möglichen Zielgeräte zur Verfügung stellt, die sie auch in den Apps nutzen.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Superposchi am 08 September 2021, 09:41:47
Woher bekomme ich denn den Code?

Wenn ich die Authorization_url aufrufe lande ich immer auf der Webseite von Oskar Neumann ohne irgendeine Angabe eines Codes.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Anjo1979 am 08 September 2021, 09:45:03
Woher bekomme ich denn den Code?

Wenn ich die Authorization_url aufrufe lande ich immer auf der Webseite von Oskar Neumann ohne irgendeine Angabe eines Codes.

Guten Morgen,

siehe meinen Post #256 vom 2. August.

Grüße
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Superposchi am 08 September 2021, 12:06:07
Danke, habs gefunden.
Ist nur dof weil im Post #1 extra gesagt wird, dass die Website den Code in Klartext ausgibt. Darum fängt man an zu suchen.

Funktioniert soweit alles ganz gut, einziges Hinderniss ist, dass ich die Musik nicht meinem Google-Nest-Lautsprecher zuweisen kann, weil dieser nicht erkannt wird.
Wird er aber auf allen Webplayern nicht. Am Handy tauchen beide auf und wenn ich dort einen Stream aktiviere, kann ich über das Device auch den Webplayer steuern. Doch wenn ich bspw. den Speak-Befehl aus dem Googlecast nutze, ist die Verbindung wieder weg und läst sich auch nicht neu zuweisen.
Titel: Antw:[Neues Modul] Spotify
Beitrag von: adrian am 29 September 2021, 19:45:59
Hallo zusammen,
bei mir wird die Fehlermeldung angezeigt, dass das Modul nicht geladen werden kann.

Die Api habe ich selbstverständlich nach Anleitung erstellt und die Reurl auch eingetragen. Beide Schlüssel vor dem Erstellen ausgelesen und entsprechend ins define eingefügt.

Im Log steht folgendes:
2021.09.29 19:29:55 1: reload: Error:Modul 37_Spotify deactivated:
 Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

2021.09.29 19:29:55 0: Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

Habt Ihr irgendeine Idee woran das liegt?
muß eventuell auf Raspiseite noch etwas nach installiert werden?

danke und schönen Abend noch
Adrian
Titel: Antw:[Neues Modul] Spotify
Beitrag von: Superposchi am 01 Oktober 2021, 08:28:15
Den Fehler hatte ich auch.
Es mussten Werte in der pm-Datei geändert werden. Die Lösung stand irgendwo auf den Seiten vorher. Schau mal einfach die Seiten durch.