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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Ausgewählter Index von JSON Tabelle an Datenpunkt übergeben

NEWS

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

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

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

Ausgewählter Index von JSON Tabelle an Datenpunkt übergeben

Geplant Angeheftet Gesperrt Verschoben Visualisierung
38 Beiträge 5 Kommentatoren 2.5k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Mosi289
    schrieb am zuletzt editiert von
    #1

    Guten Abend,

    ich habe mittels einer JSON Tabelle meine aktuelle Sonos Playlist (queue) dargestellt. Das klappt auch alles soweit ganz gut.
    Jetzt möchte ich, wenn ich einen Eintrag in dieser Tabelle anklicke, dass der Index des ausgewählten Eintrags (also quasi die Tabellenzeile als Zahl) in einen Datenpunkt geschrieben wird. Dieser Datenpunkt bildet den aktuellen Titel ab, der abgespielt wird. So könnte ich mit einem Klick auf einen Song in der Tabelle diesen direkt abspielen.

    Ich habe schon versucht den Datenpunkt in der Bestätigung-ID und der Ausgewählt-ID einzutragen, weil es dazu auch leider keinerlei Hilfestellung gibt. Beides hat aber absolut keine Wirkung. Lässt sich das ganze vielleicht über ein globales Skript realisieren?

    Ich muss noch dazu sagen, dass ich gerade erst angefangen habe mit der Visualisierung und da echt wenig Plan von habe :upside_down_face:

    Mit freundlichen Grüßen
    Robin M.

    OliverIOO liv-in-skyL 2 Antworten Letzte Antwort
    0
    • M Mosi289

      Guten Abend,

      ich habe mittels einer JSON Tabelle meine aktuelle Sonos Playlist (queue) dargestellt. Das klappt auch alles soweit ganz gut.
      Jetzt möchte ich, wenn ich einen Eintrag in dieser Tabelle anklicke, dass der Index des ausgewählten Eintrags (also quasi die Tabellenzeile als Zahl) in einen Datenpunkt geschrieben wird. Dieser Datenpunkt bildet den aktuellen Titel ab, der abgespielt wird. So könnte ich mit einem Klick auf einen Song in der Tabelle diesen direkt abspielen.

      Ich habe schon versucht den Datenpunkt in der Bestätigung-ID und der Ausgewählt-ID einzutragen, weil es dazu auch leider keinerlei Hilfestellung gibt. Beides hat aber absolut keine Wirkung. Lässt sich das ganze vielleicht über ein globales Skript realisieren?

      Ich muss noch dazu sagen, dass ich gerade erst angefangen habe mit der Visualisierung und da echt wenig Plan von habe :upside_down_face:

      Mit freundlichen Grüßen
      Robin M.

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      @mosi289

      Bitte ein Beispiel zeigen

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      M 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @mosi289

        Bitte ein Beispiel zeigen

        M Offline
        M Offline
        Mosi289
        schrieb am zuletzt editiert von
        #3

        @oliverio

        ich versuche es mal mit Bildern zu verdeutlichen.

        Ich nutze das JSON Table Widget habe in der Table Object ID meine JSON Tabelle übergeben:

        A0675569-EB47-47D7-8EDA-93A7076CBF50.jpeg

        Die Tabelle sieht dann so aus (noch nicht formatiert):

        556223BB-B1BD-4144-B3E9-36B1F8648727.jpeg

        Man kann da jetzt auch Titel anklicken. Der Cursor ändert sich und der Titel leuchtet dann blau auf. Jetzt würde ich gerne den RowIndex an den Datenpunkt current_Title vom Sonos Adapter übergeben, um den Song wechseln zu können. Momentan ist es ja einfach nur eine Tabelle mit Daten, mehr nicht.

        Ich würde gerne Code anfügen, bis zu diesem Punkt habe ich aber noch gar keinen gebraucht :grin: .

        OliverIOO liv-in-skyL 2 Antworten Letzte Antwort
        0
        • M Mosi289

          @oliverio

          ich versuche es mal mit Bildern zu verdeutlichen.

          Ich nutze das JSON Table Widget habe in der Table Object ID meine JSON Tabelle übergeben:

          A0675569-EB47-47D7-8EDA-93A7076CBF50.jpeg

          Die Tabelle sieht dann so aus (noch nicht formatiert):

          556223BB-B1BD-4144-B3E9-36B1F8648727.jpeg

          Man kann da jetzt auch Titel anklicken. Der Cursor ändert sich und der Titel leuchtet dann blau auf. Jetzt würde ich gerne den RowIndex an den Datenpunkt current_Title vom Sonos Adapter übergeben, um den Song wechseln zu können. Momentan ist es ja einfach nur eine Tabelle mit Daten, mehr nicht.

          Ich würde gerne Code anfügen, bis zu diesem Punkt habe ich aber noch gar keinen gebraucht :grin: .

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #4

          @mosi289
          Er schreibt von Json
          Postet aber kein JSON

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Antwort Letzte Antwort
          0
          • M Mosi289

            @oliverio

            ich versuche es mal mit Bildern zu verdeutlichen.

            Ich nutze das JSON Table Widget habe in der Table Object ID meine JSON Tabelle übergeben:

            A0675569-EB47-47D7-8EDA-93A7076CBF50.jpeg

            Die Tabelle sieht dann so aus (noch nicht formatiert):

            556223BB-B1BD-4144-B3E9-36B1F8648727.jpeg

            Man kann da jetzt auch Titel anklicken. Der Cursor ändert sich und der Titel leuchtet dann blau auf. Jetzt würde ich gerne den RowIndex an den Datenpunkt current_Title vom Sonos Adapter übergeben, um den Song wechseln zu können. Momentan ist es ja einfach nur eine Tabelle mit Daten, mehr nicht.

            Ich würde gerne Code anfügen, bis zu diesem Punkt habe ich aber noch gar keinen gebraucht :grin: .

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von
            #5

            @mosi289

            meist du sowas:

            script-vis18.gif

            Image 151.png

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            M 1 Antwort Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              @mosi289

              meist du sowas:

              script-vis18.gif

              Image 151.png

              M Offline
              M Offline
              Mosi289
              schrieb am zuletzt editiert von
              #6

              @liv-in-sky

              ja das ist schon fast was ich brauche! Allerdings würde ich gerne wenn du z.B. auf "Jun" klickst den Reihenindex 0 übergeben und nicht den Inhalt. Bei Mai eine 1, Apr eine 2 usw..

              Der Datenpunkt, in den ich das schreiben möchte, bildet quasi den aktuell abgespielten Song der Liste ab (current_track_number):

              8B2270C0-8A58-47A5-A7D7-67D2BC4CB682.jpeg

              liv-in-skyL 2 Antworten Letzte Antwort
              0
              • M Mosi289

                @liv-in-sky

                ja das ist schon fast was ich brauche! Allerdings würde ich gerne wenn du z.B. auf "Jun" klickst den Reihenindex 0 übergeben und nicht den Inhalt. Bei Mai eine 1, Apr eine 2 usw..

                Der Datenpunkt, in den ich das schreiben möchte, bildet quasi den aktuell abgespielten Song der Liste ab (current_track_number):

                8B2270C0-8A58-47A5-A7D7-67D2BC4CB682.jpeg

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von liv-in-sky
                #7

                @mosi289 ohne ein zusätzliches script, wirst du da nicht weiterkommen - das brauchst du zum analysieren

                ich habe noch eine andere lösung, ist aber weitaus komplexer (im gif taucht immer die index nummer auf, bevor der text kommt - einfach übersehen - ist eigentlich für etwas anderes gedacht - oder brauchst du genau diesen index ????):

                script-vis19.gif

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • M Mosi289

                  @liv-in-sky

                  ja das ist schon fast was ich brauche! Allerdings würde ich gerne wenn du z.B. auf "Jun" klickst den Reihenindex 0 übergeben und nicht den Inhalt. Bei Mai eine 1, Apr eine 2 usw..

                  Der Datenpunkt, in den ich das schreiben möchte, bildet quasi den aktuell abgespielten Song der Liste ab (current_track_number):

                  8B2270C0-8A58-47A5-A7D7-67D2BC4CB682.jpeg

                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von
                  #8

                  @mosi289

                  habe es nochmal gelesen - du willst ja eigentlich den index

                  script-vis19.gif

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  M 1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @mosi289

                    habe es nochmal gelesen - du willst ja eigentlich den index

                    script-vis19.gif

                    M Offline
                    M Offline
                    Mosi289
                    schrieb am zuletzt editiert von
                    #9

                    @liv-in-sky

                    Ja genau das brauche ich! :) Wie hast du das jetzt gelöst?

                    liv-in-skyL 1 Antwort Letzte Antwort
                    0
                    • M Mosi289

                      @liv-in-sky

                      Ja genau das brauche ich! :) Wie hast du das jetzt gelöst?

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von liv-in-sky
                      #10

                      @mosi289

                      • dazu nutze ich das materialdesign table widget - materialdesign widget adapter muss installiert sein - geht im adapter-tab (- siehe letztes bild)
                      • und ein script im script-tab des vis editors

                      da dieses script sich auf das widget bezieht, braucht man ein weiteres script(ist enthalten), welches auf da widget wartet, während die view ladet

                      das alles muss in den script-tab im vis editor

                      function waitForElement(parent, elementPath, wid, widgetName, callBack, counter = 0, debug = false) {
                      
                              if (counter < 30) {
                      
                                  setTimeout(function () {
                      
                                      if (parent.find(elementPath).length > 0) {
                      
                                          if (debug) console.log(`[${widgetName} ${wid}] it took ${counter}ms to wait for the element '${elementPath}'`);
                      
                                          callBack();
                      
                                      } else {
                      
                                          if (debug) console.log(`[${widgetName} ${wid}] wait for element '${elementPath}'`);
                      
                                          counter++
                      
                                          waitForElement(parent, elementPath, wid, widgetName, callBack, counter, debug);
                      
                                      }
                      
                                  }, 1000);
                      
                              } else {
                      
                                 if (debug) console.warn(`[${widgetName} ${wid}] stop waiting after ${counter} retries`);
                      
                                  callBack();
                      
                             }
                      
                         }
                      
                        waitForElement($('body'),'#w00401', 'dummy', 'dummy', function () {
                      
                        // Widget ist geladen, auf das Widget klicken, w02705 ist die ID von meinem basic - Screen Resolution Widget
                      
                       console.log("jetzt")
                      
                       $("[id$='col1']").click(function() {
                           var matches = this.id; 
                         /*  console.log(this.id)
                             var newId=matches.replace("col0","col2");newId="#"+newId;
                           var matches3=$(newId).text();
                            var matches2 = $(this).text(); */
                            
                           /* alert(matches+matches2+matches3);*/
                            vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',(matches.split('-')[1]).replace(/...(.)/,"$1")); 
                          /*  vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',matches2.trim());*/
                       });  
                      
                      }, 0, true);
                      
                      
                      
                      
                      
                      

                      an diesen stellen musst du deine widget-id und den datenpunkt eintragen

                      Image 155.png

                      widget-installation:
                      Image 156.png

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      M 3 Antworten Letzte Antwort
                      0
                      • liv-in-skyL liv-in-sky

                        @mosi289

                        • dazu nutze ich das materialdesign table widget - materialdesign widget adapter muss installiert sein - geht im adapter-tab (- siehe letztes bild)
                        • und ein script im script-tab des vis editors

                        da dieses script sich auf das widget bezieht, braucht man ein weiteres script(ist enthalten), welches auf da widget wartet, während die view ladet

                        das alles muss in den script-tab im vis editor

                        function waitForElement(parent, elementPath, wid, widgetName, callBack, counter = 0, debug = false) {
                        
                                if (counter < 30) {
                        
                                    setTimeout(function () {
                        
                                        if (parent.find(elementPath).length > 0) {
                        
                                            if (debug) console.log(`[${widgetName} ${wid}] it took ${counter}ms to wait for the element '${elementPath}'`);
                        
                                            callBack();
                        
                                        } else {
                        
                                            if (debug) console.log(`[${widgetName} ${wid}] wait for element '${elementPath}'`);
                        
                                            counter++
                        
                                            waitForElement(parent, elementPath, wid, widgetName, callBack, counter, debug);
                        
                                        }
                        
                                    }, 1000);
                        
                                } else {
                        
                                   if (debug) console.warn(`[${widgetName} ${wid}] stop waiting after ${counter} retries`);
                        
                                    callBack();
                        
                               }
                        
                           }
                        
                          waitForElement($('body'),'#w00401', 'dummy', 'dummy', function () {
                        
                          // Widget ist geladen, auf das Widget klicken, w02705 ist die ID von meinem basic - Screen Resolution Widget
                        
                         console.log("jetzt")
                        
                         $("[id$='col1']").click(function() {
                             var matches = this.id; 
                           /*  console.log(this.id)
                               var newId=matches.replace("col0","col2");newId="#"+newId;
                             var matches3=$(newId).text();
                              var matches2 = $(this).text(); */
                              
                             /* alert(matches+matches2+matches3);*/
                              vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',(matches.split('-')[1]).replace(/...(.)/,"$1")); 
                            /*  vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',matches2.trim());*/
                         });  
                        
                        }, 0, true);
                        
                        
                        
                        
                        
                        

                        an diesen stellen musst du deine widget-id und den datenpunkt eintragen

                        Image 155.png

                        widget-installation:
                        Image 156.png

                        M Offline
                        M Offline
                        Mosi289
                        schrieb am zuletzt editiert von
                        #11

                        @liv-in-sky

                        Ich werde das heute Nachmittag direkt ausprobieren. Vielen Dank dir schon mal! :)

                        1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL liv-in-sky

                          @mosi289

                          • dazu nutze ich das materialdesign table widget - materialdesign widget adapter muss installiert sein - geht im adapter-tab (- siehe letztes bild)
                          • und ein script im script-tab des vis editors

                          da dieses script sich auf das widget bezieht, braucht man ein weiteres script(ist enthalten), welches auf da widget wartet, während die view ladet

                          das alles muss in den script-tab im vis editor

                          function waitForElement(parent, elementPath, wid, widgetName, callBack, counter = 0, debug = false) {
                          
                                  if (counter < 30) {
                          
                                      setTimeout(function () {
                          
                                          if (parent.find(elementPath).length > 0) {
                          
                                              if (debug) console.log(`[${widgetName} ${wid}] it took ${counter}ms to wait for the element '${elementPath}'`);
                          
                                              callBack();
                          
                                          } else {
                          
                                              if (debug) console.log(`[${widgetName} ${wid}] wait for element '${elementPath}'`);
                          
                                              counter++
                          
                                              waitForElement(parent, elementPath, wid, widgetName, callBack, counter, debug);
                          
                                          }
                          
                                      }, 1000);
                          
                                  } else {
                          
                                     if (debug) console.warn(`[${widgetName} ${wid}] stop waiting after ${counter} retries`);
                          
                                      callBack();
                          
                                 }
                          
                             }
                          
                            waitForElement($('body'),'#w00401', 'dummy', 'dummy', function () {
                          
                            // Widget ist geladen, auf das Widget klicken, w02705 ist die ID von meinem basic - Screen Resolution Widget
                          
                           console.log("jetzt")
                          
                           $("[id$='col1']").click(function() {
                               var matches = this.id; 
                             /*  console.log(this.id)
                                 var newId=matches.replace("col0","col2");newId="#"+newId;
                               var matches3=$(newId).text();
                                var matches2 = $(this).text(); */
                                
                               /* alert(matches+matches2+matches3);*/
                                vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',(matches.split('-')[1]).replace(/...(.)/,"$1")); 
                              /*  vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',matches2.trim());*/
                           });  
                          
                          }, 0, true);
                          
                          
                          
                          
                          
                          

                          an diesen stellen musst du deine widget-id und den datenpunkt eintragen

                          Image 155.png

                          widget-installation:
                          Image 156.png

                          M Offline
                          M Offline
                          Mosi289
                          schrieb am zuletzt editiert von
                          #12

                          @liv-in-sky

                          Habe es doch jetzt schon mal probiert, bekomme es aber noch nicht zum Laufen.
                          Die Widget-ID im Skript (in deinem Beispiel w00401): ist das die Widget-ID von der MaterialDesign Tabelle?

                          Ich kann in der Tabelle nämlich leider keine Zeile anklicken, nur den Text der Zeile markieren.

                          liv-in-skyL 1 Antwort Letzte Antwort
                          0
                          • M Mosi289

                            @liv-in-sky

                            Habe es doch jetzt schon mal probiert, bekomme es aber noch nicht zum Laufen.
                            Die Widget-ID im Skript (in deinem Beispiel w00401): ist das die Widget-ID von der MaterialDesign Tabelle?

                            Ich kann in der Tabelle nämlich leider keine Zeile anklicken, nur den Text der Zeile markieren.

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #13

                            @mosi289 ja

                            Image 157.png

                            zeig mal die tabelle im neuen widget

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL liv-in-sky

                              @mosi289

                              • dazu nutze ich das materialdesign table widget - materialdesign widget adapter muss installiert sein - geht im adapter-tab (- siehe letztes bild)
                              • und ein script im script-tab des vis editors

                              da dieses script sich auf das widget bezieht, braucht man ein weiteres script(ist enthalten), welches auf da widget wartet, während die view ladet

                              das alles muss in den script-tab im vis editor

                              function waitForElement(parent, elementPath, wid, widgetName, callBack, counter = 0, debug = false) {
                              
                                      if (counter < 30) {
                              
                                          setTimeout(function () {
                              
                                              if (parent.find(elementPath).length > 0) {
                              
                                                  if (debug) console.log(`[${widgetName} ${wid}] it took ${counter}ms to wait for the element '${elementPath}'`);
                              
                                                  callBack();
                              
                                              } else {
                              
                                                  if (debug) console.log(`[${widgetName} ${wid}] wait for element '${elementPath}'`);
                              
                                                  counter++
                              
                                                  waitForElement(parent, elementPath, wid, widgetName, callBack, counter, debug);
                              
                                              }
                              
                                          }, 1000);
                              
                                      } else {
                              
                                         if (debug) console.warn(`[${widgetName} ${wid}] stop waiting after ${counter} retries`);
                              
                                          callBack();
                              
                                     }
                              
                                 }
                              
                                waitForElement($('body'),'#w00401', 'dummy', 'dummy', function () {
                              
                                // Widget ist geladen, auf das Widget klicken, w02705 ist die ID von meinem basic - Screen Resolution Widget
                              
                               console.log("jetzt")
                              
                               $("[id$='col1']").click(function() {
                                   var matches = this.id; 
                                 /*  console.log(this.id)
                                     var newId=matches.replace("col0","col2");newId="#"+newId;
                                   var matches3=$(newId).text();
                                    var matches2 = $(this).text(); */
                                    
                                   /* alert(matches+matches2+matches3);*/
                                    vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',(matches.split('-')[1]).replace(/...(.)/,"$1")); 
                                  /*  vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.whiskey-id',matches2.trim());*/
                               });  
                              
                              }, 0, true);
                              
                              
                              
                              
                              
                              

                              an diesen stellen musst du deine widget-id und den datenpunkt eintragen

                              Image 155.png

                              widget-installation:
                              Image 156.png

                              M Offline
                              M Offline
                              Mosi289
                              schrieb am zuletzt editiert von
                              #14

                              @liv-in-sky

                              So jetzt läufts! :) Der Klick bezog sich im Skript auf col1, ich nutze aber col0. Vielen Dank!

                              Jetzt habe ich noch ein letztes, wahrscheinlich triviales Problem. Meine Playlist wird vom Sonos Adapter als Komma separierter String ausgegeben:

                              Stylo G - Dumpling, Cypress Hill - Busted In the Hood (Explicit Album Version), rako - Aus dem Schatten ins Licht, Kanye West - Gold Digger, Lil Wayne - A Milli, Young T & Bugsey - Strike a Pose (feat. Aitch), Headie One - Both, Summer Cem - Tamam Tamam, Manudigital - Only Just Begun...
                              

                              Den Versuche ich mit einem Skript in eine JSON Form zubekommen, indem ich bei "," splitte. Das klappt theoretisch gut. Wenn aber z.B. mehrere Interpreten eines Songs mit "," getrennt werden, splittet er natürlich auch an der Stelle. Mein Skript sieht wie folgt aus:

                              on({id: [].concat(['sonos.0.root.192_168_178_29.favorites_set']), change: "ne"}, async function (obj) {
                              await wait(3000);
                              var json = [];
                              var to = getState('sonos.0.root.192_168_178_29.queue').val
                              var toSplit = to.split(",");
                              for (var i = 0; i < toSplit.length; i++) {
                                  json.push({playlist:toSplit[i]});
                              }
                              setState('0_userdata.0.Playlist',json)
                              setState("vis.0.control.command"/*Command for vis*/, 'refresh');
                              });
                              

                              Wahrscheinlich ist das so eine absolute Katastrophe, aber ich programmiere wirklich nur selten und wenn dann meistens in Swift :grimacing:

                              liv-in-skyL 2 Antworten Letzte Antwort
                              0
                              • M Mosi289

                                @liv-in-sky

                                So jetzt läufts! :) Der Klick bezog sich im Skript auf col1, ich nutze aber col0. Vielen Dank!

                                Jetzt habe ich noch ein letztes, wahrscheinlich triviales Problem. Meine Playlist wird vom Sonos Adapter als Komma separierter String ausgegeben:

                                Stylo G - Dumpling, Cypress Hill - Busted In the Hood (Explicit Album Version), rako - Aus dem Schatten ins Licht, Kanye West - Gold Digger, Lil Wayne - A Milli, Young T & Bugsey - Strike a Pose (feat. Aitch), Headie One - Both, Summer Cem - Tamam Tamam, Manudigital - Only Just Begun...
                                

                                Den Versuche ich mit einem Skript in eine JSON Form zubekommen, indem ich bei "," splitte. Das klappt theoretisch gut. Wenn aber z.B. mehrere Interpreten eines Songs mit "," getrennt werden, splittet er natürlich auch an der Stelle. Mein Skript sieht wie folgt aus:

                                on({id: [].concat(['sonos.0.root.192_168_178_29.favorites_set']), change: "ne"}, async function (obj) {
                                await wait(3000);
                                var json = [];
                                var to = getState('sonos.0.root.192_168_178_29.queue').val
                                var toSplit = to.split(",");
                                for (var i = 0; i < toSplit.length; i++) {
                                    json.push({playlist:toSplit[i]});
                                }
                                setState('0_userdata.0.Playlist',json)
                                setState("vis.0.control.command"/*Command for vis*/, 'refresh');
                                });
                                

                                Wahrscheinlich ist das so eine absolute Katastrophe, aber ich programmiere wirklich nur selten und wenn dann meistens in Swift :grimacing:

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                schrieb am zuletzt editiert von liv-in-sky
                                #15

                                @mosi289

                                wo sehe ich so einen fall mit mehreren interpreten? erkenne ich in denem beispiel leider nicht - kenne die musik nicht :-(

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                M 1 Antwort Letzte Antwort
                                0
                                • M Mosi289

                                  @liv-in-sky

                                  So jetzt läufts! :) Der Klick bezog sich im Skript auf col1, ich nutze aber col0. Vielen Dank!

                                  Jetzt habe ich noch ein letztes, wahrscheinlich triviales Problem. Meine Playlist wird vom Sonos Adapter als Komma separierter String ausgegeben:

                                  Stylo G - Dumpling, Cypress Hill - Busted In the Hood (Explicit Album Version), rako - Aus dem Schatten ins Licht, Kanye West - Gold Digger, Lil Wayne - A Milli, Young T & Bugsey - Strike a Pose (feat. Aitch), Headie One - Both, Summer Cem - Tamam Tamam, Manudigital - Only Just Begun...
                                  

                                  Den Versuche ich mit einem Skript in eine JSON Form zubekommen, indem ich bei "," splitte. Das klappt theoretisch gut. Wenn aber z.B. mehrere Interpreten eines Songs mit "," getrennt werden, splittet er natürlich auch an der Stelle. Mein Skript sieht wie folgt aus:

                                  on({id: [].concat(['sonos.0.root.192_168_178_29.favorites_set']), change: "ne"}, async function (obj) {
                                  await wait(3000);
                                  var json = [];
                                  var to = getState('sonos.0.root.192_168_178_29.queue').val
                                  var toSplit = to.split(",");
                                  for (var i = 0; i < toSplit.length; i++) {
                                      json.push({playlist:toSplit[i]});
                                  }
                                  setState('0_userdata.0.Playlist',json)
                                  setState("vis.0.control.command"/*Command for vis*/, 'refresh');
                                  });
                                  

                                  Wahrscheinlich ist das so eine absolute Katastrophe, aber ich programmiere wirklich nur selten und wenn dann meistens in Swift :grimacing:

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von liv-in-sky
                                  #16

                                  @mosi289 achso - gleich der erste ?

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  1 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @mosi289

                                    wo sehe ich so einen fall mit mehreren interpreten? erkenne ich in denem beispiel leider nicht - kenne die musik nicht :-(

                                    M Offline
                                    M Offline
                                    Mosi289
                                    schrieb am zuletzt editiert von
                                    #17

                                    @liv-in-sky

                                    **Trey Songz - Touchin, Lovin (feat. Nicki Minaj)**, Chris Brown - Ayo, Serani - No Games, GAMPER & DADONI - Far from Home, Sandro Silva - Epic, Mike Candys - Paradise (Radio Edit), Akon - Smack That, Mike Candys - Make It Home (Radio Edit)...
                                    

                                    Die Playlist ist ziemlich lang, deswegen habe ich mal nur einen Ausschnitt eingefügt. Gleich beim erster Titel taucht im Songnamen ein "," auf wo er dann splittet. Das führt natürlich dazu, dass ab dem Eintrag der Index immer um 1 verrutsch ist.

                                    liv-in-skyL DJMarc75D 2 Antworten Letzte Antwort
                                    0
                                    • M Mosi289

                                      @liv-in-sky

                                      **Trey Songz - Touchin, Lovin (feat. Nicki Minaj)**, Chris Brown - Ayo, Serani - No Games, GAMPER & DADONI - Far from Home, Sandro Silva - Epic, Mike Candys - Paradise (Radio Edit), Akon - Smack That, Mike Candys - Make It Home (Radio Edit)...
                                      

                                      Die Playlist ist ziemlich lang, deswegen habe ich mal nur einen Ausschnitt eingefügt. Gleich beim erster Titel taucht im Songnamen ein "," auf wo er dann splittet. Das führt natürlich dazu, dass ab dem Eintrag der Index immer um 1 verrutsch ist.

                                      liv-in-skyL Offline
                                      liv-in-skyL Offline
                                      liv-in-sky
                                      schrieb am zuletzt editiert von liv-in-sky
                                      #18

                                      @mosi289

                                      da muss ich mal nachdenken - event. mit regex

                                      wenn zwischen 2 bindestrichen mehrere komma, dann ersetze alle komma, außer das letzte, mit bindestrich

                                      irgendwie so

                                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Mosi289

                                        @liv-in-sky

                                        **Trey Songz - Touchin, Lovin (feat. Nicki Minaj)**, Chris Brown - Ayo, Serani - No Games, GAMPER & DADONI - Far from Home, Sandro Silva - Epic, Mike Candys - Paradise (Radio Edit), Akon - Smack That, Mike Candys - Make It Home (Radio Edit)...
                                        

                                        Die Playlist ist ziemlich lang, deswegen habe ich mal nur einen Ausschnitt eingefügt. Gleich beim erster Titel taucht im Songnamen ein "," auf wo er dann splittet. Das führt natürlich dazu, dass ab dem Eintrag der Index immer um 1 verrutsch ist.

                                        DJMarc75D Offline
                                        DJMarc75D Offline
                                        DJMarc75
                                        schrieb am zuletzt editiert von
                                        #19

                                        @mosi289 aus welchem Datenpunkt vom SonosAdapter nimmst Du Deine Playliste ?

                                        Lehrling seit 1975 !!!
                                        Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                        https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • DJMarc75D DJMarc75

                                          @mosi289 aus welchem Datenpunkt vom SonosAdapter nimmst Du Deine Playliste ?

                                          M Offline
                                          M Offline
                                          Mosi289
                                          schrieb am zuletzt editiert von
                                          #20

                                          @djmarc75

                                          Der Datenpunkt heißt „queue“. Bin leider gerade unterwegs und kann keinen Screenshot schicken.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          744

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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