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.
    • S
      SirPritz last edited by

      Hallo, ich habe das Problem, dass ich die einkaufsliste aus Alexa nur die nicht abgearbeitete3n Daten anzeigen lassen will.
      Hier ist die komplette Liste, der Unterschied zu den Artikeln, welche schon gekauft sind, ist eine 2 als Value, die 1 ist bei den nicht gekauften Artikeln vorhanden.
      fe00e4ba-aa24-4da2-9c66-d73f91cba876-image.png
      Mir werden aber alle Werte angezeigt.
      aad45330-09f1-4a1d-a8c9-1ab4c49e479e-image.png

      Wie kann ich das Filtern?
      a363b392-5f42-4f02-ba25-a0f0d677be35-image.png

      Danke jetzt schon für die Unterstützung.

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

        @sirpritz Hat keiner eine Idee?

        sigi234 1 Reply Last reply Reply Quote 0
        • sigi234
          sigi234 Forum Testing Most Active @SirPritz last edited by

          @sirpritz
          Nimm Inventwo Widgets oder Basic Table

          BananaJoe 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @sigi234 last edited by

            @sigi234 sagte in json einfach Filtern (VIS):

            Inventwo Widgets

            da habe ich gerade nachgesehen, die Filterfunktion springt mir da gerade nicht ins Auge ...

            @SirPritz ich habe bei mir ein Skript laufen welches die Einkaufsliste aufbereitet und filtere also dort schon

            sigi234 1 Reply Last reply Reply Quote 0
            • sigi234
              sigi234 Forum Testing Most Active @BananaJoe last edited by

              @bananajoe sagte in json einfach Filtern (VIS):

              da habe ich gerade nachgesehen, die Filterfunktion springt mir da gerade nicht ins Auge ...

              Screenshot (482).png

              DJMarc75 BananaJoe 2 Replies Last reply Reply Quote 0
              • DJMarc75
                DJMarc75 @sigi234 last edited by

                @sigi234 scheint vis2 zu sein ?!

                sigi234 1 Reply Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active @DJMarc75 last edited by sigi234

                  @djmarc75 sagte in json einfach Filtern (VIS):

                  @sigi234 scheint vis2 zu sein ?!

                  Ja, ist aber in Vis gleich

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

                    @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);
                    

                    Damit erhältst Du einen DP als JSON. Dieser beinhaltet nur die, die noch nicht erledigt sind.

                    Ro75.

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

                      Na mit JSONATA geht das viel einfacher, aber halt nicht in vis. Muss der TE halt mal die Daten in CodeTags hier einstellen - dann kann man ihm mit seiner Logikmaschine helfen, so einen Datenpunkt zu füllen.

                      1 Reply Last reply Reply Quote 0
                      • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            482
                                            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