Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Spotify Skript

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

[Vorlage] Spotify Skript

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
745 Beiträge 95 Kommentatoren 264.6k Aufrufe 41 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Alex1808A Offline
    Alex1808A Offline
    Alex1808
    schrieb am zuletzt editiert von
    #400

    @twonky:

    Und ändere in deinem Skript bitte mal die Zeile: `

    Hallo,

    habe iobroker.spotify-premium adapter auch eine Woche am laufen gehabt, aber seit ein paar tage funktionieren widgets nicht mehr. Zeigen alle "undefined" an.

    Widgetsbeispiele habe ich vom Github. (Adapter v. 0.3.1 (2018.06.20))

    ! 513_screenshot_at_juni_21_09-07-55.png

    Wurde was geändert?

    1 Antwort Letzte Antwort
    0
    • twonkyT Offline
      twonkyT Offline
      twonky
      schrieb am zuletzt editiert von
      #401

      @Alex1808: Was steht bei dir in den States:

      • spotify-premium.0.playbackInfo.playlist.trackListNumber

      • spotify-premium.0.playbackInfo.playlist.trackListString

      • spotify-premium.0.devices.availableDeviceListIds

      • spotify-premium.0.devices.availableDeviceListString

      • spotify-premium.0.playlists.playlistListIds

      • spotify-premium.0.playlists.playlistListString
        ?

      Welche VIS Version benutzt du?

      1 Antwort Letzte Antwort
      0
      • Alex1808A Offline
        Alex1808A Offline
        Alex1808
        schrieb am zuletzt editiert von
        #402

        @twonky:

        @Alex1808: Was steht bei dir in den States: `

        • spotify-premium.0.playbackInfo.playlist.trackListNumber
        > Leer
        
        • spotify-premium.0.playbackInfo.playlist.trackListString

          Leer

        • spotify-premium.0.devices.availableDeviceListIds

          Leer

        • spotify-premium.0.devices.availableDeviceListString

          Leer

        • spotify-premium.0.playlists.playlistListIds

          Leer

        • spotify-premium.0.playlists.playlistListString

          Leer

        > Welche VIS Version benutzt du?
        VIS v1.1.4, admin v3.4.6, Redis v3.2.6, Node v8.11.3, NPM 6.1.0

        1 Antwort Letzte Antwort
        0
        • twonkyT Offline
          twonkyT Offline
          twonky
          schrieb am zuletzt editiert von
          #403

          @Alex1808: Da die States leer sind, kann auch nix angezeigt werden. Ist dein Spotify Adapter denn korrekt authorisiert, also steht der State "spotify-premium.0.authorization.authorized" auf true?

          Die States spotify-premium.0.devices.availableDeviceList* sollten auf jedenfall was enthalten, wenn du gerade eine Playlist abspielst.

          1 Antwort Letzte Antwort
          0
          • Alex1808A Offline
            Alex1808A Offline
            Alex1808
            schrieb am zuletzt editiert von
            #404

            @twonky:

            @Alex1808: Da die States leer sind, kann auch nix angezeigt werden. Ist dein Spotify Adapter denn korrekt authorisiert, also steht der State "spotify-premium.0.authorization.authorized" auf true?

            Die States spotify-premium.0.devices.availableDeviceList* sollten auf jedenfall was enthalten, wenn du gerade eine Playlist abspielst. `

            Ja, Autorisation ist auf true. Habe auch versucht Autorisierung neu durchzuführen (Erfolgreich)

            ! 513_screenshot_at_juni_21_22-36-58.png

            spotify-premium.0.devices.availableDeviceList ist gefühlt

            ! 513_screenshot_at_juni_21_22-38-09.png

            ! 513_screenshot_at_juni_21_22-51-04.png

            Hatt ja auch einige tage funktioniert, nur habe ich bemerkt das beim langem Standby werden Fehler im log angezeigt. Dann habe mit einem Skript im VIS eine taste eingebaut die Instanz ausschaltet/einschaltet. Aber die hat nur Instanz gesteuert.

            1 Antwort Letzte Antwort
            0
            • B4n4n3B Offline
              B4n4n3B Offline
              B4n4n3
              schrieb am zuletzt editiert von
              #405

              Hallo zusammen,

              ich bin da nun echt nicht so tief drin um wirklich mitreden zu können, aber gibt es was neues bzgl. den Sonos Devices?

              Die werden bei mir nicht aufgelistet. Ich hab hier allerdings etwas in der API von Spotify gefunden… könnte das helfen?

              https://developer.spotify.com/documenta ... e-devices/

              Kann das, sofern noch nicht geschehen, im Spotify Adapter implementiert werden?

              Bitte steinigt mich nicht, wenn ich etwas falsch verstehe ;-)

              Grüße B4n4n3

              1 Antwort Letzte Antwort
              0
              • twonkyT Offline
                twonkyT Offline
                twonky
                schrieb am zuletzt editiert von
                #406

                @B4n4n3: Sonos Geräte funktionieren irgendwie anders. Ich kann das leider nicht testen, da ich keins habe. (Ich sollte vielleicht in der Adapter Beschreibung erwähnen, das Sonos Geräte nicht funktionieren.) Der von dir verlinkte API Punkt wird bereits abgefragt, solange die Sonos Geräte dort nicht auftauchen, kann ich auch nix machen.

                1 Antwort Letzte Antwort
                0
                • B4n4n3B Offline
                  B4n4n3B Offline
                  B4n4n3
                  schrieb am zuletzt editiert von
                  #407

                  Hmm… ok, danke für die Antwort! Das ist sehr schade. Ich hoffe Spotify und Sonos schaffen es bald das die Geräte da auftauchen.

                  1 Antwort Letzte Antwort
                  0
                  • Alex1808A Offline
                    Alex1808A Offline
                    Alex1808
                    schrieb am zuletzt editiert von
                    #408

                    @twonky:

                    @Alex1808: Da die States leer sind, kann auch nix angezeigt werden. Ist dein Spotify Adapter denn korrekt authorisiert, also steht der State "spotify-premium.0.authorization.authorized" auf true?

                    Die States spotify-premium.0.devices.availableDeviceList* sollten auf jedenfall was enthalten, wenn du gerade eine Playlist abspielst. `

                    Adapter komplet runter und neu installiert. Alle Daten sind wieder da.

                    Jetzt habe alle drei Häkchen bei Einstellungen aktiviert.

                    Werde nach einer Woche berichten :)

                    1 Antwort Letzte Antwort
                    0
                    • MicM Offline
                      MicM Offline
                      Mic
                      Developer
                      schrieb am zuletzt editiert von
                      #409

                      Hallo,

                      falls Ihr auch mit der Problematik betroffen seid:

                      wenn eine Alexa-Gruppe verwendet wird (z.B. "Überall") und ein oder mehrere Alexa dieser Gruppe vom Strom getrennt und wieder angeschlossen werden, so werden diese Geräte teils doppelt als Datenpunkte mit neuen IDs angelegt, ebenso wie die Gruppe(n). Wird in den Adapter-Einstellungen "Nicht mehr vorhandene Geräte löschen" gesetzt, löscht dieser dann auch die doppelten Geräte mit der "alter" ID. Hierbei werden aber auch neue IDs für Alexa-Gruppen (z.B. "Überall") vergeben, so dass man diese nicht mehr per Javascript mit z.B. "spotify-premium.0.devices.d1326ee273282053fe764144b8cd2376e2df5f88.useForPlayback" ansprechen kann, da diese ja nicht mehr vorhanden ist.

                      Fehlermeldung im Log alle 5 Sekunden: "no playback content".

                      Mein Workaround hierzu ist folgender:

                      Ich ermittle über den Namen des Gerätes bzw. der Gruppe die Geräte-ID:

                          /** 
                           * Get the device ID from Spotify Premium Adapter for a given Device Name (like "Überall")
                          */
                          function spotifyGetDeviceIDfromName(strAlexaDeviceName) {
                      
                              // Get Device information string, separated by ";"
                              var strDeviceIDs = getState("spotify-premium.0.devices.availableDeviceListIds").val;
                              var strDeviceNames = getState("spotify-premium.0.devices.availableDeviceListString").val;
                      
                              // Split into Array
                              var aDeviceIDs = strDeviceIDs.split(";");
                              var aDeviceNames = strDeviceNames.split(";");
                      
                              // Get Array position of name
                              var intPos = aDeviceNames.indexOf(strAlexaDeviceName);
                      
                              // Get device ID string
                              var strDevID = aDeviceIDs[intPos];
                      
                              return strDevID;
                      
                          }
                      

                      Dann kann man diese über setState() entsprechend per Geräte-Namen (und nicht neu vergebener ID) steuern:

                      var strDeviceID = spotifyGetDeviceIDfromName('Überall');
                      setState("spotify-premium.0.devices." + strDeviceID + ".useForPlayback", true);
                      
                      1 Antwort Letzte Antwort
                      0
                      • besterquesterB Offline
                        besterquesterB Offline
                        besterquester
                        Developer
                        schrieb am zuletzt editiert von
                        #410

                        Hallo Zusammen,

                        Ich habe die Skripts getestet und die laufen bei mir sehr gut. Ich habe auch noch ein paar kleine Änderungen durchgeführt damit man danach noch mit CSS das Layout ändern kann.

                        `createState('javascript.0.spotify-premium.trackListHtml', '', false);
                        
                        function refreshTrackList() {
                        	var current = getState('spotify-premium.0.playbackInfo.playlist.trackList').val;
                        	var source = getState('spotify-premium.0.playbackInfo.playlist.trackListArray').val;
                        
                        	var html = ' ';
                        
                            var strRowClass = '';
                            var strSelectedClass = '';
                        
                            // create caption
                        	html += '';
                            html += '';
                            html += '';
                            html += '';
                            html += '';
                        
                        	for (var i = 0; i < source.length; i++) {
                        
                        	    if ((i%2) === 0) {
                        	        strRowClass = "idRowOdd";
                        	    } else {
                        	        strRowClass = "idRowEven";
                        	    }
                        	    if (current == i) {
                        	       strSelectedClass = "selectedRow";
                        	    } else {
                        	       strSelectedClass = "";
                        	    }
                        
                        		html += '';
                        
                        		html += '';
                        
                        		html += '';
                        
                        		html += '';
                        
                        		html += '';
                        	}
                        
                        	html += '
                        
                        |  Nr  |  Artist  |  Title  |
                        | ';
                        		html += i.toString();
                        	    html += ' | ';
                        		html += source[i].artist;
                        		html += ' | ';
                        		html += source[i].title;
                        		html += ' |
                        
                        ';
                        
                        	setState('javascript.0.spotify-premium.trackListHtml', html, true);
                        }
                        
                        on('spotify-premium.0.playbackInfo.playlist.trackList', refreshTrackList);
                        on('spotify-premium.0.playbackInfo.playlist.trackListArray', refreshTrackList);
                        
                        refreshTrackList();` 
                        
                        Hier mein Widget welches ich verwende:
                        `~~[code]~~[{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{javascript.0.spotify-premium.trackListHtml}","class":"myTextStyle myBoxStyle"},"style":{"left":"576px","top":"178px","width":"674px","height":"465px","overflow-y":"visible"},"widgetSet":"basic"}]
                        [/code]`
                        
                        und hier noch die CSS Codes:
                        `~~[code]~~.table1  {
                           width:100%;    
                        }
                        
                        .idRowOdd{
                            background-color: #3c495e;
                        }
                        
                        .selectedRow {
                            background-color: #234690;
                            color: white;
                        } 
                        
                        .idRowEven:hover,
                        .idRowOdd:hover{
                            background-color: #f8f8f8;
                        }
                        .myBoxStyle div {
                            border-top-right-radius:8px;
                            border-top-left-radius:8px;
                        }
                        
                        .myBoxStyle  {
                             border: #76869e solid 1px !important;
                             border-radius: 10px !important;
                             border-color: #a8b3c2;
                             box-shadow: 0 0 6px 5px #76869e99;
                             color: #d4d4d4;
                             background:#111b2c;
                        }
                        
                        .myTextStyle {
                            color: #a8b3c2;
                            font-family:Verdana, Geneva, sans-serif
                        }
                        [/code]`
                        
                        Was mir noch aufgefallen ist, dass im State Playlists auch gelöschte Playlists auftauchen. Kann man da noch etwas machen  :?
                        
                        lg BQ[/i][/i]
                        
                        D 1 Antwort Letzte Antwort
                        0
                        • Alex1808A Offline
                          Alex1808A Offline
                          Alex1808
                          schrieb am zuletzt editiert von
                          #411

                          @besterquester:

                          Was mir noch aufgefallen ist, dass im State Playlists auch gelöschte Playlists auftauchen. Kann man da noch etwas machen :?

                          lg BQ `

                          513_screenshot_at_juni_29_08-36-10.png

                          1 Antwort Letzte Antwort
                          0
                          • besterquesterB Offline
                            besterquesterB Offline
                            besterquester
                            Developer
                            schrieb am zuletzt editiert von
                            #412

                            @Alex1808: Thanks so einfach :D

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              schubi82
                              schrieb am zuletzt editiert von
                              #413

                              @twonky: Danke, aber das war es nicht (hatte ja auch alles ohne -premium eingerichtet, nun aber wie vorgeschlagen). Die Liste bleibt leer, auch wenn ich Copy/Paste von besterquesters-Skript mache. Im Adapter ist z.B. trackList aber auch leer, muss das so?

                              1 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                Marcel85
                                schrieb am zuletzt editiert von
                                #414

                                Morgen!

                                Hat noch jemand das Problem, dass der Spotify-Adapter euch den Log zumüllt?

                                Mein Log ist voll mit "no playback content" Warnungen.

                                spotify-premium.0	2018-07-01 09:50:06.734	warn	no playback content
                                spotify-premium.0	2018-07-01 09:50:01.614	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:56.549	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:51.481	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:46.415	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:41.339	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:36.259	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:31.183	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:26.114	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:21.039	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:15.969	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:10.893	warn	no playback content
                                spotify-premium.0	2018-07-01 09:49:05.820	warn	no playback content
                                spotify-premium.0	2018-07-01 08:49:00.771	warn	no playback content
                                

                                Gruß

                                Marcel

                                1 Antwort Letzte Antwort
                                0
                                • Alex1808A Offline
                                  Alex1808A Offline
                                  Alex1808
                                  schrieb am zuletzt editiert von
                                  #415

                                  @Marcel85:

                                  Morgen!

                                  Hat noch jemand das Problem, dass der Spotify-Adapter euch den Log zumüllt?

                                  Mein Log ist voll mit "no playback content" Warnungen.

                                  Gruß

                                  Marcel `

                                  Ja, hatte auch. Deswegen wen nicht im gebrauch schalte ich Adapter aus.

                                  1 Antwort Letzte Antwort
                                  0
                                  • Alex1808A Offline
                                    Alex1808A Offline
                                    Alex1808
                                    schrieb am zuletzt editiert von
                                    #416

                                    Gestern vergessen auszuschalten..

                                    ! 513_screenshot_at_juli_03_09-33-55.png

                                    1 Antwort Letzte Antwort
                                    0
                                    • twonkyT Offline
                                      twonkyT Offline
                                      twonky
                                      schrieb am zuletzt editiert von
                                      #417

                                      Halb so wild. Das sag einfach nur das Spotify gerade keine Infos hat.

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Offline
                                        M Offline
                                        mikiline
                                        schrieb am zuletzt editiert von
                                        #418

                                        @twonky:

                                        Halb so wild. Das sag einfach nur das Spotify gerade keine Infos hat. `

                                        Das ist richtig, jedoch "müllt" es den Log zu und macht ihn unübersichtlich. Schön wäre es wenn man diesen Log nur sieht wenn man auf Debug stellt

                                        1 Antwort Letzte Antwort
                                        0
                                        • Alex1808A Offline
                                          Alex1808A Offline
                                          Alex1808
                                          schrieb am zuletzt editiert von
                                          #419

                                          @mikiline:

                                          Das ist richtig, jedoch "müllt" es den Log zu und macht ihn unübersichtlich. Schön wäre es wenn man diesen Log nur sieht wenn man auf Debug stellt `

                                          Mache eventuell auch ausschalten?

                                          Script für Adapter zum Ein/Ausschalten aus VIS

                                          ! ````
                                          /* Spritpreis Spotify adapter neu starten
                                          ! erzeugt Objekt, das in VIS geschaltet werden kann
                                          Schaltung triggert Neustart eines Adapters
                                          ! 28.03.2018 erstellt von pix
                                          ! */
                                          const logging = true; // (true;false) Logausgabe zentral schalten, da 5minütlich ein Mehrzeiler geloggt wird.
                                          const instanz = "javascript." + instance;
                                          const fC = false; // force Create
                                          const idSchalter = instanz + ".Spotify.Adapter.Schalter";
                                          const adapter = "spotify-premium.0"; // Name und Instanz des Adapters
                                          ! // Ab hier nix mehr ändern
                                          if (logging) log("Skript " + name + " in der Instanz " + instance + " gestartet");
                                          ! var idAdapter = "system.adapter." + adapter;
                                          ! createState(idSchalter, false, fC, {
                                          name: adapter + " Adapter neu starten",
                                          type: "boolean",
                                          desc: "Schaltet den <" + adapter + "> Adapter per Skript zB aus VIS",
                                          role: "switch"
                                          });
                                          ! // Neustart triggern
                                          on({
                                          id: idSchalter,
                                          change: "ne",
                                          from: "system.adapter.web.0" // Schaltung nur aus VIS möglich
                                          }, function (dpobj) {
                                          var obj = getObject(idAdapter);
                                          if (dpobj.state.val) {
                                          obj.common.enabled = true; // Adapter einschalten
                                          } else if (!dpobj.state.val) {
                                          obj.common.enabled = false; // Adapter ausschalten
                                          }
                                          setObject(idAdapter, obj);
                                          if (logging) log("Adapter <" + adapter + "> wurde " + ((obj.common.enabled) ? "ein" : "aus") + "geschaltet");
                                          });

                                          
                                          Und ich hänge noch ein Indikator mit dazu, dann ist auch wirklich klar ob Adapter An oder Aus ist
                                          
                                          system.adapter.spotify-premium.0.alive
                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          645

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe