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

      Lustig, wollte gerade nachfragen wie es aussieht.

      Ob und wie es mit SONOS klappt kann ich nicht sagen da ich nur Yamaha Geräte habe.

      Aber zumindest hier oder im „Einfach mal zeigen will“ Thread gab es ja zumindest schon einige Views meine ich.

      Gesendet von iPhone mit Tapatalk Pro

      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by

        so sieht es nun aus:

        spotify-premium.0	2018-03-02 11:36:01.180	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:56.073	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:50.960	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:45.850	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:40.740	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:35.624	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:30.511	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:25.382	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:20.228	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:15.071	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:09.941	warn	unexpected api response http 202; continue polling
        spotify-premium.0	2018-03-02 11:35:04.804	warn	unexpected api response http 202; continue polling
        
        1 Reply Last reply Reply Quote 0
        • wendy2702
          wendy2702 last edited by

          Gerade mal bei mir probiert ob es noch funktioniert.

          Läuft einwandfrei.

          Ist vielleicht aus irgendeinem Grund deine Autorisierung abgelaufen?

          Nach welcher aktion ist das denn passiert?

          Denke Adapter restart hast du schon versucht?

          1 Reply Last reply Reply Quote 0
          • T
            tempestas last edited by

            restartet habe ich.

            Das kommt die ganze Zeit, so lange der adapter läuft. Authorization ist ok, alles fein.

            Echos, Playlists, alles gefunden. Sonos noch nicht (vllt. liegts daran?)

            1 Reply Last reply Reply Quote 0
            • C
              Conquest last edited by

              Hab bei mir mal geschaut hab die gleichen Warnmeldungen.

              LG Torsten

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

                Ich bekomme aktuell nur etwas wenn ich den Adapter im "Debug" laufen lassen.

                Könnt ihr denn Musik abspielen?

                1 Reply Last reply Reply Quote 0
                • E
                  el-lutschi last edited by

                  Ich habe das Problem auch. Aber nur sehr sporadisch.

                  Meistens ist es nur wenn ich den iobroker neustarte.

                  Dann deaktiviere ich den Adapter für ein paar Minuten, anschließend geht es wieder.

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

                    also bei mir kommt immer noch er gleiche Fehler:

                    invalid session. You need to open the actual Authorization.Authorization_URL
                    

                    hab alles so gemacht wie in der Beschreibung, auch die url stimmt in der app. was sagt der Fehler aus? irgendwas stimmt doch bei mir nicht!?

                    Mit freundlichen Grüßen

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

                      @xmace: Danke für die Fehlermeldung, werde das in der zukünfigen berücksichtigen.

                      Was die Volume States angeht: Die States unter spotify-premium.0.Player sind nur zum setzen da, wenn du aktuelle Werte anzeigen willst benutze bitte spotify-premium.0.PlaybackInfo

                      @el-lutschi: Du hast trotzdem einen Fehler gefunden. Ist in der kommenden Version nicht mehr drin.

                      @schubi82: Die "is_active" States sollten eigentlich alle 5s aktualisiert werden. Welchen meinst du denn genau? Es gibt ja mindestens 2.

                      @tempestas: Die Meldung kommt wenn Spotify erreichbar ist, aber keine Daten hat. Also z.B. kein Gerät abspielt. Ich kann da nicht viel machen. Die Spotify Dokumentation sagt dazu: You will see a 202 response the first time a user connects to the Spotify Connect API or when the device is temporarily unavailable

                      @fischi87: Lösche mal bitte deine Instanz und versuche es mit einer Neuen.

                      EDIT:

                      Die neue Version 0.1.1 ist jetzt verfügbar -> https://github.com/twonky4/ioBroker.spotify-premium

                      1 Reply Last reply Reply Quote 0
                      • M
                        mikiline last edited by

                        @xmace:

                        @twonky:

                        @xmace: Du benutzt noch das Skript von Lucky. Es gibt mittlerweile einen Adapter, wo dieser Fehler bereits behoben ist: https://github.com/twonky4/ioBroker.spotify-premium `

                        Japp ich weis, hab ich ja geschrieben gehabt.

                        Hab seitdem den neuen Adapter erfolgreich in Benutzung.

                        Hab ne Frage bzgl. dem Objekt "spotify-premium.0.Player.Volume" das wird bei mir nachdem ich die Lautstärke geändert hab immer wieder auf "null" gesetzt

                        Im Skript von Lucky blieb der zuletzt eingestellte Wert erhalten.

                        Wird nämlich jetzt dann nicht schön im Widget angezeit, Lautstärkeregler springt dann wieder auf 0 zurück.

                        Unbenannt.PNG

                        Any toughts? `

                        würde auch gerne das Thema Volume nochmals hier pushen…...gibt es da eine Lösung?

                        springt wie gesagt immer auf 0 zurück

                        Edit.......OK funktioniert nur mit dem Handy nicht !

                        Ansonsten Top Adapter, vielen Dank !!!

                        1 Reply Last reply Reply Quote 0
                        • S
                          schubi82 last edited by

                          @twonky: Danke, glaube ich habe den Datenpunkt missverstanden. Ich dachte eigentlich er zeigt an, welche Geräte verfügbar/online sind. Das geht wohl nicht!?

                          1 Reply Last reply Reply Quote 0
                          • M
                            mikiline last edited by

                            @Twonky

                            beim kleinen Dot scheint es zu gehen mit der Lautstärke, jedoch beim grossen Bruder nicht mehr. Da fällt die Lautstärke immer wieder auf den Wert den man am Echo von Hand eingestellt (gedreht) hat…..

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

                              @schubi82: Die spotify API Dokumentation sagt zu is_active: If this device is the currently active device.

                              Ich interpretiere das als: Das Gerät ist gerade das primäre Gerät, davon kann es immer nur eins geben.

                              Du bringst mich aber auf eine Idee. Der Adapter hat ja die Option "Nicht mehr vorhandene Devices löschen", wenn diese deaktivert ist weiß man nicht welche Geräte noch verfügbar sind. Dafür werde ich wohl zukünftig ein State einführen.

                              @mikiline: Welche Widgets benutzt du? Kannst du mal ein Beispiel posten. Im VIS Edititor rechte Maustaste auf das Widget dann Mehr… -> Widgets exportieren

                              1 Reply Last reply Reply Quote 0
                              • M
                                mikiline last edited by

                                ich verwende das Sonos Player Widget.

                                Habe mir eine Variable für die Lautstärke erstellt, das sich auch bei meinem Receiver die Lautstärke verstellen lässt.

                                Heisst, ich verwende ein Widget für alle Wiedergabegeräte…..die je nach spotify-premium.0.PlaybackInfo.Device.is_active aktiviert werden

                                Die Variable (das Object 'javascript.0.Spotify.ReglerLaustaerke') steht dann im Widget bei Lautstärke drinne.

                                Hier mein Skript zum Verstellen der Lautstärke

                                ! ````
                                createState("javascript.0.Spotify.ReglerLaustaerke", function () {
                                });
                                on({id: 'javascript.0.Spotify.ReglerLaustaerke', change: "ne"}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                if (getState("spotify-premium.0.Devices.AmazonFireTVGen2♘.is_active").val == true) {
                                setState("onkyo.0.master-volume"/Master volume/, getState("javascript.0.Spotify.ReglerLaustaerke").val);
                                }
                                if (getState("spotify-premium.0.Devices.Schlafzimmer.is_active").val == true) {
                                setState("spotify-premium.0.PlaybackInfo.Device.volume_percent"/volume percent/, getState("javascript.0.Spotify.ReglerLaustaerke").val);
                                }
                                });

                                
                                Hier mein Widget als Export
                                
                                >! ````
                                [{"tpl":"tplFrame","data":{"visibility-cond":"==","visibility-val":1,"title":"","title_color":"#f9f9fb","title_top":"5","title_left":"5","header_height":"30","header_color":"black","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"","signals-icon-size-0":"1","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":"","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":"","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"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-is-moment":false,"lc-zindex":0,"signals-text-0":"Fire TV","signals-oid-0":"spotify-premium.0.Devices.AmazonFireTVGen2♘.is_active","signals-text-style-0":"margin-top:-10px;margin-left:10px","signals-text-style-1":"margin-top: -10px;margin-left:10px","signals-text-1":"Schlafzimmer","signals-oid-1":"spotify-premium.0.Devices.Schlafzimmer.is_active","signals-text-style-2":"margin-top: -10px;margin-left:10px","signals-text-2":"","signals-oid-2":""},"style":{"left":"3px","top":"60px","width":"512px","height":"280px","border-width":"4px","border-style":"solid","border-color":"grey","border-radius":"5px","z-index":"0","font-size":"small","font-weight":"bold","font-variant":"normal","font-style":"normal","font-family":"Verdana, Geneva, sans-serif"},"widgetSet":"basic"},{"tpl":"tplValueListHtml8","data":{"oid":"","visibility-cond":"==","visibility-val":1,"count":"1","value1":"","style0":"","style1":"","value0":"","test_list":"","name":"","comment":"","visibility-groups-action":"hide","class":"","views":null,"g_css_background":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"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,"g_css_shadow_padding":false,"g_last_change":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_prepend":"Fortschritt: {spotify-premium.0.PlaybackInfo.progress}
                                ","html_append":"Länge: {spotify-premium.0.PlaybackInfo.duration}"},"style":{"left":"400px","top":"67px","text-align":"right","width":"114px","height":"27px","font-family":"","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"x-small","z-index":"2","color":"white","line-height":""},"widgetSet":"basic"},{"tpl":"tplIconState","data":{"oid":"spotify-premium.0.Devices.Schlafzimmer.Use_for_Playback","visibility-cond":"==","visibility-val":1,"value":"true","text":"on","src":"","gestures-offsetX":0,"gestures-offsetY":0,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis.0/iPad/icons/Ok-icon.png","signals-icon-size-0":"20","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,"signals-oid-0":"spotify-premium.0.Devices.Schlafzimmer.is_active","imageHeight":"0"},"style":{"left":"258.984375px","top":"174px","width":"20px","height":"20px","border-width":"1px","border-color":"#1e7f15","z-index":"2"},"widgetSet":"jqui"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":true,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"!=","visibility-val":"","visibility-groups-action":"hide","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,"html_prepend":"Schlafzimmer","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,"visibility-oid":"{spotify-premium.0.PlaybackInfo.image_url}"},"style":{"left":"287px","top":"177px","width":"100px","height":"15px","text-align":"left","color":"","z-index":"2","font-style":"normal","font-variant":"small-caps","font-weight":"bold","font-size":"small"},"widgetSet":"basic"},{"tpl":"tplSonosMobilePlayer","data":{"g_fixed":false,"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","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,"oid_play":"spotify-premium.0.Player.Play","oid_next":"spotify-premium.0.Player.Skip_Plus","oid_prev":"spotify-premium.0.Player.Skip_Minus","oid_pause":"spotify-premium.0.Player.Pause","oid_artist":"spotify-premium.0.PlaybackInfo.Artist_Name","oid_title":"spotify-premium.0.PlaybackInfo.Track_Name","oid_album":"spotify-premium.0.PlaybackInfo.Album","oid_cover":"spotify-premium.0.PlaybackInfo.image_url","oid_state":"spotify-premium.0.PlaybackInfo.is_playing","oid_vol":"javascript.0.Spotify.ReglerLaustaerke"},"style":{"left":"7.015625px","top":"94px","width":"512px","height":"250px","z-index":"1"},"widgetSet":"players"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":true,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"!=","visibility-val":"","visibility-groups-action":"hide","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,"html_prepend":"Fire TV","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,"visibility-oid":"{spotify-premium.0.PlaybackInfo.image_url}","src":"{spotify-premium.0.PlaybackInfo.image_url}"},"style":{"left":"413.984375px","top":"177px","width":"100px","height":"15px","text-align":"left","color":"","z-index":"2","font-style":"normal","font-variant":"small-caps","font-weight":"bold","font-size":"small"},"widgetSet":"basic"},{"tpl":"tplIconState","data":{"oid":"spotify-premium.0.Devices.AmazonFireTVGen2♘.Use_for_Playback","visibility-cond":"==","visibility-val":1,"value":"true","text":"on","src":"","gestures-offsetX":0,"gestures-offsetY":0,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis.0/iPad/icons/Ok-icon.png","signals-icon-size-0":"20","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,"signals-oid-0":"spotify-premium.0.Devices.AmazonFireTVGen2♘.is_active","imageHeight":"0"},"style":{"left":"385.96875px","top":"174px","width":"20px","height":"20px","border-width":"1px","border-color":"#1e7f15","z-index":"2"},"widgetSet":"jqui"},{"tpl":"tplValueString","data":{"oid":"javascript.0.Spotify.ReglerLaustaerke","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","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,"html_prepend":"","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},"style":{"left":"469px","top":"299px","width":"50px","height":"15px","text-align":"center","color":"","z-index":"2","font-style":"normal","font-variant":"small-caps","font-weight":"bold"},"widgetSet":"basic"}]
                                

                                2678_player.png

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

                                  Das Widget unterstützt keine trennung von lesenden und schreiben States. Das musst du in deinem Script abbilden.

                                  z.B. so (habs aber nicht getestet):

                                  var setVolume = function (obj) {
                                      if (getState("spotify-premium.0.Devices.AmazonFireTVGen2♘.is_active").val == true) {
                                  	    setState("javascript.0.Spotify.ReglerLaustaerke", getState("spotify-premium.0.Devices.AmazonFireTVGen2♘.volume_percent").val);
                                  	}
                                  }
                                  
                                  on({id: 'spotify-premium.0.Devices.AmazonFireTVGen2♘.is_active'}, setVolume);
                                  on({id: 'spotify-premium.0.Devices.AmazonFireTVGen2♘.volume_percent'}, setVolume);
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mikiline last edited by

                                    Evtl verstehe ich dich falsch?, jedoch verstelle ich mit der Variable den Datenpunkt per script.

                                    Hat nichts mit dem Widget zu tun glaube ich, da meine Variable, wenn ich den Regler schiebe, ja auch verstellt wird.

                                    Ich verstelle mit dem Widget nur meine Variable, die den Wert dann auch korrekt annimmt. Der Rest läuft per script was die Lautstärke angeht

                                    Sobald sich diese ändert, wird je nach aktivem Wiedergabegerät entweder die Lautstärke am Onkyo Receiver verstellt (also nicht der Datenpunkt "volume_percent").

                                    Da der FireTV keine Lautstärke anzeigt in dem Adapter

                                    Ist aber der Echo aktiv und ich den Regler schiebe, verstellt sich wiederum meine Variable, jedoch bleibt beim Echo der Datenpunkt "volume_percent" auf dem gleichen Niveau wie vorher.

                                    Obwohl ich per script den Wert beim Datenpunkt (Playbackinfo.Devide.volume_percent) ändere. Man sieht also kurz das der Datenpunkt den Wert der Variable annimmt, jedoch dann wieder zurück springt auf den vorherigen Wert (bei mir jetzt z.B. Lautstärke 7, die mein Echo hat)
                                    2678_amazon.png
                                    2678_echo.png

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      mikiline last edited by

                                      Oh mannnn….................

                                      Der Wald vor lauter Bäume bzw. Volume 🙂

                                      Wenn man den Volume beim Player nimmt, dann gehts auch (mit Skript für Onkyo bzw. FireTV und ohne für die Echos und Dots) 😉

                                      Danke für den tollen Adapter!!!

                                      Eine Frage noch:

                                      Ist es möglich das Album Picture der Playlist noch einzufügen?

                                      Momentan wird immer das Album des gerade abgespielten Songs eingeblendet und nicht das der Playlist

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

                                        @mikiline: Du hast recht. Das Playlist Cover fehlt noch. Ich schreibst mir auf die Liste 🙂

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          mikiline last edited by

                                          @twonky:

                                          @mikiline: Du hast recht. Das Playlist Cover fehlt noch. Ich schreibst mir auf die Liste 🙂 `

                                          Am Besten denke ich bei jedem der eingelesenen Playlists die URL zum img einfügen (Dann kann man sich mit einem Widget (inkl Cover) eine Auswahlplaylist erstellen und direkt aktivieren

                                          spotify-premium.0.Playlists

                                          und natürlich dann auch bei aktuellem PlayBack unter spotify-premium.0.PlaybackInfo.Playlist

                                          –->spotify-premium.0.PlaybackInfo.Playlist_image_url

                                          wobei dann die vorhandene image_url evtl umzubenennen wäre in Album_image_url

                                          @twonky:

                                          Wo bekomm ich denn die Track ID her um ein Lied auszuwählen? z.B für das jqui Select ValueList (siehe Bild)

                                          Und wenn ich schon dabei bin....

                                          Könntest Du von der gerade abgespielten Playlist die Track_List_String noch zu spotify-premium.0.PlaybackInfo zufügen?

                                          Dann entfällt das skripten und raussuchen der Tracks der Playlist die gerade abgespielt wird und wird automatisch in ein Widget eingefügt (jqui Select ValueList)
                                          2678_bsp.png

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            mikiline last edited by

                                            Hallo nochmals,

                                            Hab zwar schon das ein oder andere gefunden, jedoch war mir das zu "unflexibel". Bei den meisten Skripten muss man die Liste selbst pflegen oder Eintragungen vornehmen.

                                            Deshalb hab ich mir mittlerweile ein Skript gebastelt, das die aktuelle Playlist, die gespielt wird in eine Value List einliest, den ich dann im Widget ValueList String anzeigen und auswählen kann.

                                            Die Liste wird bei jedem Wechsel der Playlist automatisch eingelesen!

                                            Kurz und knapp:

                                            • Erstellung 4 neuer States unter Javascript.0.Spotify

                                            • der State "javascript.0.Spotify.PlayList.PlayList" wird im Skript nicht direkt verwendet (sollte sein um zu verhindern das nach Track-Auswahl der Player aufhört die Playlist zu spielen (klappt aber momentan nicht)

                                            Bitte schön

                                            ! ```
                                            `createState("javascript.0.Spotify.PlayList.TrackList", function () {
                                            });
                                            createState("javascript.0.Spotify.PlayList.TrackTitle", function () {
                                            });
                                            createState("javascript.0.Spotify.PlayList.TrackID", function () {
                                            });
                                            createState("javascript.0.Spotify.PlayList.PlayThis", function () {
                                            });
                                            createState("javascript.0.Spotify.PlayList.PlayList", function () {
                                            });
                                            ! on({id: 'spotify-premium.0.PlaybackInfo.Playlist', change: "ne"}, function (obj) {
                                            ! var AktuellePlaylist = getState('spotify-premium.0.PlaybackInfo.Playlist').val;
                                            setState("javascript.0.Spotify.PlayList.PlayList"/javascript.0.Spotify.PlayList.TrackID/, AktuellePlaylist);
                                            str_AktuellePlaylist = AktuellePlaylist.replace(/ /g, '');
                                            ! str_AktuellePlaylist = 'spotify-premium.0.Playlists.' + str_AktuellePlaylist + '.Track_List'
                                            setState("javascript.0.Spotify.PlayList.TrackList"/javascript.0.Spotify.PlayList.TrackID/, str_AktuellePlaylist);
                                            ! var json = JSON.parse(JSON.stringify(getState(str_AktuellePlaylist).val));
                                            ! var PlayListid ;
                                            var PlayListTitle ;
                                            ! for(var i = 0; i < json.length; i++) {

                                            PlayListid += json[i].id  + ';';
                                            PlayListTitle += json[i].title + ';';
                                            

                                            }
                                            PlayListid = PlayListid.slice(9,-1);
                                            PlayListTitle = PlayListTitle.slice(9,-1);

                                            ! setState("javascript.0.Spotify.PlayList.TrackID"/javascript.0.Spotify.PlayList.TrackID/, PlayListid);
                                            setState("javascript.0.Spotify.PlayList.TrackTitle"/javascript.0.Spotify.PlayList.TrackID/, PlayListTitle);
                                            ! });
                                            ! on({id: 'javascript.0.Spotify.PlayList.PlayThis', change: "ne"}, function (obj) {
                                            setState("spotify-premium.0.Player.TrackId"/track idto play/, getState("javascript.0.Spotify.PlayList.PlayThis").val);
                                            }); ! Falls der ein oder andere scripcrack noch einen Fehler findet oder eine Verbesserung des Codes liefern kann, gerne her damit. ! Hier noch mein Widget zur Auswahl der Tracks aus der Liste ! >! ~~[spoiler]~~[code][{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Spotify.PlayList.PlayThis","g_fixed":false,"g_visibility":true,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":"","visibility-groups-action":"hide","values":"{javascript.0.Spotify.PlayList.TrackID}","texts":"{javascript.0.Spotify.PlayList.TrackTitle}","height":"120","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,"visibility-oid":"","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,"no_style":true,"open":false},"style":{"left":"264px","top":"376px","width":"258px","height":"247px"},"widgetSet":"jqui"}][/code]`[/spoiler]
                                            ! viel Spass damit
                                            ! @twonky
                                            ! es wäre wie gest schön, wenn die aktuelle Playlist (Track_List) unter PlaybackInfo zu finden wäre, so erspart man sich das Suchen.
                                            ! Es ist mir noch aufgefallen, jetzt wenn ich ein Lied auswähle ändert sich der Wert Device.type von playlist in Track.
                                            ! Wähle ich jedoch in der Spotify App einen Track aus der aktuellen Playliste, bleibt "playlist" erhalten.
                                            ! Die Wiedergabe stoppt natürlich wenn auf "track" geändert wird, was unschön ist.
                                            ! Vielleicht wird das ja dann verhindert, wenn die aktuelle playlist auch unter den PlaybackInfo zu finden ist, dann weiss Spotify das ich "nur" einen anderen Track aus der bereits vorhandenen Playlist auswähle und führt mit dem nächsten Track fort.[/i][/i]

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            982
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            95
                                            745
                                            190715
                                            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