- ioBroker Community Home
- Deutsch
- Praktische Anwendungen (Showcase)
- [HowTo] Spotify mit 3 Skripten in VIS steuern
[HowTo] Spotify mit 3 Skripten in VIS steuern
-
Vorwort:
Mir ist aufgefallen dass eigentlich viele User Spotify nutzen aber die Handhabung und Steuerung des Adapters per VIS "etwas" kompliziert ist und deshalb auch diese User sich scheuen dies umzusetzen.
So ging es mir bis heute um ca. 5 Uhr in der FrĂŒhe auch - und da hab ich mir mal ein Herz gefasst und 3 Blocklys geschrieben um diesen Adapter und die Funktionen welche dahinter stecken zumindest fĂŒr mich anzupassen und in meiner VIS Spotify effektiv zu steuern.
Der Optik in der VIS sollte man keine Aufmerksamkeit schenken weil diese/meine erstmal nur aufzeigen soll was machbar ist.Legen wir los:
Was brauchen wir ?
NatĂŒrlich erstmal ein sauberes System !
Falls dazu Fragen bestehen was das ist und wie Ihr das hinbekommt ist dies hier die falsche Adresse - ist halt meine Vorgabe :)Ich habe bei mir - und das wird auch benötigt:
- Debian Bullseye (natĂŒrlich aktuell mit allen upgrades)
- Node und NPM Versionen siehe meine Signatur (gibt hierzu keine ErklÀrungen !)
- Spotify Adapter 1.2.2
- VIS Adapter 1.4.16
- Javascript Adapter 7.0.3
- MaterialDesign Adapter 0.5.9 (wird fĂŒr VIS benötigt)
- Schnitzel mit Pommes (optional)
- 2-3 Bier (optional - wird aber empfohlen :) )
- gute Laune und den Willen dies umzusetzen (erforderlich)
EDIT: falls da irgendwelche Adapter nur im "latest" sind und Ihr das nicht wollt - dann bitte ab hier aufhören !!!
Zuerst legen wir mal Verzeichnisse im Objektbaum
0_userdata.0an:
Den Ordner "Spotify" zuerst.
Unter diesem Ordner legen wir 2 Verzeichnisse an:
"Abfragen" und "Funktionen"NatĂŒrlich könnt Ihr Eure Verzeichnisse benennen wie Ihr wolt, aber dann bitte keine Fragen stellen wenn was nicht funktioniert :)
Weiter gehts:
In den jeweiligen Verzeichnissen legen wir Datenpunkte an - wie folgt:

Die gelb markierten MĂSSEN angelegt werden !
Und zwar als entsprechende Typen:blau = Zeichenkette (string)
rot = JSON
grĂŒn = Logikwert (boolean)Ist dies getan dann können wir uns ja schonmal mit den Blocklys im nĂ€chsten Beitrag befassen:
EDIT: Skripte und DPs aktualisiert - quasi bitte beachten !
Lehrling seit 1975 !!!
Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
https://forum.iobroker.net/topic/51555/hinweise-fĂŒr-gute-forenbeitrĂ€ge -
Vorwort:
Mir ist aufgefallen dass eigentlich viele User Spotify nutzen aber die Handhabung und Steuerung des Adapters per VIS "etwas" kompliziert ist und deshalb auch diese User sich scheuen dies umzusetzen.
So ging es mir bis heute um ca. 5 Uhr in der FrĂŒhe auch - und da hab ich mir mal ein Herz gefasst und 3 Blocklys geschrieben um diesen Adapter und die Funktionen welche dahinter stecken zumindest fĂŒr mich anzupassen und in meiner VIS Spotify effektiv zu steuern.
Der Optik in der VIS sollte man keine Aufmerksamkeit schenken weil diese/meine erstmal nur aufzeigen soll was machbar ist.Legen wir los:
Was brauchen wir ?
NatĂŒrlich erstmal ein sauberes System !
Falls dazu Fragen bestehen was das ist und wie Ihr das hinbekommt ist dies hier die falsche Adresse - ist halt meine Vorgabe :)Ich habe bei mir - und das wird auch benötigt:
- Debian Bullseye (natĂŒrlich aktuell mit allen upgrades)
- Node und NPM Versionen siehe meine Signatur (gibt hierzu keine ErklÀrungen !)
- Spotify Adapter 1.2.2
- VIS Adapter 1.4.16
- Javascript Adapter 7.0.3
- MaterialDesign Adapter 0.5.9 (wird fĂŒr VIS benötigt)
- Schnitzel mit Pommes (optional)
- 2-3 Bier (optional - wird aber empfohlen :) )
- gute Laune und den Willen dies umzusetzen (erforderlich)
EDIT: falls da irgendwelche Adapter nur im "latest" sind und Ihr das nicht wollt - dann bitte ab hier aufhören !!!
Zuerst legen wir mal Verzeichnisse im Objektbaum
0_userdata.0an:
Den Ordner "Spotify" zuerst.
Unter diesem Ordner legen wir 2 Verzeichnisse an:
"Abfragen" und "Funktionen"NatĂŒrlich könnt Ihr Eure Verzeichnisse benennen wie Ihr wolt, aber dann bitte keine Fragen stellen wenn was nicht funktioniert :)
Weiter gehts:
In den jeweiligen Verzeichnissen legen wir Datenpunkte an - wie folgt:

Die gelb markierten MĂSSEN angelegt werden !
Und zwar als entsprechende Typen:blau = Zeichenkette (string)
rot = JSON
grĂŒn = Logikwert (boolean)Ist dies getan dann können wir uns ja schonmal mit den Blocklys im nĂ€chsten Beitrag befassen:
EDIT: Skripte und DPs aktualisiert - quasi bitte beachten !
Screenshots sind nur Ansatzweise zu werten - deshalb gibt es jeweilig den Code zum Importieren !)
Im ersten Blockly fragen wir mal die Playlisten ab und schreiben die notwendigen Daten in die dafĂŒr vorgesehenen Datenpunkte:

<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="`e/`Y|g1yt[LqDde4cUg">myID</variable> <variable id="$TGe7c|7mWim[0^Ny-*8">playlisten</variable> <variable id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</variable> <variable id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</variable> <variable id="qMuUH@n;-29I9Zy:c5R[">i</variable> <variable id="A+R4;J!yy4e`~.6+ePot">playliste</variable> <variable id="}bdAPzw$S|-/d[[-/l,Z">sort</variable> <variable id="ZNIImHZ1MQl]hTTqQ}lA">details</variable> <variable id="GG0W8(KE08)VPNlHI[Pf">playlistname</variable> <variable id="/EUEs^+niuBI+e=^qt[;">objekt</variable> </variables> <block type="procedures_defcustomreturn" id="RR9RFRWFc/U|Eb-mEDPq" x="413" y="-287"> <mutation statements="false"> <arg name="myID" varid="`e/`Y|g1yt[LqDde4cUg"></arg> </mutation> <field name="NAME">owner</field> <field name="SCRIPT">cmV0dXJuIG15SUQucmVwbGFjZSgib3duZXIiLCJpZCIpOyA=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion âŠ</comment> </block> <block type="schedule" id="v)gNpr{TWUHp]Rp?,fRx" x="413" y="-237"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="w7(2wOFE|5;iazx$?Z7o"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> <value name="VALUE"> <block type="lists_create_with" id="uiJM8.UYKR8_U;y?V%NP"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="t14i7X.yb2(.R*9jvPgw"> <field name="VAR" id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</field> <value name="VALUE"> <block type="selector" id="C9/ux5=-jtW1Btdde^}X"> <field name="TEXT">spotify-premium.0.playlists.*.owner</field> </block> </value> <next> <block type="controls_forEach" id="KMParn:4JO}?|=6rRZ3/"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="93l(X1e$@Zw2W@SRa-zt"> <field name="VAR" id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</field> </block> </value> <statement name="DO"> <block type="variables_set" id="nFUq5t{=rjRzLuv7|_7*"> <field name="VAR" id="ZNIImHZ1MQl]hTTqQ}lA">details</field> <value name="VALUE"> <block type="text_join" id="#G?!I#aw1$e1pw|G1gCy"> <mutation items="3"></mutation> <value name="ADD0"> <block type="get_value_var" id="8]!;mtn.FPvqXs#maqbU"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="iVY`N{H/f2dO@C4Afx@K"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="oY9g#X,AVw.7x^e-S12Q"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="w{$d5zn^.i*,=HPhhnhz"> <field name="TEXT">-</field> </block> </value> <value name="ADD2"> <block type="get_value_var" id="jlp2U?dgV?;$*C*:oIAN"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="=t7W$G`{Ted|g{^//H:N"> <field name="TEXT"></field> </shadow> <block type="procedures_callcustomreturn" id="~G;rOPc:$(#.R7pX4R]C"> <mutation name="owner"> <arg name="myID"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="c8dP!+37I60ar)HJ,7W~"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="GnsPh(wPQ:|fHk[^`GDB"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">FIRST</field> <value name="LIST"> <block type="variables_get" id="YG--O]pa?xj?ghx6D]J~"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> </block> </value> <value name="TO"> <block type="variables_get" id="o$+U#tYe,Jgy7?E/2RD/"> <field name="VAR" id="ZNIImHZ1MQl]hTTqQ}lA">details</field> </block> </value> </block> </next> </block> </statement> <next> <block type="update" id="mBt,,:8+-i+LDbBY_|M["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenString</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tostring" id="0A!bLCVE=_ha#_0.gL]W"> <value name="VALUE"> <block type="variables_get" id="@EHd.08D$*1*n!E+~tWq"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="c9?9Yrk,d9L[h~nN7`hb"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="kDimQ14Dx+/o{VekX+L*"> <field name="oid">0_userdata.0.Spotify.Abfragen.PlaylistenString</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="JQ):y1@NaZ?XpAlHIA,d"> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> <value name="VALUE"> <block type="lists_create_with" id="WyOtpnpIVB`g=OsA}YXN"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="hmgj;!53T_`9:3mm3iWL"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">playliste</field> <value name="VALUE"> <block type="lists_split" id="MglvOaZoo`udzPbSgs-g"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="on_source" id="hHo7ewq_DxyE,g|`@,+A"> <field name="ATTR">state.val</field> </block> </value> <value name="DELIM"> <shadow type="text" id="ec}^V3zQKdCOH5g#M`u9"> <field name="TEXT">,</field> </shadow> </value> </block> </value> <next> <block type="controls_forEach" id="ajZPSo8S{qF=ttM[GXd^"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="]IVi}17qyYUKJ.`tI$QB"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">playliste</field> </block> </value> <statement name="DO"> <block type="variables_set" id="e1LQ~RSotlmf$7aKe|kK"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> <value name="VALUE"> <block type="text_join" id="Zh+$rKf0e)bAv4`ZO_Ll"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="!5E!q8~IZl=lVe:D1e{A"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="iJRgR1_a,1RwRD)V)eQ5"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> <value name="ADD2"> <block type="text" id="Pc/gxiQ/)FablTHX@uI}"> <field name="TEXT">.name</field> </block> </value> </block> </value> <next> <block type="variables_set" id="1n=Ui6Zxw{1L{BnIf:=]"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> <value name="VALUE"> <block type="text_changeCase" id="Vus*D9$BEok35qz$fC:j"> <field name="CASE">UPPERCASE</field> <value name="TEXT"> <shadow type="text" id="RRDka23`)BruPQ:r.*o4"> <field name="TEXT">abc</field> </shadow> <block type="get_value_var" id="(]Wp^Y65HmVHHaYEHsW}"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="x|UlQ#_RiFjEu+,I]b9y"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="cIgV)^8{CWQc0M$bpa1="> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="ctRCBlP?@p!a#y,H7@QO"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> <value name="VALUE"> <block type="text_join" id="4_Ve~kk8N!pfB:}*Fq,m"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="w6~`xjx1m!+}@#ll)$Dy"> <field name="TEXT">{"text":"</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="BhfbH7mGwwQ{AkhnB!Il"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> </block> </value> <value name="ADD2"> <block type="text" id="BNT~cKhc$)L-sab^%C#W"> <field name="TEXT">","value":"</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="tSH=LGTCgKrty7^ODOR+"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> <value name="ADD4"> <block type="text" id="E+,QRlEw5Z_l)LdngzI7"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="-t?`LwYqo*=Y=2nXV8#,"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id=".V^Ym4@]Fhdr?l9+Nq#9"> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> </block> </value> <value name="TO"> <block type="variables_get" id="W[x--|G]LH#5r0`8p?O]"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="~ZX+.IRW/f7rLWP]fg[}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="H,aFJ^iP^rS)IF*A8wCH"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="YOZXyHT};meRwyIV%vK|"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="convert_tostring" id="KUGB8iC2OgPko%Zegw`N"> <value name="VALUE"> <block type="variables_get" id="Oh$A$:X!.P`rQfq~=]Q."> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="+c?.o6iDZ|Kz6.VapK:s"> <field name="TEXT">]</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="Y9nt~=KFwh++B,GZEC/["> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="_1|!z,QoR;MXd/.r[Dtz"> <field name="oid">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="/$wu0snvyjSUP+.-`ev}"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> <value name="VALUE"> <block type="convert_json2object" id="m}Hn/h@KIi9NO.d4U+r."> <value name="VALUE"> <block type="on_source" id="#I4@5[v]pi;H=eCg1IW`"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="lYi:d~xT7!X0xFJl*,#v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="n6zNe:p_z=T;PNhAf9JV"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="CcN./1!@a^}k7uiJN4rA"> <value name="EXPRESSION"> <shadow type="text" id="ck_hXCIkQZU=+#$g^`!G"> <field name="TEXT">*</field> </shadow> <block type="text" id="GG{)CJ)JxbrU)*?WUwY%"> <field name="TEXT">$^(<text)</field> </block> </value> <value name="TARGET"> <block type="variables_get" id="TU`:gvnqE)R/$XKot06w"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>Im zweiten Blockly befassen wir uns nun mit den Titeln welche in der jeweilig ausgewĂ€hlten Playliste stecken - und schreiben diese ebenso in die vorgesehenen Datenpunkte:

<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="8s|dJ[s_dcx`U9;jCx.T">offset</variable> <variable id="z=+.f2Q;+VQHzV+nNk#F">titelliste</variable> <variable id="A+R4;J!yy4e`~.6+ePot">titel</variable> <variable id="}bdAPzw$S|-/d[[-/l,Z">sort</variable> <variable id="qMuUH@n;-29I9Zy:c5R[">i</variable> <variable id="Ov{jv*{(3zzipR[=,!_l">filter</variable> <variable id="GG0W8(KE08)VPNlHI[Pf">titelname</variable> <variable id="/EUEs^+niuBI+e=^qt[;">objekt</variable> </variables> <block type="procedures_defnoreturn" id="HmO%OnJKUroFb$3+}%4G" collapsed="true" x="688" y="38"> <field name="NAME">ohne sortierung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion âŠ</comment> <statement name="STACK"> <block type="variables_set" id="!H~L%=m(rKojLx46MZc8"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="VALUE"> <block type="math_number" id="DK_CPJeD9-Y{K5m.1zXt"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="z=M}Ncsz][6t3qnb)c],"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> <value name="VALUE"> <block type="lists_create_with" id="N9nsz}S:(aK4i2p:#G?$"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="[:@G_6]e%8/-u0]j;E,6"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> <value name="VALUE"> <block type="get_value_var" id=",*ssF)5x,Z+.X*^;mx=x"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="|Q|CgQ+I({m9[|bOj+xL"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="Y+$PlKIuuY,*r#bsZOB6"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="get_value" id="eQu):@s~]PzgRhxBaA$k"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.Playliste_aktiv</field> </block> </value> <value name="ADD2"> <block type="text" id="o#D[Rpoem`=#|[XBz@5Z"> <field name="TEXT">.trackListArray</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_forEach" id="w:iwd%F@Z_4:w7AjB_YK"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="RW|HG?EdE;:}n_{DLGuC"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> </block> </value> <statement name="DO"> <block type="variables_set" id="J_w6-jHRM2k5pW{7N]o;"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="get_attr" id="1LElUrU0?a$K8{47hvHb"> <value name="PATH"> <shadow type="text" id="bwZW2b=Bky8IcyfM^rnc"> <field name="TEXT">title</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="|q/Scz`wVFM.lGJ9cBxt"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <next> <block type="controls_if" id="AYVSFhzxXTND[[Q^_gVY"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="$AuKFaUpCB[9p~EwJWS2"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="Z#ewA@`@T{i}Z-c$vMEt"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="FB],$?nZZ]NLJOw4l}{I"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="yHJNRdFR/#96wEN,%!]("> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id="uOd-aBAF0p}elUkYsRyO"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="XxZ$m~U]QFbkK+.u`_*i"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="text_getSubstring" id="GT0dD]9CyJer8fdkO[0Z"> <mutation at1="false" at2="true"></mutation> <field name="WHERE1">FIRST</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="VWP+B5,ZS!-p1y@k{8FP"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id="WFT=V,8)0BFt^k3/9ETc"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="Ua(zXE+U5gH}q$-*2ZMs"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id=".|Ylg6M(CBO^pD}EtjuT"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="h=GS-v,YXS[Bk#$7WSH*"> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="8qVW=oh/Tb+n#+HUEZxI"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="A7GSL~P45)LU/pDG/r3%"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="variables_get" id="bHPS[zJo=W6d=v]1XHOS"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="U0e1Lwx|CV=@m)%{2INn"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> <value name="VALUE"> <block type="text_changeCase" id="s2PEk6dTsXL?%u;,V#Rl"> <field name="CASE">UPPERCASE</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">abc</field> </shadow> <block type="text_join" id="KzQcCNy56GfE}2*.GA#O"> <mutation items="3"></mutation> <value name="ADD0"> <block type="get_attr" id="=@-B:Qg[._znh=I);l7%"> <value name="PATH"> <shadow type="text" id="agl_o=_q{Pv07|%[08ol"> <field name="TEXT">artistName</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="|xWg$Y]5GA/G$Ue9e*8("> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="DMh7Z.`1aV`Zf1=?X`=Z"> <field name="TEXT"> - </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="KI=sqwzq4;fM48kXgaJ!"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="vrrM!zpA^//)M^(]h}7O"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> <value name="VALUE"> <block type="text_join" id="C`dla5j2h=a^k3oS(5Wk"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="XN3gM`ALJo^zL@-#*3Q}"> <field name="TEXT">{"text":"</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="Z+4|Bg/mro%tXNDi/aIJ"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> </block> </value> <value name="ADD2"> <block type="text" id=")Az{#elDxVR1xi}J$DH]"> <field name="TEXT">","value":"</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="vO:fKFK]d]W{^%g~,pr["> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> </block> </value> <value name="ADD4"> <block type="text" id="Ob6f!KTjT*O$g+?I#-6n"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="|/%2[H=._UA-~?XCDjSF"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="~Ue)=I5g.o%mMv-DyN3k"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> <value name="TO"> <block type="variables_get" id="g[B!oVbv`BNFj!R6q!!`"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> </block> </value> <next> <block type="math_change" id="K8pf?O/`ZEw;f70#89)0"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="DELTA"> <shadow type="math_number" id="@H.xXi|^RmxP_6FBeG]3"> <field name="NUM">1</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="O041[4~@Io,,Cs}5wd5F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="mpM/)h_O~Co=KHQ+:/ca"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="B(b{H6kk(9YT*)tu4nL@"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="convert_tostring" id="t[5l]Rf0%_n30U+Rz;SS"> <value name="VALUE"> <block type="variables_get" id="A|)OVI]q#}$h$Ekl+SG-"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="FtW,RAj=2Qm#EwwR21r`"> <field name="TEXT">]</field> </block> </value> </block> </value> <next> <block type="update" id="F,.O{M3DU,WEHg}@ND7R"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value_var" id="~,]16hdkx^Xo]j`DZhZJ"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="n9RPtn!:mD?=_M]xeF%l"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="I7(OWa(ArXLJU3X3zn@k"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="get_value" id="^2FcqH%QsP9I:,z%Yv0["> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.Playliste_aktiv</field> </block> </value> <value name="ADD2"> <block type="text" id=".RIhQYRYP.B|HlKcosV9"> <field name="TEXT">.id</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="on_ext" id="c9?9Yrk,d9L[h~nN7`hb" x="488" y="88"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="kDimQ14Dx+/o{VekX+L*"> <field name="oid">0_userdata.0.Spotify.Funktionen.Playliste_aktiv</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="IX$+dqoPP+`vu[lxmz)["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Funktionen.Sortieren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":60g{%-g1xm-ya_U2t:-"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="C.*d_+[/^2R(PG,wxcyB"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="VALUE"> <block type="math_number" id="tkIuDb)yMcuYoTvBta8x"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="JQ):y1@NaZ?XpAlHIA,d"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> <value name="VALUE"> <block type="lists_create_with" id="WyOtpnpIVB`g=OsA}YXN"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="hmgj;!53T_`9:3mm3iWL"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> <value name="VALUE"> <block type="get_value_var" id="A?vpk-13OPhe0r(@C*r."> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="hTf(m`zx`9vmZiXvrIk7"> <field name="TEXT"></field> </shadow> <block type="text_join" id="uYW%MQ81kfs?($`qsGkh"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="JW_Y,`Sx#Ctk|{m9*HQx"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="on_source" id="P98Mi.6aAgkyHxZn@0R)"> <field name="ATTR">state.val</field> </block> </value> <value name="ADD2"> <block type="text" id="ml!G:PA/lpw^bK;ZQz{f"> <field name="TEXT">.trackListArray</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_forEach" id="ajZPSo8S{qF=ttM[GXd^"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="]IVi}17qyYUKJ.`tI$QB"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> </block> </value> <statement name="DO"> <block type="variables_set" id="n@r+,O4J9Ds.twx(ma)Z"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="get_attr" id="xrYk7`/X(+rT`96;H*u2"> <value name="PATH"> <shadow type="text" id="=S!pMH[pRG]Fw3Fi.?,Y"> <field name="TEXT">title</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Ou8{Or|)_o^A?P`D|PYn"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <next> <block type="controls_if" id="][4mL_h[$3fk|yBz/*:a"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="jBjZmwZQeB@yrOu_wKrE"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="H00`8jCJPKpHV@}G-k05"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="M).k-$0SnPTat$Ez.=(B"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="sxA8r}up[aW#bEP.BeyL"> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id=":_Cu)9onxQkqRB6wr6(8"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="D{/SITVvIG]5I/nuY}h?"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="text_getSubstring" id="}!{h(kb?mXg?rwejugV2"> <mutation at1="false" at2="true"></mutation> <field name="WHERE1">FIRST</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="ZXporIU{*zr3`.WK`;5a"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id="Fj(h(9a2ChL~IfmCvH*b"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="x8cER2gi3i4%F@??6@.l"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="I_,:%ed_o~D|UxNMZjuB"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="66nj}l.Di[sFdo~MWutm"> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="@(e0;X8TaX^rR*J|O7xc"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="Nj__VK5B+,7c9zq./;2y"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="variables_get" id="%J/sw[w@`T8Eh*C-KvVw"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="e1LQ~RSotlmf$7aKe|kK"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> <value name="VALUE"> <block type="text_changeCase" id="mfH}G%UsDcSK?Q[!!{D4"> <field name="CASE">UPPERCASE</field> <value name="TEXT"> <shadow type="text" id="3rD}gtjD#((X5kzriS0]"> <field name="TEXT">abc</field> </shadow> <block type="text_join" id="Zh+$rKf0e)bAv4`ZO_Ll"> <mutation items="3"></mutation> <value name="ADD0"> <block type="get_attr" id=",3*#I4ku)mRB;vx@eqK]"> <value name="PATH"> <shadow type="text" id="l2m!#BEQKR=w`Q)BxY:2"> <field name="TEXT">artistName</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="iJRgR1_a,1RwRD)V)eQ5"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="Pc/gxiQ/)FablTHX@uI}"> <field name="TEXT"> - </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="~OQluq[o4xIH8BY8.lb^"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="ctRCBlP?@p!a#y,H7@QO"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> <value name="VALUE"> <block type="text_join" id="4_Ve~kk8N!pfB:}*Fq,m"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="w6~`xjx1m!+}@#ll)$Dy"> <field name="TEXT">{"text":"</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="BhfbH7mGwwQ{AkhnB!Il"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> </block> </value> <value name="ADD2"> <block type="text" id="BNT~cKhc$)L-sab^%C#W"> <field name="TEXT">","value":"</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="zZp2ny7HvPL7j6cS%S8w"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> </block> </value> <value name="ADD4"> <block type="text" id="E+,QRlEw5Z_l)LdngzI7"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="-t?`LwYqo*=Y=2nXV8#,"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id=".V^Ym4@]Fhdr?l9+Nq#9"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> <value name="TO"> <block type="variables_get" id="W[x--|G]LH#5r0`8p?O]"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> </block> </value> <next> <block type="math_change" id="v8T|U);2|#TEkr}TPIAH"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="DELTA"> <shadow type="math_number" id="NsHha5JE6f[|X!wk2(qt"> <field name="NUM">1</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="~ZX+.IRW/f7rLWP]fg[}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="H,aFJ^iP^rS)IF*A8wCH"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="YOZXyHT};meRwyIV%vK|"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="convert_tostring" id="KUGB8iC2OgPko%Zegw`N"> <value name="VALUE"> <block type="variables_get" id="Oh$A$:X!.P`rQfq~=]Q."> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="+c?.o6iDZ|Kz6.VapK:s"> <field name="TEXT">]</field> </block> </value> </block> </value> <next> <block type="update" id="]LP5aYn1kfW|D}9cgGl!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value_var" id="SqjapFl}pC_XmiOR2-Wy"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="r6,+`D!EZ%w=$$}ff67/"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="FUj|1DGZ{lxw+O@p2N-X"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="on_source" id="!!0_}Bfb9[o:AAjGg/8I"> <field name="ATTR">state.val</field> </block> </value> <value name="ADD2"> <block type="text" id="WZES(y#;)|hbJlBu//nN"> <field name="TEXT">.id</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="Y9nt~=KFwh++B,GZEC/["> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="_1|!z,QoR;MXd/.r[Dtz"> <field name="oid">0_userdata.0.Spotify.Funktionen.Sortieren</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="5u~lDcRWwPn8AEPPe_3s"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="rbX*;gjzSla1]fMUb6ah"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="/$wu0snvyjSUP+.-`ev}"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> <value name="VALUE"> <block type="convert_json2object" id="m}Hn/h@KIi9NO.d4U+r."> <value name="VALUE"> <block type="get_value" id="@}$7d;_CQN]$o*XY^_%k"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> </block> </value> </block> </value> <next> <block type="update" id="lYi:d~xT7!X0xFJl*,#v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="n6zNe:p_z=T;PNhAf9JV"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="CcN./1!@a^}k7uiJN4rA"> <value name="EXPRESSION"> <shadow type="text" id="ck_hXCIkQZU=+#$g^`!G"> <field name="TEXT">*</field> </shadow> <block type="text" id="GG{)CJ)JxbrU)*?WUwY%"> <field name="TEXT">$^(<text)</field> </block> </value> <value name="TARGET"> <block type="variables_get" id="TU`:gvnqE)R/$XKot06w"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="procedures_callnoreturn" id="TVUT@CHIe,H0T#0Fb*q6"> <mutation name="ohne sortierung"></mutation> </block> </statement> </block> </statement> </block> </next> </block> </xml>Das dritte Blockly dient nur zum Abspielen der Playliste ODER des Titels innerhalb der gewĂ€hlten Playliste:

<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="hhPo0/G9D`.48jru!c_Q" x="138" y="138"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="J$3|wD[!vz6j0.%Y~{Yn"> <field name="oid">0_userdata.0.Spotify.Funktionen.Playliste_abspielen</field> </shadow> </value> <statement name="STATEMENT"> <block type="control" id="u+A?eV=f%?xJMQl6PNx:"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">spotify-premium.0.player.playUri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="-b3g}9N{sTm7;rx8*Xo="> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="Xc!ogNyu]LOU@?X-I!|m"> <field name="TEXT">{"device_id":"xxx","context_uri":"spotify:user:</field> </block> </value> <value name="ADD1"> <block type="get_value" id="}lsI[jY0X9Mpk,KYEKcT"> <field name="ATTR">val</field> <field name="OID">spotify-premium.0.authorization.userId</field> </block> </value> <value name="ADD2"> <block type="text" id="U3;U:)WY]Ua,yj6t2TGy"> <field name="TEXT">:playlist:</field> </block> </value> <value name="ADD3"> <block type="get_value" id="82YGfd=Iev!k%}k!pcD-"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> </block> </value> <value name="ADD4"> <block type="text" id="5*7,CYr?89}{KoQ`Q(U0"> <field name="TEXT">","offset":{"position":0}}</field> </block> </value> </block> </value> </block> </statement> <next> <block type="on_ext" id="f^X!rwC+KSok:iDz;U_G"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="%|IwCAOP1j1xS|_%t@Bc"> <field name="oid">0_userdata.0.Spotify.Funktionen.Titel_abspielen</field> </shadow> </value> <statement name="STATEMENT"> <block type="control" id="-{TntM[r~)Glbq)@Lw4("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">spotify-premium.0.player.playUri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="I)TB+6f;F`.sx8ySFDj("> <mutation items="7"></mutation> <value name="ADD0"> <block type="text" id="ZbQ8I#-Rb}2Rw;Q[+jTj"> <field name="TEXT">{"device_id":"xxx","context_uri":"spotify:user:</field> </block> </value> <value name="ADD1"> <block type="get_value" id="g?rNK]bRW*=VYsj0p@Kp"> <field name="ATTR">val</field> <field name="OID">spotify-premium.0.authorization.userId</field> </block> </value> <value name="ADD2"> <block type="text" id=")Sa}df6^.4wAW3Wrxg,b"> <field name="TEXT">:playlist:</field> </block> </value> <value name="ADD3"> <block type="get_value" id="4A{keUCzXbaq#N(jSQ|u"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> </block> </value> <value name="ADD4"> <block type="text" id="1%/ch[4T$SxZyz1,I(qT"> <field name="TEXT">","offset":{"position":</field> </block> </value> <value name="ADD5"> <block type="get_value" id="QH?c!9GN-)Ch%y,Kmls/"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.Titel_aktiv</field> </block> </value> <value name="ADD6"> <block type="text" id="Lf4bjozsZ7!`#X6zy9ZK"> <field name="TEXT">}}</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </xml>!!! WICHTIG !!!
Die Blocklys MĂSSEN an Eure eigenen Datenpunkte angepasst werden - und auch dazu kann ich nicht unterstĂŒtzen !z.B. muss "device_id":"xxx" - also auch das xxx dort mit dem jeweiligen device_id des abzuspielenden Echos ersetzt werden.
HowTo herausfinden ?
Device unter
spotify-premium.0.devices.xxx.idWeiter gehts mit der VIS
Lehrling seit 1975 !!!
Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
https://forum.iobroker.net/topic/51555/hinweise-fĂŒr-gute-forenbeitrĂ€ge -
Screenshots sind nur Ansatzweise zu werten - deshalb gibt es jeweilig den Code zum Importieren !)
Im ersten Blockly fragen wir mal die Playlisten ab und schreiben die notwendigen Daten in die dafĂŒr vorgesehenen Datenpunkte:

<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="`e/`Y|g1yt[LqDde4cUg">myID</variable> <variable id="$TGe7c|7mWim[0^Ny-*8">playlisten</variable> <variable id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</variable> <variable id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</variable> <variable id="qMuUH@n;-29I9Zy:c5R[">i</variable> <variable id="A+R4;J!yy4e`~.6+ePot">playliste</variable> <variable id="}bdAPzw$S|-/d[[-/l,Z">sort</variable> <variable id="ZNIImHZ1MQl]hTTqQ}lA">details</variable> <variable id="GG0W8(KE08)VPNlHI[Pf">playlistname</variable> <variable id="/EUEs^+niuBI+e=^qt[;">objekt</variable> </variables> <block type="procedures_defcustomreturn" id="RR9RFRWFc/U|Eb-mEDPq" x="413" y="-287"> <mutation statements="false"> <arg name="myID" varid="`e/`Y|g1yt[LqDde4cUg"></arg> </mutation> <field name="NAME">owner</field> <field name="SCRIPT">cmV0dXJuIG15SUQucmVwbGFjZSgib3duZXIiLCJpZCIpOyA=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion âŠ</comment> </block> <block type="schedule" id="v)gNpr{TWUHp]Rp?,fRx" x="413" y="-237"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="w7(2wOFE|5;iazx$?Z7o"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> <value name="VALUE"> <block type="lists_create_with" id="uiJM8.UYKR8_U;y?V%NP"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="t14i7X.yb2(.R*9jvPgw"> <field name="VAR" id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</field> <value name="VALUE"> <block type="selector" id="C9/ux5=-jtW1Btdde^}X"> <field name="TEXT">spotify-premium.0.playlists.*.owner</field> </block> </value> <next> <block type="controls_forEach" id="KMParn:4JO}?|=6rRZ3/"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="93l(X1e$@Zw2W@SRa-zt"> <field name="VAR" id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</field> </block> </value> <statement name="DO"> <block type="variables_set" id="nFUq5t{=rjRzLuv7|_7*"> <field name="VAR" id="ZNIImHZ1MQl]hTTqQ}lA">details</field> <value name="VALUE"> <block type="text_join" id="#G?!I#aw1$e1pw|G1gCy"> <mutation items="3"></mutation> <value name="ADD0"> <block type="get_value_var" id="8]!;mtn.FPvqXs#maqbU"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="iVY`N{H/f2dO@C4Afx@K"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="oY9g#X,AVw.7x^e-S12Q"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="w{$d5zn^.i*,=HPhhnhz"> <field name="TEXT">-</field> </block> </value> <value name="ADD2"> <block type="get_value_var" id="jlp2U?dgV?;$*C*:oIAN"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="=t7W$G`{Ted|g{^//H:N"> <field name="TEXT"></field> </shadow> <block type="procedures_callcustomreturn" id="~G;rOPc:$(#.R7pX4R]C"> <mutation name="owner"> <arg name="myID"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="c8dP!+37I60ar)HJ,7W~"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="GnsPh(wPQ:|fHk[^`GDB"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">FIRST</field> <value name="LIST"> <block type="variables_get" id="YG--O]pa?xj?ghx6D]J~"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> </block> </value> <value name="TO"> <block type="variables_get" id="o$+U#tYe,Jgy7?E/2RD/"> <field name="VAR" id="ZNIImHZ1MQl]hTTqQ}lA">details</field> </block> </value> </block> </next> </block> </statement> <next> <block type="update" id="mBt,,:8+-i+LDbBY_|M["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenString</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tostring" id="0A!bLCVE=_ha#_0.gL]W"> <value name="VALUE"> <block type="variables_get" id="@EHd.08D$*1*n!E+~tWq"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="c9?9Yrk,d9L[h~nN7`hb"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="kDimQ14Dx+/o{VekX+L*"> <field name="oid">0_userdata.0.Spotify.Abfragen.PlaylistenString</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="JQ):y1@NaZ?XpAlHIA,d"> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> <value name="VALUE"> <block type="lists_create_with" id="WyOtpnpIVB`g=OsA}YXN"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="hmgj;!53T_`9:3mm3iWL"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">playliste</field> <value name="VALUE"> <block type="lists_split" id="MglvOaZoo`udzPbSgs-g"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="on_source" id="hHo7ewq_DxyE,g|`@,+A"> <field name="ATTR">state.val</field> </block> </value> <value name="DELIM"> <shadow type="text" id="ec}^V3zQKdCOH5g#M`u9"> <field name="TEXT">,</field> </shadow> </value> </block> </value> <next> <block type="controls_forEach" id="ajZPSo8S{qF=ttM[GXd^"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="]IVi}17qyYUKJ.`tI$QB"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">playliste</field> </block> </value> <statement name="DO"> <block type="variables_set" id="e1LQ~RSotlmf$7aKe|kK"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> <value name="VALUE"> <block type="text_join" id="Zh+$rKf0e)bAv4`ZO_Ll"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="!5E!q8~IZl=lVe:D1e{A"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="iJRgR1_a,1RwRD)V)eQ5"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> <value name="ADD2"> <block type="text" id="Pc/gxiQ/)FablTHX@uI}"> <field name="TEXT">.name</field> </block> </value> </block> </value> <next> <block type="variables_set" id="1n=Ui6Zxw{1L{BnIf:=]"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> <value name="VALUE"> <block type="text_changeCase" id="Vus*D9$BEok35qz$fC:j"> <field name="CASE">UPPERCASE</field> <value name="TEXT"> <shadow type="text" id="RRDka23`)BruPQ:r.*o4"> <field name="TEXT">abc</field> </shadow> <block type="get_value_var" id="(]Wp^Y65HmVHHaYEHsW}"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="x|UlQ#_RiFjEu+,I]b9y"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="cIgV)^8{CWQc0M$bpa1="> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="ctRCBlP?@p!a#y,H7@QO"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> <value name="VALUE"> <block type="text_join" id="4_Ve~kk8N!pfB:}*Fq,m"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="w6~`xjx1m!+}@#ll)$Dy"> <field name="TEXT">{"text":"</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="BhfbH7mGwwQ{AkhnB!Il"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> </block> </value> <value name="ADD2"> <block type="text" id="BNT~cKhc$)L-sab^%C#W"> <field name="TEXT">","value":"</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="tSH=LGTCgKrty7^ODOR+"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> <value name="ADD4"> <block type="text" id="E+,QRlEw5Z_l)LdngzI7"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="-t?`LwYqo*=Y=2nXV8#,"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id=".V^Ym4@]Fhdr?l9+Nq#9"> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> </block> </value> <value name="TO"> <block type="variables_get" id="W[x--|G]LH#5r0`8p?O]"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="~ZX+.IRW/f7rLWP]fg[}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="H,aFJ^iP^rS)IF*A8wCH"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="YOZXyHT};meRwyIV%vK|"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="convert_tostring" id="KUGB8iC2OgPko%Zegw`N"> <value name="VALUE"> <block type="variables_get" id="Oh$A$:X!.P`rQfq~=]Q."> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="+c?.o6iDZ|Kz6.VapK:s"> <field name="TEXT">]</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="Y9nt~=KFwh++B,GZEC/["> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="_1|!z,QoR;MXd/.r[Dtz"> <field name="oid">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="/$wu0snvyjSUP+.-`ev}"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> <value name="VALUE"> <block type="convert_json2object" id="m}Hn/h@KIi9NO.d4U+r."> <value name="VALUE"> <block type="on_source" id="#I4@5[v]pi;H=eCg1IW`"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="lYi:d~xT7!X0xFJl*,#v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="n6zNe:p_z=T;PNhAf9JV"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="CcN./1!@a^}k7uiJN4rA"> <value name="EXPRESSION"> <shadow type="text" id="ck_hXCIkQZU=+#$g^`!G"> <field name="TEXT">*</field> </shadow> <block type="text" id="GG{)CJ)JxbrU)*?WUwY%"> <field name="TEXT">$^(<text)</field> </block> </value> <value name="TARGET"> <block type="variables_get" id="TU`:gvnqE)R/$XKot06w"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>Im zweiten Blockly befassen wir uns nun mit den Titeln welche in der jeweilig ausgewĂ€hlten Playliste stecken - und schreiben diese ebenso in die vorgesehenen Datenpunkte:

