Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. json einfach Filtern (VIS)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    json einfach Filtern (VIS)

    This topic has been deleted. Only users with topic management privileges can see it.
    • BananaJoe
      BananaJoe Most Active @sigi234 last edited by

      @sigi234 das Filtert aber nur welche Spalten er anzeigen soll. Er müsste alle Datensätze basierend auf dem Wert Filtern

      1 Reply Last reply Reply Quote 0
      • S
        SirPritz @Ro75 last edited by

        @ro75 sagte in json einfach Filtern (VIS):

        @sirpritz
        So mache ich es:
        createState('0_userdata.0.Alexa.ToDoListe', "[]", {read: true, write: true, desc: "JSON String", type: "string", def: "[]"}); function Einkaufsliste() { setTimeout(function(){ var vEString=''; let ListeEinkauf = []; $('alexa2.0.Lists.SHOPPING_LIST.items.*.value').each(function(id, i) { if(getState(id.replace("value","completed")).val === false) { vEString ='FF'; //dient einfach nur als merkmal, das die Liste nicht leer ist ListeEinkauf.push({ Artikel: getState(id).val }) } }); if(vEString == '') { ListeEinkauf.push({ Artikel: "kein Eintrag" }) } setState('0_userdata.0.Alexa.Einkaufsliste', JSON.stringify(ListeEinkauf), true); ListeEinkauf = []; },500); } on({id: 'alexa2.0.Lists.SHOPPING_LIST.json', change: 'any'}, Einkaufsliste);

        Funktioniert bei mir irgendwie nicht?

        mickym Ro75 2 Replies Last reply Reply Quote 0
        • mickym
          mickym Most Active @SirPritz last edited by mickym

          @sirpritz Hänge mal die Daten einfach als in CodeTags rein - dann zeige ich Dir - dass man das mit einem simplen JSONATA Befehl machen kann. Es wäre alles so einfach - wenn ihr in dem FAll einfach Daten und keine Screenshots zur Verfügung stellt.

          https://try.jsonata.org/wIoZmpKDm

          Damit kannst Du Dein Objekt leicht auch mit Javascript filtern:

          var obj = JSON.parse('[{"value":"Feuchttücher","version":2},{"value":"Joghurt","version":1}]')
          console.log(obj);
          console.log("Gefiltert: " + JSON.stringify(await jsonataExpression(obj,'$[version=2]')));
          

          ba417998-5b9e-4fbe-9a18-0502fc8e2554-image.png

          1 Reply Last reply Reply Quote 0
          • Ro75
            Ro75 @SirPritz last edited by

            @sirpritz sagte in json einfach Filtern (VIS):

            Funktioniert bei mir irgendwie nicht?

            Wie bzw. was hast du denn gemacht?

            Ro75.

            S 1 Reply Last reply Reply Quote 0
            • S
              SirPritz @Ro75 last edited by Homoran

              @ro75 Ich habe das Script kopiert und mir den Datenpunkt angelegt, der ist aber leer

              createState('0_userdata.0.Alexa.Einkaufsliste', "[]", {read: true, write: true, desc: "JSON String", type: "string", def: "[]"});
               
              function Einkaufsliste() {
                  setTimeout(function(){
                      var vEString='';
                      let ListeEinkauf = [];
                      $('alexa2.0.Lists.SHOPPING_LIST.items*.value').each(function(id, i) {
                          if(getState(id.replace("value","completed")).val === false) {
                              vEString ='FF'; //dient einfach nur als merkmal, das die Liste nicht leer ist
                              ListeEinkauf.push({
                                  Artikel: getState(id).val
                              })
                          }
                      });
                      if(vEString == '') {
                          ListeEinkauf.push({
                              Artikel: "kein Eintrag"
                          })
                      }
                      setState('0_userdata.0.Alexa.Einkaufsliste', JSON.stringify(ListeEinkauf), true);
                      ListeEinkauf = [];
                  },500);
              }
               
              on({id: 'alexa2.0.Lists.SHOPPING_LIST.json', change: 'any'}, Einkaufsliste);
              

              MOD-EDIT: Code in code-tags gesetzt!

              Ro75 arteck 2 Replies Last reply Reply Quote 0
              • Ro75
                Ro75 @SirPritz last edited by Ro75

                @sirpritz hast du alles in ein neues JS Skript einkopiert und dann das Skript gestartet? Der DP wird automatisch angelegt.

                Ro75.

                Edit: wie lautet denn dein DP für die Einkaufsliste?

                S 1 Reply Last reply Reply Quote 0
                • arteck
                  arteck Developer Most Active @SirPritz last edited by

                  @sirpritz code bitte in Code Tag

                  b785c19b-2731-4b57-a5b3-cc8ed6ff2a16-grafik.png

                  kann man besser lesen

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    SirPritz @Ro75 last edited by

                    @ro75 alexa2.0.Lists.SHOPPING_LIST.json

                    Ro75 1 Reply Last reply Reply Quote 0
                    • S
                      SirPritz @arteck last edited by Homoran

                      @arteck

                      createState('0_userdata.0.Alexa.Einkaufsliste', "[]", {read: true, write: true, desc: "JSON String", type: "string", def: "[]"});
                       
                      function Einkaufsliste() {
                          setTimeout(function(){
                              var vEString='';
                              let ListeEinkauf = [];
                              $('alexa2.0.Lists.SHOPPING_LIST.items*.value').each(function(id, i) {
                                  if(getState(id.replace("value","completed")).val === false) {
                                      vEString ='FF'; //dient einfach nur als merkmal, das die Liste nicht leer ist
                                      ListeEinkauf.push({
                                          Artikel: getState(id).val
                                      })
                                  }
                              });
                              if(vEString == '') {
                                  ListeEinkauf.push({
                                      Artikel: "kein Eintrag"
                                  })
                              }
                              setState('0_userdata.0.Alexa.Einkaufsliste', JSON.stringify(ListeEinkauf), true);
                              ListeEinkauf = [];
                          },500);
                      }
                       
                      on({id: 'alexa2.0.Lists.SHOPPING_LIST.json', change: 'any'}, Einkaufsliste);
                      
                      1 Reply Last reply Reply Quote 0
                      • Ro75
                        Ro75 @SirPritz last edited by Ro75

                        @sirpritz Und der Rest von meinem Beitrag? Starte das Skript und füge was der Einkaufsliste hinzu oder lösche erledige was davon. Das Skript reagiert nur auf Änderungen.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          SirPritz @Ro75 last edited by SirPritz

                          @ro75 OK, versuche es mal weiter...., danke.

                          Danke, so funktioniert es Perfekt, das ist das was ich gesucht habe, echt nochmal vielen Dank.

                          1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active last edited by

                            Manchmal frag ich mich, warum ich überhaupt poste - wenn es ignoriert wird.

                            Ro75 S 2 Replies Last reply Reply Quote 0
                            • Ro75
                              Ro75 @mickym last edited by

                              @mickym wieso, Lösung hat er doch.

                              1 Reply Last reply Reply Quote 0
                              • S
                                SirPritz @mickym last edited by

                                @mickym Sorry, mit deinem Ansatz kam ich nicht weiter.
                                Die andere Lösung hat dann aber gepasst.
                                Hätte nochmal nachfragen können, aber bei mir kommt jetzt alles richtig an, danke nochmal.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                818
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                7
                                23
                                976
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo