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 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
                            • liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #21

                              @Homoran

                              du bist doch regex freak

                              hast du eine idee dazu

                              das ist unser text (hier mit "neuer zeile", ist im orginal nicht drin

                              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),
                               ....
                              

                              weißt du, ob man über ein regex das komma nach "Touching" ersetzen kann - der ganze text soll anschliessend mit "," gesplittet werden - somit ist das komma nach "Touching" für uns ein problem
                              evtl so:
                              wenn zwischen 2 bindestrichen mehrere komma, dann ersetze alle komma, außer das letzte, mit strichpunkt

                              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

                              HomoranH 1 Antwort 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.

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

                                @mosi289

                                sorry - mich überfordert die erstellung eines regex für diesen anwendungsfall (habe etwas rumprobiert und gesucht).

                                bei dieser sache solltest du sicherstellen, daß die dateinamen der songs keine kommas enthalten - es gibt doch free-tools, die dir ordner mit dateien in ein richtiges format umbenennen. es muss auch sichergestellt sein, dass immer der interpret dann ein bindestrich und dann der titel kommt! auch ein komma beim interpreten sollte nicht vorkommen - ich glaube, dass würde ich machen (die namen der dateien bearbeiten)

                                das einzige, was ich noch versucht habe, ist ein script, welche checkt, ob ein bindestrich in deiner tabelle in einer spalte erscheint, wenn nicht, ist es wieder ein komma-fall und dann wird das array nachträglich bearbeitet - aber auch da ist der bindestrich wichtig und bei mehreren komma im titel wird es wieder wackelig bzw stimmen die titel nicht ganz.

                                das script löscht zeilen aus dem mit split erzeugten array, wenn dort kein bindestrich ist - somit sollte das array wieder dem index entsprechen ( habe im script mehrere kommas dazugefügt)

                                let text="Trey Songz - Touchin, Touching, Lovin (feat. Nicki Minaj), Chris Brown - Ayo, Serani - No Games, No Cry No Women, GAMPER & DADONI - Far from Home, Sandro Silva - Epic, Total Epic, Mike Candys - Paradise, Hell (Radio Edit)";
                                let vari=text.split(",");
                                let arry=[];
                                for(let i=1;i<vari.length;i++) {
                                   log(vari[i-1])
                                   if(!vari[i].includes("-")) {//log("2==" + vari[i]);
                                     vari[i-1]= vari[i-1]+vari[i];
                                     arry.push(i);
                                       }}
                                
                                for(let i=0;i<vari.length;i++) {log(vari[i])}
                                for(let i=arry.length-1;i>-1;i--) {
                                 //   log(arry[i].toString())
                                     vari.splice(arry[i], 1);}
                                
                                
                                log(arry.toString())
                                for(let i=0;i<vari.length;i++) {log(vari[i])}
                                
                                

                                Image 160.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

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

                                  @Homoran

                                  du bist doch regex freak

                                  hast du eine idee dazu

                                  das ist unser text (hier mit "neuer zeile", ist im orginal nicht drin

                                  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),
                                   ....
                                  

                                  weißt du, ob man über ein regex das komma nach "Touching" ersetzen kann - der ganze text soll anschliessend mit "," gesplittet werden - somit ist das komma nach "Touching" für uns ein problem
                                  evtl so:
                                  wenn zwischen 2 bindestrichen mehrere komma, dann ersetze alle komma, außer das letzte, mit strichpunkt

                                  HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #23

                                  @liv-in-sky hatte schon begürchtet, dass du mich anpingst :-)

                                  So auf Anhieb hab ich keine Ahnung.
                                  wie sieht denn das Original der Liste aus? newLine wäre ein möglicher Trenner.

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  liv-in-skyL 1 Antwort Letzte Antwort
                                  0
                                  • HomoranH Homoran

                                    @liv-in-sky hatte schon begürchtet, dass du mich anpingst :-)

                                    So auf Anhieb hab ich keine Ahnung.
                                    wie sieht denn das Original der Liste aus? newLine wäre ein möglicher Trenner.

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

                                    @homoran nee- ist ein string ohne new line (mit new line wäre cool)

                                    *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)...
                                    

                                    grob zusammengefaßt:

                                    ich hatte versucht herauszufinden, ob zwischen 2 bindestrichen mehrere kommas vorkommen und je nach javascript befehl , nur das letzte komma beim split zu nehmen oder alle kommas zwischen den bindenstrichen zu ersetzen außer das letzte komma
                                    aber wie oben beschrieben - es darf keine komma in den interpreten geben und es muss ein bindestrich nach dem interpreten kommen und es darf keinen bindestrich im titel geben - also ganz schön viele vorraussetzungen

                                    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

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

                                      @homoran nee- ist ein string ohne new line (mit new line wäre cool)

                                      *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)...
                                      

                                      grob zusammengefaßt:

                                      ich hatte versucht herauszufinden, ob zwischen 2 bindestrichen mehrere kommas vorkommen und je nach javascript befehl , nur das letzte komma beim split zu nehmen oder alle kommas zwischen den bindenstrichen zu ersetzen außer das letzte komma
                                      aber wie oben beschrieben - es darf keine komma in den interpreten geben und es muss ein bindestrich nach dem interpreten kommen und es darf keinen bindestrich im titel geben - also ganz schön viele vorraussetzungen

                                      HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #25

                                      @liv-in-sky ja! so hätte ich es auch versucht, aber mit dummem sturen RegEx sehe ich da keine Möglichkeit

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      liv-in-skyL 2 Antworten Letzte Antwort
                                      0
                                      • HomoranH Homoran

                                        @liv-in-sky ja! so hätte ich es auch versucht, aber mit dummem sturen RegEx sehe ich da keine Möglichkeit

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

                                        @homoran

                                        ich war mir bei meinen versuchen nicht sicher ob regex dumm ist oder ich als anwender :-)

                                        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
                                        • HomoranH Homoran

                                          @liv-in-sky ja! so hätte ich es auch versucht, aber mit dummem sturen RegEx sehe ich da keine Möglichkeit

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

                                          @homoran
                                          hier ein beispiel: ich kann zwar das letzt komma finden (mit einem Negative Lookahead) aber das ganze sollte auf : zwischen " bindestrichen " angewendet werden - bekomme ich nicht hin.

                                          Image 161.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

                                          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

                                          741

                                          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