[Modul] Spotify 1.1

Ist doch dieses Repository: symcon/SymconSpotify: A Symcon Module to control Spotify (github.com) ?

Da steht bei mir letztes commit vom 7. Januar… das hat mich nur etwas gewundert…

Hallo @Stefan71

heist das, das dein Marantz mal irgendwann mit Spotify funktioniert hat, und jetzt nicht mehr?

Hast du dich mal mit dem Problem an Spotify gewandt?
Ich habe mit den Alexas der 4th Generation nur Kirmes!
hatte mit Spotify zwar Kontakt deswegen, aber ob das Früchte trägt :thinking:
Ich bin warscheinlich nur der doofe Endanwender, der zwar bezahlen darf aber sonst am besten die Schnauze hält.

@Dr.Niels

könntet ihr nicht mal Spotify eine Email schreiben, ich meine so unter Entwicklern auf Augenhöhe. :innocent:
Ich meine immerhin vertreibt ihr ein Spotify Modul was nicht einwandfrei funktioniert.

Ich weiß das es nicht am Symcon liegt, ich sehe euch da aber auch ein wenig in der Verantwortung zumindest mit Spotify in Kontakt zu treten, um euren Kunden ein vernüftiges Modul zu liefern.

ich ärgere mich gerade wie die Sau, da kauft man sich Symcon, kauft sich Amazon Echo Geräte, bucht einen Spotify Account, und dann festzustellen ätschi bätschi das funktioniert ja gar nicht.

wie gesagt ist nicht direkt gegen euch, weil ich weiß das das Modul ok ist :kissing_heart:

Dein Name ist nicht wirklich Programm. :see_no_evil:

Wenn Du Dich im Forum besser informierst, wirst Du feststellen, dass hier wirklich auf viele Belange der User eingegangen wird und auch ein hoher Anspruch an Kundenzufriedenheit besteht.

Wenn Du IPS hauptsächlich wegen der Einbindung von Spotify gekauft hast, finde ich die Entscheidung unüberlegt.

Der Modulstore ist ein Angebot an Leute, die es sich gerne aus welchen Grüden auch immer bequem machen und wird sehr geschätzt. Es ist aber nur ein nice to have.

und du sollst besser lesen!
dann wirst du feststellen, das ich 2x geschrieben habe das das Modul ok ist.
und außerdem habe ich Dr.Niels eine Frage gestellt, die du eh nicht beantworten kannst.

und ich bin mit Symcon zufrieden, das habe ich nicht bestritten

You are welcome :kissing_heart:

Gruß

Im Module Store findet ihr jetzt eine neue Beta für das Spotify Modul:

  • Neu: Lautstärke kann eingestellt werden
  • Neu: Umbau von Favoriten und Geräten als Stringvariablen mit Profil, ACHTUNG: Bei einem Upgrade von einer vorherigen Version werden hierfür neue Variablen erstellt und die alten gelöscht. Sollten also Ereignisse/Skripte/… etc. mit diesen Variablen interagieren, müssen sie angepasst werden
  • Neu: Die Dauer des aktuellen Songs sowie aktuelle Position werden dargestellt und die Position kann angepasst werden

Ich freue mich auf euer Feedback!

2 „Gefällt mir“

@Dr.Niels könntest du so einen Switch einbauen? Würde das Modul gerne deaktivieren, da wieder vermehrt Fehler auftreten.

22.11.2021, 15:01:52 | TimerPool            | Spotify (UpdateTimer): 
Warning: file_get_contents(https://api.spotify.com/v1/me/player): failed to open stream: HTTP request failed! HTTP/1.0 502 Bad Gateway
 in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 719

Fatal error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php:579
Stack trace:
#0 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(579): json_decode(false, true)
#1 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(447): Spotify->requestCurrentPlay()
#2 /var/lib/symcon/scripts/__generated.inc.php(3939): Spotify->UpdateVariables()
#3 /-(1): SPO_UpdateVariables(39160)
#4 {main}
  thrown in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 579

Hellohello,

ich habe wegen der Lautstärkeregelung jetzt mal auf Beta umgestellt und installiert. Die Volume Variable habe ich jetzt auch. Wie kann ich sie denn einstellen über ein php script? SPO_SetVolume () geht nicht. Gibts da eine Doku?

Wie jede Variable kann auch die Lautstärkevariable per RequestAction geschaltet werden. Eine instanzspezifische Funktion existiert daher nicht. Natürlich kannst du die Variable auch per Aktion im Ablaufplan schalten.

Alles klar, Vielen Dank. RequestAction hatte ich bisher noch nie verwendet. SetValueInteger hatte ich auch probiert, änderte aber nur die Variable und nicht Einstellung in Spotify.

Seit ein paar Tagen produziert das Modul tausende von diesen Fehlern bei mir:

Eine Idee was da schief läuft? Funktionieren tut das Modul trotzdem. Zumindest ist mir nichts aufgefallen, was nicht ginge.

Gruß
Slummi

Es wirkt so, als wenn ein Lied am Ende ist und das Modul die Infos zum nächsten Lied haben möchte. Diese Anfrage schlägt dann leider fehl, das Lied ist also immer noch am Ende und in der nächsten Sekunde wird erneut nachgefragt…

Aktualisieren sich die Variablen bei dir denn prinzipiell wenn ein neues Lied kommt? Oder bleiben die gleich? Oder kommen die Meldungen, wenn du gar nichts abspielst?

So wie ich es sehe, kommen die Fehlermeldungen hauptsächlich dann, wenn nirgendwo was abgespielt wird. Muss ich mir aber noch mal genauer ansehen.

Die Variablen werden korrekt aktualisiert. Nur wenn ich von extern (also nicht über das Modul) die Wiedergabe starte, dauert es eine Zeit, bis das Modul erkennt, dass gerade was abgespielt wird. Das liegt aber sicher am Aktualisierungintervall von 60 s. Während der Wiedergabe wird sekündlich aktualisiert, ansonsten wird einmal pro Minute gecheckt, ob sich was geändert hat. Das dürfte also normales Verhalten sein.

Gruß
Slummi

Fast. Ich hole mal ein bisschen aus, vielleicht hilft es ja bei der Fehleranalyse. Es wird auf jedem Fall laut Aktualisierungsintervall aktualisiert. Wird ein Lied abgespielt wird zusätzlich jede Sekunde die Position im Lied um eine Sekunde weitergezählt (maximal bis zur Länge des Liedes). Sollte das Lied am Ende angekommen sein, dann wird unabhängig vom Aktualisierungsintervall einmal alles aktualisiert.

Das ist übrigens auch das, was bei deiner Fehlermeldung passiert. Das Modul ist der Annahme das Lied ist vorbei und möchte aktualisieren, dabei kommt es allerdings zum Fehler. Da es in der nächsten Sekunde also immer noch so aussieht als wenn das Lied am Ende ist, wird die Anfrage wiederholt und schlägt erneut fehl. Ich schaue mir das aber mal an.

Also gerade hatte ich beim Testen den Fall, dass die Variablen nicht aktualisiert wurden.
Bzw. aktualisiert schon, aber Cover, Song, Künstler, Album, Position, Dauer Fortschritt bekamen leere Werte.

Ich habe über die Windows-App auf dem PC zum Testen einen Podcast abgespielt. Dass etwas läuft (Play) hat das Modul erkannt und auch auf welchem Gerät es läuft. Nur die zuvor genannten Variablen hatten keinen Inhalt. Allerdings traten dabei auch keine Fehler auf. Vielleicht unterstützt das Modul noch keine Podcasts?!

Ich werde es mal weiter beobachten, ob ich irgendwas auffälliges erkenne, wenn die Fehlermeldungen das nächste Mal kommen.

Im Moment bekomme ich wieder im Sekundentakt neue Fehlermeldungen. :frowning:

Es wird zurzeit nichts über Spotify abgespielt.
Das Modul ist jedoch der Meinung, dass etwas läuft (Aktion steht auf „Play“). Alle Variablen sind befüllt, werden jedoch nicht aktualisiert. Mit Ausnahme der Variablen Position und Fortschritt. Beide stehen am Ende (100 %) und Position entspricht dem Wert von „Dauer“.

Die Variable „Gerät“ flackert in der Konsole im Sekundentakt. Es blitzt immer kurz irgrendeine ID als Wert auf, dann ist sie wieder leer. Die Zeitstempel für aktualisiert und geändert bleiben jedoch unverändert.

Die Variable „Favorit“ flackert in der Konsole ebenfalls ohne dass sich deren Wert ändert.

Das Ganze geht jetzt scheinbar seit heute Nacht so.

Kannst du mal im Debug Log vom Spotify Modul schauen, während die Fehlermeldungen fliegen? Eigentlich sollten unpassende oder leere Antworten abgefangen werden und in dem Falle die Wiedergabe als gestoppt angesehen werden… Das ist eigentlich schon länger so implementiert. Warum greift das bei dir nicht?

Habe gerade zufällig gesehen, dass das Modul wieder rum spackt.
Auf einem Echo läuft zur Zeit Spotify. Das Modul macht wieder das gleiche wie beim letzten Mal:

Folgende Variablen haben die richtigen Werte:

  • Cover
  • Song
  • Künstler
  • Album
  • Aktion
  • Gerät
  • Song
  • Wiederholen

Position und Dauer haben den gleichen Wert, Fortschritt steht bei 100 %.

Position und Fortschritt werden sekündlich aktualisiert, ohne dass sich der Wert ändert. Der Rest aktualisiert sich nicht.

Die Werte von Gerät und Favorit flackern immer hin und her zwischen Gerätename und ID und Song und irgendwas anderem, was ich so schnell nicht erkennen kann. Die Zeitstempel (aktualsiert/geändert) bleiben jedoch unverändert.

Ich habe gerade mal das Debugging angeschmissen. Dort kommt jede Sekunde das hier:

Die Geräte-Liste ist im Screenshot abgeschnitten. Da kommen noch ein paar Geräte. Ansonsten wiederholt sich dieser Ausschntitt jede Sekunde und parallel dazu gibt es jede Sekunde den HTTP 500 Fehler. Mein Status-Widget und die Meldungen drehen wie immer durch. Alles nur vom Spotify-Modul. :grimacing:

@Dr.Niels Ich kann dir den kompletten Dump auch gerne per PM zukommen lassen, falls du den brauchst.

Gruß
Slummi

Die entscheidende Information ist im Screenshot zu sehen. Die Player-Abfrage liefert den Rückgabewert „false“. Damit sollte das Modul eigentlich klar kommen, aber ich teste selbst nochmal ein bisschen… Da muss ich wohl doch ein paar zusätzliche Checks einführen.

Danke auf jeden Fall fürs Debugging und die Analyse!

Ich habe mal eine neue Version auf dem Beta-Kanal rausgebracht. Schaut mal, ob sich der Fehler damit erledigt hat. Wenn alles in Ordnung ist, würde ich das auch zeitnah mal in den Stable-Kanal schieben.