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. Einsteigerfragen
  4. json einfach Filtern (VIS)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    801

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

json einfach Filtern (VIS)

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
23 Beiträge 7 Kommentatoren 1.8k 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.
  • S SirPritz

    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.

    Ro75R Offline
    Ro75R Offline
    Ro75
    schrieb am zuletzt editiert von
    #8

    @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.

    SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

    S 1 Antwort Letzte Antwort
    0
    • mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #9

      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.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Antwort Letzte Antwort
      0
      • sigi234S sigi234

        @bananajoe sagte in json einfach Filtern (VIS):

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

        Screenshot (482).png

        BananaJoeB Online
        BananaJoeB Online
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von
        #10

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

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        1 Antwort Letzte Antwort
        0
        • Ro75R Ro75

          @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 Offline
          S Offline
          SirPritz
          schrieb am zuletzt editiert von
          #11

          @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?

          mickymM Ro75R 2 Antworten Letzte Antwort
          0
          • S SirPritz

            @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?

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #12

            @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

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            1 Antwort Letzte Antwort
            0
            • S SirPritz

              @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?

              Ro75R Offline
              Ro75R Offline
              Ro75
              schrieb am zuletzt editiert von
              #13

              @sirpritz sagte in json einfach Filtern (VIS):

              Funktioniert bei mir irgendwie nicht?

              Wie bzw. was hast du denn gemacht?

              Ro75.

              SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

              S 1 Antwort Letzte Antwort
              0
              • Ro75R Ro75

                @sirpritz sagte in json einfach Filtern (VIS):

                Funktioniert bei mir irgendwie nicht?

                Wie bzw. was hast du denn gemacht?

                Ro75.

                S Offline
                S Offline
                SirPritz
                schrieb am zuletzt editiert von Homoran
                #14

                @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!

                Ro75R arteckA 2 Antworten Letzte Antwort
                0
                • S SirPritz

                  @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!

                  Ro75R Offline
                  Ro75R Offline
                  Ro75
                  schrieb am zuletzt editiert von Ro75
                  #15

                  @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?

                  SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                  S 1 Antwort Letzte Antwort
                  0
                  • S SirPritz

                    @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!

                    arteckA Offline
                    arteckA Offline
                    arteck
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #16

                    @sirpritz code bitte in Code Tag

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

                    kann man besser lesen

                    zigbee hab ich, zwave auch, nuc's genauso und HA auch

                    S 1 Antwort Letzte Antwort
                    0
                    • Ro75R 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 Offline
                      S Offline
                      SirPritz
                      schrieb am zuletzt editiert von
                      #17

                      @ro75 alexa2.0.Lists.SHOPPING_LIST.json

                      Ro75R 1 Antwort Letzte Antwort
                      0
                      • arteckA arteck

                        @sirpritz code bitte in Code Tag

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

                        kann man besser lesen

                        S Offline
                        S Offline
                        SirPritz
                        schrieb am zuletzt editiert von Homoran
                        #18

                        @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 Antwort Letzte Antwort
                        0
                        • S SirPritz

                          @ro75 alexa2.0.Lists.SHOPPING_LIST.json

                          Ro75R Offline
                          Ro75R Offline
                          Ro75
                          schrieb am zuletzt editiert von Ro75
                          #19

                          @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.

                          SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                          S 1 Antwort Letzte Antwort
                          0
                          • Ro75R 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 Offline
                            S Offline
                            SirPritz
                            schrieb am zuletzt editiert von SirPritz
                            #20

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

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

                            1 Antwort Letzte Antwort
                            0
                            • mickymM Offline
                              mickymM Offline
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von
                              #21

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

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              Ro75R S 2 Antworten Letzte Antwort
                              0
                              • mickymM mickym

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

                                Ro75R Offline
                                Ro75R Offline
                                Ro75
                                schrieb am zuletzt editiert von
                                #22

                                @mickym wieso, Lösung hat er doch.

                                SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                                1 Antwort Letzte Antwort
                                0
                                • mickymM mickym

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

                                  S Offline
                                  S Offline
                                  SirPritz
                                  schrieb am zuletzt editiert von
                                  #23

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

                                  318

                                  Online

                                  32.6k

                                  Benutzer

                                  82.0k

                                  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