Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Spotify Skript

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Spotify Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • wendy2702
      wendy2702 last edited by

      @0018:

      ich habe gesehen das noch ein Überbleibsel im Script ist….

      So müsste es gehen:

      ! ````
      // Script zur Auswahl einer Spotify Playlist über select-valuelist
      ! var pfad1 = "javascript.0.Allgemein.";
      var pfad2 = "javascript.0.Spotify.Playlists.";
      var list = pfad1 + "Spotify_Playlist";
      var list1 = pfad2 + "BAYWATCH2017.Play_this_List";
      var list2 = pfad2 + "BeastMode.Play_this_List";
      var list3 = pfad2 + "Cardio.Play_this_List";
      var list4 = pfad2 + "Complete Marvel Music Cinematic Universe.Play_this_List";
      var list5 = pfad2 + "Crossfit?????.Play_this_List";
      var list6 = pfad2 + "Dance Hits.Play_this_List";
      var list7 = pfad2 + "Discover Weekly.Play_this_List";
      ! var debug = true;
      ! createState(list, {name: "Spotify Playlist", type: "string", def: "list0"});
      ! //Auswahl der jeweiligen Playlist
      on({id: list, val: "list1", change: "ne"}, function() {
      setState (list1, true);
      if (debug) log ("list1 ausgewählt");
      });

      on({id: list, val: "list2", change: "ne"}, function() {
      setState (list2, true);
      if (debug) log ("list2 ausgewählt");
      });

      on({id: list, val: "list3", change: "ne"}, function() {
      setState (list3, true);
      if (debug) log ("list3 ausgewählt");
      });

      on({id: list, val: "list4", change: "ne"}, function() {
      setState (list4, true);
      if (debug) log ("list4 ausgewählt");
      });

      on({id: list, val: "list5", change: "ne"}, function() {
      setState (list5, true);
      if (debug) log ("list5 ausgewählt");
      });

      on({id: list, val: "list6", change: "ne"}, function() {
      setState (list6, true);
      if (debug) log ("list6 ausgewählt");
      });

      on({id: list, val: "list7", change: "ne"}, function() {
      setState (list7, true);
      if (debug) log ("list7 ausgewählt");
      });

      
      Als Hinweis hierzu siehst du im LOG:
      

      14:27:47.721 [error] javascript.0 at script.js.common.Spotify.Spotify_Playlist:19:9

      das der Fehler in Zeile 19:9 sein muss, dort wurde die Variable "playID" verwendet die es nicht mehr im Script gibt gibt, daher der Fehler. `  
      

      Ein Frage / Bitte an die Script Gurus 🙂

      Könnte man irgendwie die Playlist Auswahl automatisieren?

      Aktuell muss ich ja immer das Script und auch das Widget anpassen. Jetzt sind wir hier 4 Personen im Haushalt die immer mal ne Playlist hinzufügen/entfernen und ich muss dann jedesmal alles anpassen daher meine Frage.

      Weiß nicht ob es geht z.B. alle Playlist info direkt in ein Object zu schreiben welches man dann im Dropdown Menu auswählen kann. Das könnte man dann einmal Nachts per cron laufen lassen und hat am nächsten Tag alles aktuell.

      Hoffe ihr versteht was ich meine.

      Gruß

      1 Reply Last reply Reply Quote 0
      • L
        Lucky last edited by

        Wenn es gewünscht wird, kann ich ein Objekt als dropdown Menü anlegen das alle playlisten enthält

        1 Reply Last reply Reply Quote 0
        • wendy2702
          wendy2702 last edited by

          Wäre einen ersten Versuch wert ob das so funktionieren würde.

          Muss ja irgendwie der „Play this…“ sein oder werden.

          Gesendet von iPhone mit Tapatalk Pro

          1 Reply Last reply Reply Quote 0
          • L
            Lucky last edited by

            @fischi87,

            Beim ersten Start gibt es die Token Datei noch nicht, diese wird nach erfolgreicher Autorisierung angelegt… dann wechselt 'Authorized' auf true

            @wendy2702

            wenn ich ein DropDown mit den Playlisten erstellen würde, wäre diese nur unter den Objekten im Admin sichtbar, so wie es jetzt schon bei den Tracks der Playlisten ist.. Play_this.. bräuchte man dafür nicht, die Liste würde dann bei Wertänderung abgespielt werden

            Wie man so ein DropDown allerdings im VIS damit füllt kann ich leider nicht beantworten

            1 Reply Last reply Reply Quote 0
            • fischi87
              fischi87 last edited by

              @Lucky:

              @fischi87,

              Beim ersten Start gibt es die Token Datei noch nicht, diese wird nach erfolgreicher Autorisierung angelegt… dann wechselt 'Authorized' auf true

              @wendy2702

              wenn ich ein DropDown mit den Playlisten erstellen würde, wäre diese nur unter den Objekten im Admin sichtbar, so wie es jetzt schon bei den Tracks der Playlisten ist.. Play_this.. bräuchte man dafür nicht, die Liste würde dann bei Wertänderung abgespielt werden

              Wie man so ein DropDown allerdings im VIS damit füllt kann ich leider nicht beantworten `

              Das mit dem Token hab ich schon verstanden, in meinem Post stehen darunter weitere Fehler vom script, kannst du da nochmal genauer hinschauen bitte?! Ich bekomme einfach kein true. Ich bekomme die url geb die ein und bekomme den Code zurück, füge diesen wieder ein aber es bleibt bei False?!

              Gesendet von iPhone mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • wendy2702
                wendy2702 last edited by

                @fischi87: Wenn das bei „false“ bleibt musst du die Objekt Seite mal neu laden. Das hatte ich auch. Die APP auf der Spotify Developer Seite hast du aber eingerichtet und eventuell auch den link auf „localhost“ geändert?

                @Lucky: wenn du das einfach einbauen kannst sollte das mit einem Select Widget machbar sein denke ich.

                1 Reply Last reply Reply Quote 0
                • L
                  Lucky last edited by

                  @fischi87

                  Ich kann den Fehler leider nicht reproduzieren..

                  Ich habe bei mir das Skript jetzt nochmal raus geworfen, alle Datenpunkte gelöscht, die token Datei manuell gelöscht und alles von Null aufgesetzt.. Keine Fehler

                  Hast du die Client ID, Client Secret und redirect Uri als string ohne Leerzeichen und genau so wie in den App settings eingegeben?

                  1 Reply Last reply Reply Quote 0
                  • W
                    Worn last edited by

                    Hi zusammen,

                    ich habe leider auch seit einiger Zeit Probleme damit. Erstmal habe ich recht häufig folgendes im Log:

                    javascript.0 script.js.common.Spotify: Access Token Abgelaufen!!
                    javascript.0 script.js.common.Spotify: Token wird erneut angefordert ! 
                    javascript.0 script.js.common.Spotify: neuer Token eingetroffen
                    javascript.0 script.js.common.Spotify: Token Saved!
                    javascript.0 script.js.common.Spotify: FEHLER BEIM ERNEUTEN DATEN ANFORDERN !
                    javascript.0 script.js.common.Spotify: Fehler 202 Function Refresh_Token
                    
                    

                    Das berappelt sich aber meist wieder und später steht dort dann statt der Zeile die mit "Fehler" beginnt das Folgende.

                    javascript.0 script.js.common.Spotify: Daten mit neuem Token
                    
                    

                    Leider kommt es im Laufe eines Tages immer auch zu dem folgenden Fehler, der danach permanent da bleibt und das log vollschreibt.

                    javascript.0 	 Wrong type of javascript.0.Spotify.PlaybackInfo.Device.volume_percent: "object". Please fix, while deprecated and will not work in next versions.
                    javascript.0     at CreatePlaybackInfo (script.js.common.Spotify:240:2)
                    javascript.0     at script.js.common.Spotify:689:31
                    javascript.0     at Request._callback (script.js.common.Spotify:162:24)
                    javascript.0     at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:186:22)
                    javascript.0     at emitTwo (events.js:106:13)
                    javascript.0     at Request.emit (events.js:191:7)
                    javascript.0     at Request. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1163:10)
                    javascript.0     at emitOne (events.js:96:13)
                    javascript.0     at Request.emit (events.js:188:7)
                    javascript.0     at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1085:12)
                    javascript.0     at IncomingMessage.g (events.js:292:16)
                    javascript.0     at emitNone (events.js:91:20)
                    javascript.0     at IncomingMessage.emit (events.js:185:7)
                    javascript.0     at endReadableNT (_stream_readable.js:974:12)
                    javascript.0     at _combinedTickCallback (internal/process/next_tick.js:80:11)
                    javascript.0     at process._tickCallback (internal/process/next_tick.js:104:9)</anonymous></anonymous> 
                    

                    Was das "Wrong type of javascript.0.Spotify.PlaybackInfo.Device.volume_percent: "object"" angeht, kann ich das nicht nachvollziehen. Es ist auf "number" eingestellt. Ich habe daran auch nie etwas geändert. Leider funktioniert das Skript bei mir nahezu nie, wenn ich es brauche. Starte ich alles neu, dann klappt es beim Testen. Am nächsten Morgen klappt es dann nicht mehr. Ich habe auch mal in Zeile 702 des Codes das Intervall für CreatePlaybackInfo drastisch erhöht, damit nicht alle 5 Sekunden etwas passiert. Das hat aber nichts geändert.

                    JS-Adapter ist auf 3.5.1. Alle anderen Adapter sind auf "grüner" stable Version. Node ist 6.12.0, NPM 3.10.10.

                    Was kann ich tun?

                    Danke und Grüße

                    Ben

                    1 Reply Last reply Reply Quote 0
                    • L
                      Lucky last edited by

                      Nimm das Skript bitte aus Common raus und speichere es JavaScript.0 Spotify !

                      Wenn wenn du das getan hast, löschen alle datenpunkte bevor du es wieder startest, dann sollte es laufen !

                      1 Reply Last reply Reply Quote 0
                      • fischi87
                        fischi87 last edited by

                        @Lucky:

                        @fischi87

                        Ich kann den Fehler leider nicht reproduzieren..

                        Ich habe bei mir das Skript jetzt nochmal raus geworfen, alle Datenpunkte gelöscht, die token Datei manuell gelöscht und alles von Null aufgesetzt.. Keine Fehler

                        Hast du die Client ID, Client Secret und redirect Uri als string ohne Leerzeichen und genau so wie in den App settings eingegeben? `

                        Ja genau so hab ich dies getan. Ich bin Mitglied in einem Family Account aber wie ich gelesen habe dürfte das kein Problem sein oder?

                        Versteh ich einfach nicht [emoji17]

                        Gesendet von iPhone mit Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • L
                          Lucky last edited by

                          da ich leider keinen Family Account habe, kann ich das nicht testen… bist du der Hauptnutzer oder Gast ? manche haben hier schon geschrieben dass es mit Family läuft...

                          1 Reply Last reply Reply Quote 0
                          • wendy2702
                            wendy2702 last edited by

                            Ich nutze das mit Family account.

                            Kannst du mal screenshots deiner Spotify WEB App posten und das was du im Script eingetragen hast?

                            Kannst ja ein paar stellen von den ID‘s ändern bzw. Unkenntlich machen.

                            1 Reply Last reply Reply Quote 0
                            • L
                              Lucky last edited by

                              @wendy2702:

                              Ich nutze das mit Family account.

                              Kannst du mal screenshots deiner Spotify WEB App posten und das was du im Script eingetragen hast?

                              Kannst ja ein paar stellen von den ID‘s ändern bzw. Unkenntlich machen. `

                              Hauptnutzer oder Gast ? ich vermute das es einen Unterschied gibt

                              1 Reply Last reply Reply Quote 0
                              • wendy2702
                                wendy2702 last edited by

                                Ich bin jetzt Hauptnutzer.

                                Kann das aber morgen eventuell mal mit einem Gast Account testen.

                                1 Reply Last reply Reply Quote 0
                                • W
                                  Worn last edited by

                                  @Lucky:

                                  Nimm das Skript bitte aus Common raus und speichere es JavaScript.0 Spotify !

                                  Wenn wenn du das getan hast, löschen alle datenpunkte bevor du es wieder startest, dann sollte es laufen ! `

                                  Hi Lucky,

                                  auf die Gefahr hin, dass ich mich blamiere. Wie mache ich das? Ich habe bei Skripte JavaScript.0 nicht zur Auswahl als Ordner etc.? Ich kann dort selber Gruppen anlegen, ist das gemeint? Kannst du mir sonst ein Bild zeigen wie/wo ich das ablegen soll? Ich verstehe den Satz "speichere es JavaScript.0 Spotify " leider einfach nicht.

                                  Danke Dir!

                                  Grüße

                                  Ben

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    Lucky last edited by

                                    @Worn:

                                    @Lucky:

                                    Nimm das Skript bitte aus Common raus und speichere es JavaScript.0 Spotify !

                                    Wenn wenn du das getan hast, löschen alle datenpunkte bevor du es wieder startest, dann sollte es laufen ! `

                                    Hi Lucky,

                                    auf die Gefahr hin, dass ich mich blamiere. Wie mache ich das? Ich habe bei Skripte JavaScript.0 nicht zur Auswahl als Ordner etc.? Ich kann dort selber Gruppen anlegen, ist das gemeint? Kannst du mir sonst ein Bild zeigen wie/wo ich das ablegen soll? Ich verstehe den Satz "speichere es JavaScript.0 Spotify " leider einfach nicht.

                                    Danke Dir!

                                    Grüße

                                    Ben `

                                    siehe Anhang
                                    2611_unbenannt.jpg

                                    1 Reply Last reply Reply Quote 0
                                    • fischi87
                                      fischi87 last edited by

                                      @wendy2702:

                                      Ich nutze das mit Family account.

                                      Kannst du mal screenshots deiner Spotify WEB App posten und das was du im Script eingetragen hast?

                                      Kannst ja ein paar stellen von den ID‘s ändern bzw. Unkenntlich machen. `

                                      ~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201801 ... 02aaca.jpg">https://uploads.tapatalk-cdn.com/20180130/1d6c3d77916771606b436d246002aaca.jpg</link_text>" />

                                      ~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201801 ... 4f06c2.jpg">https://uploads.tapatalk-cdn.com/20180130/540fb1c3ae7614d35bf004e24a4f06c2.jpg</link_text>" />

                                      Hier was falsch?

                                      Gesendet von iPhone mit Tapatalk~~~~

                                      1 Reply Last reply Reply Quote 0
                                      • L
                                        Lucky last edited by

                                        Alles richtig, aber lass wendy mal testen ob es auch mit dem Gast Account geht!

                                        1 Reply Last reply Reply Quote 0
                                        • W
                                          Worn last edited by

                                          @Lucky:

                                          siehe Anhang `

                                          Hi Lucky,

                                          top das ihr hier alle online seid ;). Ich habe das Skript nun neu gespeichert und vorher auch alle Objekte entfernt. Leider ohne Erfolg. Nun klappt es gar nicht mehr. Sobald ich das Skript starte wird das Log zugeschüttet mit den Meldungen die ich oben gepostet habe. Auch wenn ich GetDevices ausführe findet er nicht alle Devices. Ich habe auch den PI komplett neu gestartet und alles auch nochmal von vorne gemacht, aber es klappt leider nicht mehr. Aktuell muss ich das Skript so leider deaktivieren :(.

                                          Hat sonst niemand ähnliche Fehlermeldungen? Ich hatte diese Anfangs auch nicht. Dann fing das plötzlich an, erst danach habe ich mal Updates gemacht etc. aber ohne Veränderung.

                                          Danke!

                                          Grüße

                                          Ben

                                          EDIT:

                                          Habe alles nochmal gemacht und anschließend den State "javascript.0.Spotify.PlaybackInfo.Device.volume_percent" manuell abgeändert von ALLGEMEIN/TYPE: Number zu gemisch und NAVITE/TYPE: Number zu object. Seither habe ich keine dieser Meldungen mehr wie vorher beschrieben. Die anderen States "volumne_percent" sind initial nicht auf Number eingestellt. @Lucky: Ich kann es grade nicht beurteilen, daher die Frage ob das bei mir irgendwie falsch angelegt wird oder was das sein kann?

                                          1 Reply Last reply Reply Quote 0
                                          • fischi87
                                            fischi87 last edited by

                                            @Lucky:

                                            Alles richtig, aber lass wendy mal testen ob es auch mit dem Gast Account geht! `

                                            Das wäre gut wenn es jemand testen könnte mit einem Familyaccount. Danke

                                            Gesendet von iPhone mit Tapatalk

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            588
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            95
                                            745
                                            183791
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo