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

donate donate
  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.4k

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

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

[Vorlage] Spotify Skript

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
745 Beiträge 95 Kommentatoren 264.8k 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.
  • 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
                      • T Offline
                        T Offline
                        the-triple
                        schrieb am zuletzt editiert von
                        #420

                        Hi,

                        wenn ich den Script ausführe bekomme ich immer eine Fehlermeldung im Log und der Java Adapter Startet sich neu. Das selbe Problem hab ich auch bei dem Alexa Script, nur Leider wird dieser nicht mehr Supportet. Deshalb bin ich auch auf den Spotify Script umgestiegen.

                        Bei dem Spotify Adapter 0.3.1 bekomme ich zwar keine Fehlermeldung aber da bringt der Adapter mir meine zwei Alexa Geräte durcheinander und bennent beide in AEOBC um (auch in der Spotify App, in der Alexa App jedoch nicht). Dies kann ich nur Rückgängig machen wenn ich die Echo Dots in der Alexa App umbenenne.

                        Hier der Log:

                        host.raspberrypi	2018-07-05 15:56:01.844	info	Restart adapter system.adapter.javascript.0 because enabled
                        host.raspberrypi	2018-07-05 15:56:01.844	error	instance system.adapter.javascript.0 terminated with code 0 (OK)
                        Caught	2018-07-05 15:56:01.844	error	by controller[0]: at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                        Caught	2018-07-05 15:56:01.843	error	by controller[0]: at Request.emit (events.js:188:7)
                        Caught	2018-07-05 15:56:01.843	error	by controller[0]: at emitOne (events.js:96:13)
                        Caught	2018-07-05 15:56:01.843	error	by controller[0]: at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                        Caught	2018-07-05 15:56:01.843	error	by controller[0]: at Request.emit (events.js:191:7)
                        Caught	2018-07-05 15:56:01.843	error	by controller[0]: at emitTwo (events.js:106:13)
                        Caught	2018-07-05 15:56:01.842	error	by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                        Caught	2018-07-05 15:56:01.842	error	by controller[0]: at Request._callback (script.js.common.Spotify:178:24)
                        Caught	2018-07-05 15:56:01.841	error	by controller[0]: at script.js.common.Spotify:774:31
                        Caught	2018-07-05 15:56:01.840	error	by controller[0]: at CreatePlaybackInfo (script.js.common.Spotify:251:12)
                        Caught	2018-07-05 15:56:01.831	error	by controller[0]: TypeError: Cannot read property 'hasOwnProperty' of null
                        javascript.0	2018-07-05 15:56:01.755	info	terminating
                        javascript.0	2018-07-05 15:56:01.739	error	at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                        javascript.0	2018-07-05 15:56:01.739	error	at Request.emit (events.js:188:7)
                        javascript.0	2018-07-05 15:56:01.739	error	at emitOne (events.js:96:13)
                        javascript.0	2018-07-05 15:56:01.739	error	at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                        javascript.0	2018-07-05 15:56:01.739	error	at Request.emit (events.js:191:7)
                        javascript.0	2018-07-05 15:56:01.739	error	at emitTwo (events.js:106:13)
                        javascript.0	2018-07-05 15:56:01.739	error	at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                        javascript.0	2018-07-05 15:56:01.739	error	at Request._callback (script.js.common.Spotify:178:24)
                        javascript.0	2018-07-05 15:56:01.739	error	at script.js.common.Spotify:774:31
                        javascript.0	2018-07-05 15:56:01.739	error	at CreatePlaybackInfo (script.js.common.Spotify:251:12)
                        javascript.0	2018-07-05 15:56:01.739	error	TypeError: Cannot read property 'hasOwnProperty' of null
                        javascript.0	2018-07-05 15:56:01.738	error	uncaught exception: Cannot read property 'hasOwnProperty' of null</anonymous></anonymous></anonymous></anonymous>
                        

                        Ich hoffe ihr könnt mir helfen. :)

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

                          @Alex1808:

                          @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 `  
                          

                          Danke :-) Hab das Skript mal implementiert

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

                            Ich würde gerne versuchen ein Skript zu bauen, was bei einer Statusänderung von "is active" beim Echodot das ganze stattdessen auf meinen Onkyo ausgibt. Vermutlich ist das nicht möglich, weil sich im Network-Standby befindliche Geräte nicht ausgewählt werden können, oder?

                            Hintergrund: Es ist ja toll, dass Alexa von Spotify abspielen kann, aber auf dem Dot hört sich das eher bescheiden an…

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

                              @schubi82:

                              Ich würde gerne versuchen ein Skript zu bauen, was bei einer Statusänderung von "is active" beim Echodot das ganze stattdessen auf meinen Onkyo ausgibt. Vermutlich ist das nicht möglich, weil sich im Network-Standby befindliche Geräte nicht ausgewählt werden können, oder?

                              Hintergrund: Es ist ja toll, dass Alexa von Spotify abspielen kann, aber auf dem Dot hört sich das eher bescheiden an… `

                              Dann schliße doch das Echodot via 3.5 Klinker direkt an Onkyo ;)

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

                                Keine gute Qualität und ich muss die Anlage manuell anschalten :)

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

                                  @schubi82:

                                  Keine gute Qualität und ich muss die Anlage manuell anschalten :) `

                                  also was Qualität angeht so kann man darüber streiten ;) Soll auf jeden fahl besser als drahtlose Geschichte sein (BT). Hat dein Onkyo kein Netzwerk Anschluss? Außerdem die Power-taste lässt sich mit nur weniger Schritten automatisieren ;)

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

                                    Ja, hört man wahrscheinlich nicht… Der Onkyo hat Netzwerk, aber wie bringe ich Alexa dazu den Receiver einzuschalten, die Audioausgabe über Klinke auszugeben und den Eingang auf AUX zu stellen? Geht das mit Node-Red und dem Alexa-local Plugin? Über die iobroker-Cloud wollte ich möglichst nicht gehen.

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

                                      @schubi82:

                                      Ja, hört man wahrscheinlich nicht… Der Onkyo hat Netzwerk, aber wie bringe ich Alexa dazu den Receiver einzuschalten, die Audioausgabe über Klinke auszugeben und den Eingang auf AUX zu stellen? Geht das mit Node-Red und dem Alexa-local Plugin? Über die iobroker-Cloud wollte ich möglichst nicht gehen. `

                                      Mit dem Onkyo-Vis Adapter?

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

                                        Und wie kommt Alexa da hin?

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

                                          @schubi82:

                                          Und wie kommt Alexa da hin? `

                                          Du sollst unter Objekten eine variable erstellen und die soll als ein Trieger für ein Skript dienen der das ganze macht was du willst. Alexa wird diese variable steuern.

                                          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

                                          797

                                          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