<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="8s|dJ[s_dcx`U9;jCx.T">offset</variable> <variable id="z=+.f2Q;+VQHzV+nNk#F">titelliste</variable> <variable id="A+R4;J!yy4e`~.6+ePot">titel</variable> <variable id="}bdAPzw$S|-/d[[-/l,Z">sort</variable> <variable id="qMuUH@n;-29I9Zy:c5R[">i</variable> <variable id="Ov{jv*{(3zzipR[=,!_l">filter</variable> <variable id="GG0W8(KE08)VPNlHI[Pf">titelname</variable> <variable id="/EUEs^+niuBI+e=^qt[;">objekt</variable> </variables> <block type="procedures_defnoreturn" id="HmO%OnJKUroFb$3+}%4G" collapsed="true" x="688" y="38"> <field name="NAME">ohne sortierung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion âŠ</comment> <statement name="STACK"> <block type="variables_set" id="!H~L%=m(rKojLx46MZc8"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="VALUE"> <block type="math_number" id="DK_CPJeD9-Y{K5m.1zXt"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="z=M}Ncsz][6t3qnb)c],"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> <value name="VALUE"> <block type="lists_create_with" id="N9nsz}S:(aK4i2p:#G?$"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="[:@G_6]e%8/-u0]j;E,6"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> <value name="VALUE"> <block type="get_value_var" id=",*ssF)5x,Z+.X*^;mx=x"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="|Q|CgQ+I({m9[|bOj+xL"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="Y+$PlKIuuY,*r#bsZOB6"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="get_value" id="eQu):@s~]PzgRhxBaA$k"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.Playliste_aktiv</field> </block> </value> <value name="ADD2"> <block type="text" id="o#D[Rpoem`=#|[XBz@5Z"> <field name="TEXT">.trackListArray</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_forEach" id="w:iwd%F@Z_4:w7AjB_YK"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="RW|HG?EdE;:}n_{DLGuC"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> </block> </value> <statement name="DO"> <block type="variables_set" id="J_w6-jHRM2k5pW{7N]o;"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="get_attr" id="1LElUrU0?a$K8{47hvHb"> <value name="PATH"> <shadow type="text" id="bwZW2b=Bky8IcyfM^rnc"> <field name="TEXT">title</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="|q/Scz`wVFM.lGJ9cBxt"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <next> <block type="controls_if" id="AYVSFhzxXTND[[Q^_gVY"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="$AuKFaUpCB[9p~EwJWS2"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="Z#ewA@`@T{i}Z-c$vMEt"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="FB],$?nZZ]NLJOw4l}{I"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="yHJNRdFR/#96wEN,%!]("> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id="uOd-aBAF0p}elUkYsRyO"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="XxZ$m~U]QFbkK+.u`_*i"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="text_getSubstring" id="GT0dD]9CyJer8fdkO[0Z"> <mutation at1="false" at2="true"></mutation> <field name="WHERE1">FIRST</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="VWP+B5,ZS!-p1y@k{8FP"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id="WFT=V,8)0BFt^k3/9ETc"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="Ua(zXE+U5gH}q$-*2ZMs"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id=".|Ylg6M(CBO^pD}EtjuT"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="h=GS-v,YXS[Bk#$7WSH*"> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="8qVW=oh/Tb+n#+HUEZxI"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="A7GSL~P45)LU/pDG/r3%"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="variables_get" id="bHPS[zJo=W6d=v]1XHOS"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="U0e1Lwx|CV=@m)%{2INn"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> <value name="VALUE"> <block type="text_changeCase" id="s2PEk6dTsXL?%u;,V#Rl"> <field name="CASE">UPPERCASE</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">abc</field> </shadow> <block type="text_join" id="KzQcCNy56GfE}2*.GA#O"> <mutation items="3"></mutation> <value name="ADD0"> <block type="get_attr" id="=@-B:Qg[._znh=I);l7%"> <value name="PATH"> <shadow type="text" id="agl_o=_q{Pv07|%[08ol"> <field name="TEXT">artistName</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="|xWg$Y]5GA/G$Ue9e*8("> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="DMh7Z.`1aV`Zf1=?X`=Z"> <field name="TEXT"> - </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="KI=sqwzq4;fM48kXgaJ!"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="vrrM!zpA^//)M^(]h}7O"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> <value name="VALUE"> <block type="text_join" id="C`dla5j2h=a^k3oS(5Wk"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="XN3gM`ALJo^zL@-#*3Q}"> <field name="TEXT">{"text":"</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="Z+4|Bg/mro%tXNDi/aIJ"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> </block> </value> <value name="ADD2"> <block type="text" id=")Az{#elDxVR1xi}J$DH]"> <field name="TEXT">","value":"</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="vO:fKFK]d]W{^%g~,pr["> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> </block> </value> <value name="ADD4"> <block type="text" id="Ob6f!KTjT*O$g+?I#-6n"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="|/%2[H=._UA-~?XCDjSF"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="~Ue)=I5g.o%mMv-DyN3k"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> <value name="TO"> <block type="variables_get" id="g[B!oVbv`BNFj!R6q!!`"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> </block> </value> <next> <block type="math_change" id="K8pf?O/`ZEw;f70#89)0"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="DELTA"> <shadow type="math_number" id="@H.xXi|^RmxP_6FBeG]3"> <field name="NUM">1</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="O041[4~@Io,,Cs}5wd5F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="mpM/)h_O~Co=KHQ+:/ca"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="B(b{H6kk(9YT*)tu4nL@"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="convert_tostring" id="t[5l]Rf0%_n30U+Rz;SS"> <value name="VALUE"> <block type="variables_get" id="A|)OVI]q#}$h$Ekl+SG-"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="FtW,RAj=2Qm#EwwR21r`"> <field name="TEXT">]</field> </block> </value> </block> </value> <next> <block type="update" id="F,.O{M3DU,WEHg}@ND7R"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value_var" id="~,]16hdkx^Xo]j`DZhZJ"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="n9RPtn!:mD?=_M]xeF%l"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="I7(OWa(ArXLJU3X3zn@k"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="get_value" id="^2FcqH%QsP9I:,z%Yv0["> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.Playliste_aktiv</field> </block> </value> <value name="ADD2"> <block type="text" id=".RIhQYRYP.B|HlKcosV9"> <field name="TEXT">.id</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="on_ext" id="c9?9Yrk,d9L[h~nN7`hb" x="488" y="88"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="kDimQ14Dx+/o{VekX+L*"> <field name="oid">0_userdata.0.Spotify.Funktionen.Playliste_aktiv</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="IX$+dqoPP+`vu[lxmz)["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Funktionen.Sortieren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":60g{%-g1xm-ya_U2t:-"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="C.*d_+[/^2R(PG,wxcyB"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="VALUE"> <block type="math_number" id="tkIuDb)yMcuYoTvBta8x"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="JQ):y1@NaZ?XpAlHIA,d"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> <value name="VALUE"> <block type="lists_create_with" id="WyOtpnpIVB`g=OsA}YXN"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="hmgj;!53T_`9:3mm3iWL"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> <value name="VALUE"> <block type="get_value_var" id="A?vpk-13OPhe0r(@C*r."> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="hTf(m`zx`9vmZiXvrIk7"> <field name="TEXT"></field> </shadow> <block type="text_join" id="uYW%MQ81kfs?($`qsGkh"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="JW_Y,`Sx#Ctk|{m9*HQx"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="on_source" id="P98Mi.6aAgkyHxZn@0R)"> <field name="ATTR">state.val</field> </block> </value> <value name="ADD2"> <block type="text" id="ml!G:PA/lpw^bK;ZQz{f"> <field name="TEXT">.trackListArray</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_forEach" id="ajZPSo8S{qF=ttM[GXd^"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="]IVi}17qyYUKJ.`tI$QB"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">titel</field> </block> </value> <statement name="DO"> <block type="variables_set" id="n@r+,O4J9Ds.twx(ma)Z"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="get_attr" id="xrYk7`/X(+rT`96;H*u2"> <value name="PATH"> <shadow type="text" id="=S!pMH[pRG]Fw3Fi.?,Y"> <field name="TEXT">title</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Ou8{Or|)_o^A?P`D|PYn"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <next> <block type="controls_if" id="][4mL_h[$3fk|yBz/*:a"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="jBjZmwZQeB@yrOu_wKrE"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="H00`8jCJPKpHV@}G-k05"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="M).k-$0SnPTat$Ez.=(B"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="sxA8r}up[aW#bEP.BeyL"> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id=":_Cu)9onxQkqRB6wr6(8"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="D{/SITVvIG]5I/nuY}h?"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="text_getSubstring" id="}!{h(kb?mXg?rwejugV2"> <mutation at1="false" at2="true"></mutation> <field name="WHERE1">FIRST</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="ZXporIU{*zr3`.WK`;5a"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id="Fj(h(9a2ChL~IfmCvH*b"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="x8cER2gi3i4%F@??6@.l"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="I_,:%ed_o~D|UxNMZjuB"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> <value name="FIND"> <shadow type="text" id="66nj}l.Di[sFdo~MWutm"> <field name="TEXT">"</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="@(e0;X8TaX^rR*J|O7xc"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="Nj__VK5B+,7c9zq./;2y"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> <value name="VALUE"> <block type="variables_get" id="%J/sw[w@`T8Eh*C-KvVw"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="e1LQ~RSotlmf$7aKe|kK"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> <value name="VALUE"> <block type="text_changeCase" id="mfH}G%UsDcSK?Q[!!{D4"> <field name="CASE">UPPERCASE</field> <value name="TEXT"> <shadow type="text" id="3rD}gtjD#((X5kzriS0]"> <field name="TEXT">abc</field> </shadow> <block type="text_join" id="Zh+$rKf0e)bAv4`ZO_Ll"> <mutation items="3"></mutation> <value name="ADD0"> <block type="get_attr" id=",3*#I4ku)mRB;vx@eqK]"> <value name="PATH"> <shadow type="text" id="l2m!#BEQKR=w`Q)BxY:2"> <field name="TEXT">artistName</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="iJRgR1_a,1RwRD)V)eQ5"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="Pc/gxiQ/)FablTHX@uI}"> <field name="TEXT"> - </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="~OQluq[o4xIH8BY8.lb^"> <field name="VAR" id="Ov{jv*{(3zzipR[=,!_l">filter</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="ctRCBlP?@p!a#y,H7@QO"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> <value name="VALUE"> <block type="text_join" id="4_Ve~kk8N!pfB:}*Fq,m"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="w6~`xjx1m!+}@#ll)$Dy"> <field name="TEXT">{"text":"</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="BhfbH7mGwwQ{AkhnB!Il"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">titelname</field> </block> </value> <value name="ADD2"> <block type="text" id="BNT~cKhc$)L-sab^%C#W"> <field name="TEXT">","value":"</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="zZp2ny7HvPL7j6cS%S8w"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> </block> </value> <value name="ADD4"> <block type="text" id="E+,QRlEw5Z_l)LdngzI7"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="-t?`LwYqo*=Y=2nXV8#,"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id=".V^Ym4@]Fhdr?l9+Nq#9"> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> <value name="TO"> <block type="variables_get" id="W[x--|G]LH#5r0`8p?O]"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> </block> </value> <next> <block type="math_change" id="v8T|U);2|#TEkr}TPIAH"> <field name="VAR" id="8s|dJ[s_dcx`U9;jCx.T">offset</field> <value name="DELTA"> <shadow type="math_number" id="NsHha5JE6f[|X!wk2(qt"> <field name="NUM">1</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="~ZX+.IRW/f7rLWP]fg[}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="H,aFJ^iP^rS)IF*A8wCH"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="YOZXyHT};meRwyIV%vK|"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="convert_tostring" id="KUGB8iC2OgPko%Zegw`N"> <value name="VALUE"> <block type="variables_get" id="Oh$A$:X!.P`rQfq~=]Q."> <field name="VAR" id="z=+.f2Q;+VQHzV+nNk#F">titelliste</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="+c?.o6iDZ|Kz6.VapK:s"> <field name="TEXT">]</field> </block> </value> </block> </value> <next> <block type="update" id="]LP5aYn1kfW|D}9cgGl!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value_var" id="SqjapFl}pC_XmiOR2-Wy"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="r6,+`D!EZ%w=$$}ff67/"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="FUj|1DGZ{lxw+O@p2N-X"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="on_source" id="!!0_}Bfb9[o:AAjGg/8I"> <field name="ATTR">state.val</field> </block> </value> <value name="ADD2"> <block type="text" id="WZES(y#;)|hbJlBu//nN"> <field name="TEXT">.id</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="Y9nt~=KFwh++B,GZEC/["> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="_1|!z,QoR;MXd/.r[Dtz"> <field name="oid">0_userdata.0.Spotify.Funktionen.Sortieren</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="5u~lDcRWwPn8AEPPe_3s"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="rbX*;gjzSla1]fMUb6ah"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="/$wu0snvyjSUP+.-`ev}"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> <value name="VALUE"> <block type="convert_json2object" id="m}Hn/h@KIi9NO.d4U+r."> <value name="VALUE"> <block type="get_value" id="@}$7d;_CQN]$o*XY^_%k"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> </block> </value> </block> </value> <next> <block type="update" id="lYi:d~xT7!X0xFJl*,#v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.Playlistentitel</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="n6zNe:p_z=T;PNhAf9JV"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="CcN./1!@a^}k7uiJN4rA"> <value name="EXPRESSION"> <shadow type="text" id="ck_hXCIkQZU=+#$g^`!G"> <field name="TEXT">*</field> </shadow> <block type="text" id="GG{)CJ)JxbrU)*?WUwY%"> <field name="TEXT">$^(<text)</field> </block> </value> <value name="TARGET"> <block type="variables_get" id="TU`:gvnqE)R/$XKot06w"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="procedures_callnoreturn" id="TVUT@CHIe,H0T#0Fb*q6"> <mutation name="ohne sortierung"></mutation> </block> </statement> </block> </statement> </block> </next> </block> </xml>Das dritte Blockly dient nur zum Abspielen der Playliste ODER des Titels innerhalb der gewĂ€hlten Playliste:

<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="hhPo0/G9D`.48jru!c_Q" x="138" y="138"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="J$3|wD[!vz6j0.%Y~{Yn"> <field name="oid">0_userdata.0.Spotify.Funktionen.Playliste_abspielen</field> </shadow> </value> <statement name="STATEMENT"> <block type="control" id="u+A?eV=f%?xJMQl6PNx:"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">spotify-premium.0.player.playUri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="-b3g}9N{sTm7;rx8*Xo="> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="Xc!ogNyu]LOU@?X-I!|m"> <field name="TEXT">{"device_id":"xxx","context_uri":"spotify:user:</field> </block> </value> <value name="ADD1"> <block type="get_value" id="}lsI[jY0X9Mpk,KYEKcT"> <field name="ATTR">val</field> <field name="OID">spotify-premium.0.authorization.userId</field> </block> </value> <value name="ADD2"> <block type="text" id="U3;U:)WY]Ua,yj6t2TGy"> <field name="TEXT">:playlist:</field> </block> </value> <value name="ADD3"> <block type="get_value" id="82YGfd=Iev!k%}k!pcD-"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> </block> </value> <value name="ADD4"> <block type="text" id="5*7,CYr?89}{KoQ`Q(U0"> <field name="TEXT">","offset":{"position":0}}</field> </block> </value> </block> </value> </block> </statement> <next> <block type="on_ext" id="f^X!rwC+KSok:iDz;U_G"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="%|IwCAOP1j1xS|_%t@Bc"> <field name="oid">0_userdata.0.Spotify.Funktionen.Titel_abspielen</field> </shadow> </value> <statement name="STATEMENT"> <block type="control" id="-{TntM[r~)Glbq)@Lw4("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">spotify-premium.0.player.playUri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="I)TB+6f;F`.sx8ySFDj("> <mutation items="7"></mutation> <value name="ADD0"> <block type="text" id="ZbQ8I#-Rb}2Rw;Q[+jTj"> <field name="TEXT">{"device_id":"xxx","context_uri":"spotify:user:</field> </block> </value> <value name="ADD1"> <block type="get_value" id="g?rNK]bRW*=VYsj0p@Kp"> <field name="ATTR">val</field> <field name="OID">spotify-premium.0.authorization.userId</field> </block> </value> <value name="ADD2"> <block type="text" id=")Sa}df6^.4wAW3Wrxg,b"> <field name="TEXT">:playlist:</field> </block> </value> <value name="ADD3"> <block type="get_value" id="4A{keUCzXbaq#N(jSQ|u"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.PlaylistID</field> </block> </value> <value name="ADD4"> <block type="text" id="1%/ch[4T$SxZyz1,I(qT"> <field name="TEXT">","offset":{"position":</field> </block> </value> <value name="ADD5"> <block type="get_value" id="QH?c!9GN-)Ch%y,Kmls/"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Spotify.Funktionen.Titel_aktiv</field> </block> </value> <value name="ADD6"> <block type="text" id="Lf4bjozsZ7!`#X6zy9ZK"> <field name="TEXT">}}</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </xml>!!! WICHTIG !!!
Die Blocklys MĂSSEN an Eure eigenen Datenpunkte angepasst werden - und auch dazu kann ich nicht unterstĂŒtzen !z.B. muss "device_id":"xxx" - also auch das xxx dort mit dem jeweiligen device_id des abzuspielenden Echos ersetzt werden.
HowTo herausfinden ?
Device unter
spotify-premium.0.devices.xxx.idWeiter gehts mit der VIS
Da ich, wie oben erwÀhnt, dies erstmal nur funktionell sehe und die optischen GeschmÀcker verschieden sind, bitte keine Kritik oder gar VerbesserungsvorschlÀge liefern - bringt mir und Euch nix :)
Video wie es aussehen KANN:
Sodele. Und jetzt die VIS (als View importieren - MUSS danach zwingend angepasst werden - es gibt hier keinen Support !!!)
{ "settings": { "style": { "background_class": "", "background-color": "black" }, "theme": "redmond", "sizex": "2300", "sizey": "1000", "hideDescription": false, "gridSize": "", "useBackground": false, "snapType": 1 }, "widgets": { "e00001": { "tpl": "tplVis-materialdesign-Select", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Playliste_aktiv", "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", "inputType": "text", "vibrateOnMobilDevices": "50", "inputLayout": "solo", "inputAlignment": "left", "inputLayoutBorderColor": "#mdwTheme:vis-materialdesign.0.colors.input.border", "inputLayoutBorderColorHover": "#mdwTheme:vis-materialdesign.0.colors.input.border_hover", "inputLayoutBorderColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.border_selected", "inputTextFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.text", "inputTextFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.text", "inputTextColor": "white", "inputLabelColor": "#mdwTheme:vis-materialdesign.0.colors.input.label", "inputLabelColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.label_selected", "inputLabelFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.label", "inputLabelFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.label", "inputAppendixColor": "#mdwTheme:vis-materialdesign.0.colors.input.appendix", "inputAppendixFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.appendix", "inputAppendixFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.appendix", "showInputMessageAlways": "true", "inputMessageFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.message", "inputMessageFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.message", "inputMessageColor": "#mdwTheme:vis-materialdesign.0.colors.input.message", "showInputCounter": false, "inputCounterColor": "#mdwTheme:vis-materialdesign.0.colors.input.counter", "inputCounterFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.counter", "inputCounterFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.counter", "clearIconShow": false, "clearIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.icon_clear", "collapseIconColor": "white", "listDataMethod": "jsonStringObject", "countSelectItems": "1", "listPosition": "bottom", "listItemBackgroundColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.background", "listItemBackgroundHoverColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.hover", "listItemBackgroundSelectedColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.selected", "listItemRippleEffectColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.effect", "showSelectedIcon": "prepend-inner", "listIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.icon", "listItemFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.text", "listItemFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.text", "listItemFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.text", "listItemSubFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.subText", "listItemSubFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.subText", "listItemSubFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.subText", "showValue": false, "listItemValueFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.value", "listItemValueFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.value", "listItemValueFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.value", "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, "jsonStringObject": "{0_userdata.0.Spotify.Abfragen.PlaylistenJson}", "valueList": "{0_userdata.0.Spotify.Abfragen.PlaylistenJson}", "valueListLabels": "{0_userdata.0.Spotify.Abfragen.PlaylistenJson}", "inputLabelText": "", "listPositionOffset": true, "inputLayoutBackgroundColor": "#1db954", "inputLayoutBackgroundColorHover": "#1db954", "inputLayoutBackgroundColorSelected": "#1db954", "collapseIcon": "" }, "style": { "left": "647px", "top": "121px", "z-index": "10", "width": "237px", "height": "38px" }, "widgetSet": "materialdesign" }, "e00002": { "tpl": "tplVis-materialdesign-Select", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Titel_aktiv", "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", "inputType": "text", "vibrateOnMobilDevices": "50", "inputLayout": "solo", "inputAlignment": "left", "inputLayoutBorderColor": "#mdwTheme:vis-materialdesign.0.colors.input.border", "inputLayoutBorderColorHover": "#mdwTheme:vis-materialdesign.0.colors.input.border_hover", "inputLayoutBorderColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.border_selected", "inputTextFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.text", "inputTextFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.text", "inputTextColor": "White", "inputLabelColor": "#mdwTheme:vis-materialdesign.0.colors.input.label", "inputLabelColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.label_selected", "inputLabelFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.label", "inputLabelFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.label", "inputAppendixColor": "#mdwTheme:vis-materialdesign.0.colors.input.appendix", "inputAppendixFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.appendix", "inputAppendixFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.appendix", "showInputMessageAlways": false, "inputMessageFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.message", "inputMessageFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.message", "inputMessageColor": "#mdwTheme:vis-materialdesign.0.colors.input.message", "showInputCounter": false, "inputCounterColor": "#mdwTheme:vis-materialdesign.0.colors.input.counter", "inputCounterFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.counter", "inputCounterFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.counter", "clearIconShow": false, "clearIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.icon_clear", "collapseIconColor": "white", "listDataMethod": "jsonStringObject", "countSelectItems": "1", "listPosition": "auto", "listItemBackgroundColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.background", "listItemBackgroundHoverColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.hover", "listItemBackgroundSelectedColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.selected", "listItemRippleEffectColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.effect", "showSelectedIcon": "prepend-inner", "listIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.icon", "listItemFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.text", "listItemFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.text", "listItemFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.text", "listItemSubFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.subText", "listItemSubFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.subText", "listItemSubFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.subText", "showValue": false, "listItemValueFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.value", "listItemValueFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.value", "listItemValueFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.value", "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, "jsonStringObject": "{0_userdata.0.Spotify.Abfragen.Playlistentitel}", "valueList": "{0_userdata.0.Spotify.Abfragen.Playlistentitel}", "valueListLabels": "{0_userdata.0.Spotify.Abfragen.Playlistentitel}", "inputLabelText": "", "label0": "Titel", "listPositionOffset": true, "inputLayoutBackgroundColor": "#1db954", "inputLayoutBackgroundColorHover": "#1db954", "inputLayoutBackgroundColorSelected": "#1db954" }, "style": { "left": "1175px", "top": "119px", "z-index": "10", "width": "491px", "height": "38px" }, "widgetSet": "materialdesign" }, "e00003": { "tpl": "tplVis-materialdesign-Button-State-vertical", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Playliste_abspielen", "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, "g_last_change": false, "buttonStyle": "raised", "vibrateOnMobilDevices": "50", "buttontext": "PLAY", "textFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.button.vertical.text", "textFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.button.vertical.text", "alignment": "center", "mdwButtonPrimaryColor": "#1db954", "mdwButtonSecondaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.secondary", "image": "", "iconPosition": "top", "iconHeight": "26", "autoLockAfter": "10", "lockIconTop": "5", "lockIconLeft": "5", "lockIconColor": "#mdwTheme:vis-materialdesign.0.colors.button.lock_icon", "lockFilterGrayscale": "30", "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, "value": "true", "lockEnabled": true, "visibility-cond": "==", "visibility-val": 1, "visibility-groups-action": "hide" }, "style": { "left": "891px", "top": "122px", "z-index": "10", "width": "100px", "height": "39px", "color": "" }, "widgetSet": "materialdesign" }, "e00004": { "tpl": "tplVis-materialdesign-Button-State-vertical", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Titel_abspielen", "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, "g_last_change": false, "buttonStyle": "raised", "vibrateOnMobilDevices": "50", "buttontext": "PLAY", "textFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.button.vertical.text", "textFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.button.vertical.text", "alignment": "center", "mdwButtonPrimaryColor": "#1db954", "mdwButtonSecondaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.secondary", "image": "", "iconPosition": "top", "iconHeight": "26", "autoLockAfter": "10", "lockIconTop": "5", "lockIconLeft": "5", "lockIconColor": "#mdwTheme:vis-materialdesign.0.colors.button.lock_icon", "lockFilterGrayscale": "30", "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, "value": "true", "lockEnabled": true, "visibility-cond": "==", "visibility-val": 1, "visibility-groups-action": "hide" }, "style": { "left": "1734px", "top": "118px", "z-index": "10", "width": "100px", "height": "39px", "color": "" }, "widgetSet": "materialdesign" }, "e00005": { "tpl": "tplVis-materialdesign-Button-Toggle", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Sortieren", "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", "buttonStyle": "raised", "toggleType": "boolean", "stateIfNotTrueValue": "on", "vibrateOnMobilDevices": "50", "buttontext": "sort", "textFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.button.default.text", "textFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.button.default.text", "mdwButtonPrimaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.primary", "mdwButtonSecondaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.secondary", "image": "", "iconPosition": "left", "autoLockAfter": "10", "lockIconColor": "#mdwTheme:vis-materialdesign.0.colors.button.lock_icon", "lockFilterGrayscale": "30", "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, "valueOff": "false", "valueOn": "true", "labelTrue": "unsort" }, "style": { "left": "1671px", "top": "120px", "z-index": "10", "width": "57px", "height": "37px" }, "widgetSet": "materialdesign" } }, "rerender": false, "filterList": [], "name": "Spotify_test" }Dann mal viel Spass !
edit: ich bastel grad noch ein viertes Skript um das jeweilige Echo-Device auszuwÀhlen ;)
Lehrling seit 1975 !!!
Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
https://forum.iobroker.net/topic/51555/hinweise-fĂŒr-gute-forenbeitrĂ€ge -
Da ich, wie oben erwÀhnt, dies erstmal nur funktionell sehe und die optischen GeschmÀcker verschieden sind, bitte keine Kritik oder gar VerbesserungsvorschlÀge liefern - bringt mir und Euch nix :)
Video wie es aussehen KANN:
Sodele. Und jetzt die VIS (als View importieren - MUSS danach zwingend angepasst werden - es gibt hier keinen Support !!!)
{ "settings": { "style": { "background_class": "", "background-color": "black" }, "theme": "redmond", "sizex": "2300", "sizey": "1000", "hideDescription": false, "gridSize": "", "useBackground": false, "snapType": 1 }, "widgets": { "e00001": { "tpl": "tplVis-materialdesign-Select", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Playliste_aktiv", "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", "inputType": "text", "vibrateOnMobilDevices": "50", "inputLayout": "solo", "inputAlignment": "left", "inputLayoutBorderColor": "#mdwTheme:vis-materialdesign.0.colors.input.border", "inputLayoutBorderColorHover": "#mdwTheme:vis-materialdesign.0.colors.input.border_hover", "inputLayoutBorderColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.border_selected", "inputTextFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.text", "inputTextFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.text", "inputTextColor": "white", "inputLabelColor": "#mdwTheme:vis-materialdesign.0.colors.input.label", "inputLabelColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.label_selected", "inputLabelFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.label", "inputLabelFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.label", "inputAppendixColor": "#mdwTheme:vis-materialdesign.0.colors.input.appendix", "inputAppendixFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.appendix", "inputAppendixFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.appendix", "showInputMessageAlways": "true", "inputMessageFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.message", "inputMessageFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.message", "inputMessageColor": "#mdwTheme:vis-materialdesign.0.colors.input.message", "showInputCounter": false, "inputCounterColor": "#mdwTheme:vis-materialdesign.0.colors.input.counter", "inputCounterFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.counter", "inputCounterFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.counter", "clearIconShow": false, "clearIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.icon_clear", "collapseIconColor": "white", "listDataMethod": "jsonStringObject", "countSelectItems": "1", "listPosition": "bottom", "listItemBackgroundColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.background", "listItemBackgroundHoverColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.hover", "listItemBackgroundSelectedColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.selected", "listItemRippleEffectColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.effect", "showSelectedIcon": "prepend-inner", "listIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.icon", "listItemFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.text", "listItemFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.text", "listItemFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.text", "listItemSubFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.subText", "listItemSubFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.subText", "listItemSubFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.subText", "showValue": false, "listItemValueFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.value", "listItemValueFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.value", "listItemValueFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.value", "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, "jsonStringObject": "{0_userdata.0.Spotify.Abfragen.PlaylistenJson}", "valueList": "{0_userdata.0.Spotify.Abfragen.PlaylistenJson}", "valueListLabels": "{0_userdata.0.Spotify.Abfragen.PlaylistenJson}", "inputLabelText": "", "listPositionOffset": true, "inputLayoutBackgroundColor": "#1db954", "inputLayoutBackgroundColorHover": "#1db954", "inputLayoutBackgroundColorSelected": "#1db954", "collapseIcon": "" }, "style": { "left": "647px", "top": "121px", "z-index": "10", "width": "237px", "height": "38px" }, "widgetSet": "materialdesign" }, "e00002": { "tpl": "tplVis-materialdesign-Select", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Titel_aktiv", "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", "inputType": "text", "vibrateOnMobilDevices": "50", "inputLayout": "solo", "inputAlignment": "left", "inputLayoutBorderColor": "#mdwTheme:vis-materialdesign.0.colors.input.border", "inputLayoutBorderColorHover": "#mdwTheme:vis-materialdesign.0.colors.input.border_hover", "inputLayoutBorderColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.border_selected", "inputTextFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.text", "inputTextFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.text", "inputTextColor": "White", "inputLabelColor": "#mdwTheme:vis-materialdesign.0.colors.input.label", "inputLabelColorSelected": "#mdwTheme:vis-materialdesign.0.colors.input.label_selected", "inputLabelFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.label", "inputLabelFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.label", "inputAppendixColor": "#mdwTheme:vis-materialdesign.0.colors.input.appendix", "inputAppendixFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.appendix", "inputAppendixFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.appendix", "showInputMessageAlways": false, "inputMessageFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.message", "inputMessageFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.message", "inputMessageColor": "#mdwTheme:vis-materialdesign.0.colors.input.message", "showInputCounter": false, "inputCounterColor": "#mdwTheme:vis-materialdesign.0.colors.input.counter", "inputCounterFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.counter", "inputCounterFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.input.counter", "clearIconShow": false, "clearIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.icon_clear", "collapseIconColor": "white", "listDataMethod": "jsonStringObject", "countSelectItems": "1", "listPosition": "auto", "listItemBackgroundColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.background", "listItemBackgroundHoverColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.hover", "listItemBackgroundSelectedColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.selected", "listItemRippleEffectColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.effect", "showSelectedIcon": "prepend-inner", "listIconColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.icon", "listItemFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.text", "listItemFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.text", "listItemFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.text", "listItemSubFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.subText", "listItemSubFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.subText", "listItemSubFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.subText", "showValue": false, "listItemValueFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.input.dropdown.value", "listItemValueFont": "#mdwTheme:vis-materialdesign.0.fonts.input.dropdown.value", "listItemValueFontColor": "#mdwTheme:vis-materialdesign.0.colors.input.menu.value", "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, "jsonStringObject": "{0_userdata.0.Spotify.Abfragen.Playlistentitel}", "valueList": "{0_userdata.0.Spotify.Abfragen.Playlistentitel}", "valueListLabels": "{0_userdata.0.Spotify.Abfragen.Playlistentitel}", "inputLabelText": "", "label0": "Titel", "listPositionOffset": true, "inputLayoutBackgroundColor": "#1db954", "inputLayoutBackgroundColorHover": "#1db954", "inputLayoutBackgroundColorSelected": "#1db954" }, "style": { "left": "1175px", "top": "119px", "z-index": "10", "width": "491px", "height": "38px" }, "widgetSet": "materialdesign" }, "e00003": { "tpl": "tplVis-materialdesign-Button-State-vertical", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Playliste_abspielen", "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, "g_last_change": false, "buttonStyle": "raised", "vibrateOnMobilDevices": "50", "buttontext": "PLAY", "textFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.button.vertical.text", "textFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.button.vertical.text", "alignment": "center", "mdwButtonPrimaryColor": "#1db954", "mdwButtonSecondaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.secondary", "image": "", "iconPosition": "top", "iconHeight": "26", "autoLockAfter": "10", "lockIconTop": "5", "lockIconLeft": "5", "lockIconColor": "#mdwTheme:vis-materialdesign.0.colors.button.lock_icon", "lockFilterGrayscale": "30", "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, "value": "true", "lockEnabled": true, "visibility-cond": "==", "visibility-val": 1, "visibility-groups-action": "hide" }, "style": { "left": "891px", "top": "122px", "z-index": "10", "width": "100px", "height": "39px", "color": "" }, "widgetSet": "materialdesign" }, "e00004": { "tpl": "tplVis-materialdesign-Button-State-vertical", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Titel_abspielen", "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, "g_last_change": false, "buttonStyle": "raised", "vibrateOnMobilDevices": "50", "buttontext": "PLAY", "textFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.button.vertical.text", "textFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.button.vertical.text", "alignment": "center", "mdwButtonPrimaryColor": "#1db954", "mdwButtonSecondaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.secondary", "image": "", "iconPosition": "top", "iconHeight": "26", "autoLockAfter": "10", "lockIconTop": "5", "lockIconLeft": "5", "lockIconColor": "#mdwTheme:vis-materialdesign.0.colors.button.lock_icon", "lockFilterGrayscale": "30", "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, "value": "true", "lockEnabled": true, "visibility-cond": "==", "visibility-val": 1, "visibility-groups-action": "hide" }, "style": { "left": "1734px", "top": "118px", "z-index": "10", "width": "100px", "height": "39px", "color": "" }, "widgetSet": "materialdesign" }, "e00005": { "tpl": "tplVis-materialdesign-Button-Toggle", "data": { "oid": "0_userdata.0.Spotify.Funktionen.Sortieren", "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", "buttonStyle": "raised", "toggleType": "boolean", "stateIfNotTrueValue": "on", "vibrateOnMobilDevices": "50", "buttontext": "sort", "textFontFamily": "#mdwTheme:vis-materialdesign.0.fonts.button.default.text", "textFontSize": "#mdwTheme:vis-materialdesign.0.fontSizes.button.default.text", "mdwButtonPrimaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.primary", "mdwButtonSecondaryColor": "#mdwTheme:vis-materialdesign.0.colors.button.default.secondary", "image": "", "iconPosition": "left", "autoLockAfter": "10", "lockIconColor": "#mdwTheme:vis-materialdesign.0.colors.button.lock_icon", "lockFilterGrayscale": "30", "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, "valueOff": "false", "valueOn": "true", "labelTrue": "unsort" }, "style": { "left": "1671px", "top": "120px", "z-index": "10", "width": "57px", "height": "37px" }, "widgetSet": "materialdesign" } }, "rerender": false, "filterList": [], "name": "Spotify_test" }Dann mal viel Spass !
edit: ich bastel grad noch ein viertes Skript um das jeweilige Echo-Device auszuwÀhlen ;)
Traumhaft beschrieben und toll umgesetzt. Ich denke, das muss getestet werden. đ
Hast du eine Empfehlung der Adapterversion zum Bier? đ
-
Traumhaft beschrieben und toll umgesetzt. Ich denke, das muss getestet werden. đ
Hast du eine Empfehlung der Adapterversion zum Bier? đ
@coffeelover sagte in [HowTo] Spotify mit 3 Skripten in VIS steuern:
Empfehlung der Adapterversion zum Bier?
Ach das ist Geschmackssache - ich bevorzuge bei solchen UmstÀnden Edeka 5.0

Lehrling seit 1975 !!!
Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
https://forum.iobroker.net/topic/51555/hinweise-fĂŒr-gute-forenbeitrĂ€ge -
Ănderung - bitte beachten:

Die gelb markierten MĂSSEN angelegt werden !
Und zwar als entsprechende Typen:blau = Zeichenkette (string)
rot = JSON
grĂŒn = Logikwert (boolean)und Blockly 1:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="`e/`Y|g1yt[LqDde4cUg">myID</variable> <variable id="$TGe7c|7mWim[0^Ny-*8">playlisten</variable> <variable id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</variable> <variable id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</variable> <variable id="qMuUH@n;-29I9Zy:c5R[">i</variable> <variable id="A+R4;J!yy4e`~.6+ePot">playliste</variable> <variable id="}bdAPzw$S|-/d[[-/l,Z">sort</variable> <variable id="ZNIImHZ1MQl]hTTqQ}lA">details</variable> <variable id="GG0W8(KE08)VPNlHI[Pf">playlistname</variable> <variable id="/EUEs^+niuBI+e=^qt[;">objekt</variable> </variables> <block type="procedures_defcustomreturn" id="RR9RFRWFc/U|Eb-mEDPq" x="413" y="-287"> <mutation statements="false"> <arg name="myID" varid="`e/`Y|g1yt[LqDde4cUg"></arg> </mutation> <field name="NAME">Volume</field> <field name="SCRIPT">cmV0dXJuIG15SUQucmVwbGFjZSgib3duZXIiLCJpZCIpOyA=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion âŠ</comment> </block> <block type="schedule" id="v)gNpr{TWUHp]Rp?,fRx" x="413" y="-237"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="w7(2wOFE|5;iazx$?Z7o"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> <value name="VALUE"> <block type="lists_create_with" id="uiJM8.UYKR8_U;y?V%NP"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="t14i7X.yb2(.R*9jvPgw"> <field name="VAR" id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</field> <value name="VALUE"> <block type="selector" id="C9/ux5=-jtW1Btdde^}X"> <field name="TEXT">spotify-premium.0.playlists.*.owner</field> </block> </value> <next> <block type="controls_forEach" id="KMParn:4JO}?|=6rRZ3/"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="93l(X1e$@Zw2W@SRa-zt"> <field name="VAR" id="[QeIC8qHOO}iRj@3P(|N">aufzĂ€hlung</field> </block> </value> <statement name="DO"> <block type="variables_set" id="nFUq5t{=rjRzLuv7|_7*"> <field name="VAR" id="ZNIImHZ1MQl]hTTqQ}lA">details</field> <value name="VALUE"> <block type="text_join" id="#G?!I#aw1$e1pw|G1gCy"> <mutation items="3"></mutation> <value name="ADD0"> <block type="get_value_var" id="8]!;mtn.FPvqXs#maqbU"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="iVY`N{H/f2dO@C4Afx@K"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="oY9g#X,AVw.7x^e-S12Q"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="w{$d5zn^.i*,=HPhhnhz"> <field name="TEXT">-</field> </block> </value> <value name="ADD2"> <block type="get_value_var" id="jlp2U?dgV?;$*C*:oIAN"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="=t7W$G`{Ted|g{^//H:N"> <field name="TEXT"></field> </shadow> <block type="procedures_callcustomreturn" id="~G;rOPc:$(#.R7pX4R]C"> <mutation name="Volume"> <arg name="myID"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="c8dP!+37I60ar)HJ,7W~"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="GnsPh(wPQ:|fHk[^`GDB"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">FIRST</field> <value name="LIST"> <block type="variables_get" id="YG--O]pa?xj?ghx6D]J~"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> </block> </value> <value name="TO"> <block type="variables_get" id="o$+U#tYe,Jgy7?E/2RD/"> <field name="VAR" id="ZNIImHZ1MQl]hTTqQ}lA">details</field> </block> </value> </block> </next> </block> </statement> <next> <block type="update" id="mBt,,:8+-i+LDbBY_|M["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenString</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tostring" id="0A!bLCVE=_ha#_0.gL]W"> <value name="VALUE"> <block type="variables_get" id="@EHd.08D$*1*n!E+~tWq"> <field name="VAR" id="$TGe7c|7mWim[0^Ny-*8">playlisten</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="c9?9Yrk,d9L[h~nN7`hb" collapsed="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="kDimQ14Dx+/o{VekX+L*"> <field name="oid">0_userdata.0.Spotify.Abfragen.PlaylistenString</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="JQ):y1@NaZ?XpAlHIA,d"> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> <value name="VALUE"> <block type="lists_create_with" id="WyOtpnpIVB`g=OsA}YXN"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="hmgj;!53T_`9:3mm3iWL"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">playliste</field> <value name="VALUE"> <block type="lists_split" id="MglvOaZoo`udzPbSgs-g"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="on_source" id="hHo7ewq_DxyE,g|`@,+A"> <field name="ATTR">state.val</field> </block> </value> <value name="DELIM"> <shadow type="text" id="ec}^V3zQKdCOH5g#M`u9"> <field name="TEXT">,</field> </shadow> </value> </block> </value> <next> <block type="controls_forEach" id="ajZPSo8S{qF=ttM[GXd^"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> <value name="LIST"> <block type="variables_get" id="]IVi}17qyYUKJ.`tI$QB"> <field name="VAR" id="A+R4;J!yy4e`~.6+ePot">playliste</field> </block> </value> <statement name="DO"> <block type="variables_set" id="e1LQ~RSotlmf$7aKe|kK"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> <value name="VALUE"> <block type="text_join" id="Zh+$rKf0e)bAv4`ZO_Ll"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="!5E!q8~IZl=lVe:D1e{A"> <field name="TEXT">spotify-premium.0.playlists.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="iJRgR1_a,1RwRD)V)eQ5"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> <value name="ADD2"> <block type="text" id="Pc/gxiQ/)FablTHX@uI}"> <field name="TEXT">.name</field> </block> </value> </block> </value> <next> <block type="variables_set" id="1n=Ui6Zxw{1L{BnIf:=]"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> <value name="VALUE"> <block type="text_changeCase" id="Vus*D9$BEok35qz$fC:j"> <field name="CASE">UPPERCASE</field> <value name="TEXT"> <shadow type="text" id="RRDka23`)BruPQ:r.*o4"> <field name="TEXT">abc</field> </shadow> <block type="get_value_var" id="(]Wp^Y65HmVHHaYEHsW}"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="x|UlQ#_RiFjEu+,I]b9y"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="cIgV)^8{CWQc0M$bpa1="> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="ctRCBlP?@p!a#y,H7@QO"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> <value name="VALUE"> <block type="text_join" id="4_Ve~kk8N!pfB:}*Fq,m"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="w6~`xjx1m!+}@#ll)$Dy"> <field name="TEXT">{"text":"</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="BhfbH7mGwwQ{AkhnB!Il"> <field name="VAR" id="GG0W8(KE08)VPNlHI[Pf">playlistname</field> </block> </value> <value name="ADD2"> <block type="text" id="BNT~cKhc$)L-sab^%C#W"> <field name="TEXT">","value":"</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="tSH=LGTCgKrty7^ODOR+"> <field name="VAR" id="qMuUH@n;-29I9Zy:c5R[">i</field> </block> </value> <value name="ADD4"> <block type="text" id="E+,QRlEw5Z_l)LdngzI7"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="-t?`LwYqo*=Y=2nXV8#,"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id=".V^Ym4@]Fhdr?l9+Nq#9"> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> </block> </value> <value name="TO"> <block type="variables_get" id="W[x--|G]LH#5r0`8p?O]"> <field name="VAR" id="/EUEs^+niuBI+e=^qt[;">objekt</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="~ZX+.IRW/f7rLWP]fg[}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="H,aFJ^iP^rS)IF*A8wCH"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="YOZXyHT};meRwyIV%vK|"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="convert_tostring" id="KUGB8iC2OgPko%Zegw`N"> <value name="VALUE"> <block type="variables_get" id="Oh$A$:X!.P`rQfq~=]Q."> <field name="VAR" id="N,1;Xiv_dRREPF,8/-wJ">playlistenvalue</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="+c?.o6iDZ|Kz6.VapK:s"> <field name="TEXT">]</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="Y9nt~=KFwh++B,GZEC/["> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="_1|!z,QoR;MXd/.r[Dtz"> <field name="oid">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="/$wu0snvyjSUP+.-`ev}"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> <value name="VALUE"> <block type="convert_json2object" id="m}Hn/h@KIi9NO.d4U+r."> <value name="VALUE"> <block type="on_source" id="#I4@5[v]pi;H=eCg1IW`"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="lYi:d~xT7!X0xFJl*,#v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Spotify.Abfragen.PlaylistenJson</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="n6zNe:p_z=T;PNhAf9JV"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="CcN./1!@a^}k7uiJN4rA"> <value name="EXPRESSION"> <shadow type="text" id="ck_hXCIkQZU=+#$g^`!G"> <field name="TEXT">*</field> </shadow> <block type="text" id="GG{)CJ)JxbrU)*?WUwY%"> <field name="TEXT">$^(<text)</field> </block> </value> <value name="TARGET"> <block type="variables_get" id="TU`:gvnqE)R/$XKot06w"> <field name="VAR" id="}bdAPzw$S|-/d[[-/l,Z">sort</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>Lehrling seit 1975 !!!
Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
https://forum.iobroker.net/topic/51555/hinweise-fĂŒr-gute-forenbeitrĂ€ge
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden