[Modul] Spotify 1.1

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.

Danke für die Rückmeldung und das Bereitstellen der neuen Version!
Ich habe sie eben installiert und werde das Verhalten beobachten.

Heute Nacht hatte ich wieder einige Fehlermeldungen. Allerdings bei weitem nicht in dem Ausmaß, wie bisher.

Reagiert das Modul empfindlich auf kurzzeitige Abbrüche der Internetverbindung? Die Fehlermeldungen heute Nacht begannen nämlich zufällig zu der Zeit als die Internetverbindung ganz kurz weg war. Allerdings kamen sie auch noch eine halbe Stunde, nachdem sie bereits wieder da war.

Bei den bisherigen Fehlermeldungen gab es übrigens keine Abbrüche der Internetverbindung. Nur der Vollständigkeit halber.

Gruß
Slummi

Was für Fehlermeldungen kamen denn dieses mal? Der ursprüngliche Fehler dürfte nämlich nicht mehr möglich sein… Es kann sein, dass ein Verbindungsabbruch für Probleme sorgt, aber bewusst wäre mir da nichts.

Heute kamen auch wieder einige 100 Fehlermeldungen, die ebenfalls auf HTTP 500 basieren.
Dieses Mal ohne dass die Internetverbindung weg gewesen wäre.

Ah, ok. Es kann gut sein, dass die Fehlermeldungen geloggt werden. Das Modul an sich funktioniert aber korrekt, oder? Ich würde aber wohl die Fehlermeldungen beim Update unterdrücken, damit die das Log nicht vollmüllen.

Ja, ich denke das Modul funktioniert. Habe jedenfalls nichts gegenteiliges festgestellt. Wobei die Fehlermeldungen auch wieder zu Zeiten kamen, wo nichts abgespielt wurde.

Ja, das kann gut sein. Wenn nichts abgespielt wird, schlägt wohl je nach verwendetem System die Abfrage möglicherweise fehl. Neuerdings kann das Modul damit umgehen und stellt dann korrekterweise die Anzeige auf Stop. Da es allerdings dennoch einen Fehler gab, wird dieser geloggt. Ich baue dann mal eine Version, in der ich das unterdrücke.

1 „Gefällt mir“

Neue Version mit unterdrückten Fehlermeldungen ist als Beta im Module Store

Mit der neuen Version funktioniert das Modul leider nicht mehr. Jetzt bekomme ich nur noch diese Fehlermeldungen und die Variablen werden während der Wiedergabe nicht aktualisiert.

Und hier noch ein aktueller Auszug aus dem Debugging:

Irgendwie ist aber auch der Wurm drin… Sorry. :frowning:

Hatte heute früh auch einen Fehler:

03.03.2022, 09:09:24 | TimerPool            | Spotify (UpdateTimer): 
Warning: file_get_contents(https://api.spotify.com/v1/me/player/devices): failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized
 in C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php on line 816

Fatal error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php:870
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php(870): json_decode(false, true)
#1 C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php(510): Spotify->UpdateDevices()
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(2031): Spotify->UpdateVariables()
#3 C:\Windows\System32\-(1): SPO_UpdateVariables(50543)
#4 {main}
  thrown in C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php on line 870
Abort Processing during Fatal-Error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php:870
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php(870): json_decode(false, true)
#1 C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php(510): Spotify->UpdateDevices()
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(2031): Spotify->UpdateVariables()
#3 C:\Windows\System32\-(1): SPO_UpdateVariables(50543)
#4 {main}
  thrown
   Error in Script C:\ProgramData\Symcon\modules\.store\de.symcon.spotify\Spotify\module.php on Line 870

richimaint