Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst]Anfänger braucht Hilfe in einem Script bei json auflösen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    483

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

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

[gelöst]Anfänger braucht Hilfe in einem Script bei json auflösen

Scheduled Pinned Locked Moved JavaScript
7 Posts 2 Posters 529 Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Torsten_MG
    wrote on last edited by Torsten_MG
    #1

    Hallo Leute,

    ich habe folgenden json-Wert

    {"raw" : [{"Tag":"Donnerstag","Datum":"14.03.2019  ","Ereignis":" Restmüll","Tage":"12"},{"Tag":"Heute","Datum":"02.03.2019  ","Ereignis":" Altpapier","Tage":"0"},{"Tag":"Montag","Datum":"11.03.2019  ","Ereignis":" Verpackungen","Tage":"9"},{"Tag":"Samstag","Datum":"09.03.2019  ","Ereignis":" Bioabfall","Tage":"7"}]}
    

    Nun möchte ich, das "Ereignis" und das passende "Tage" in einen Datenpunkt in Objekte zusammenlegen.

    müll1.JPG

    Doch leider klappt die Auflösung nicht so ganz, bei allen Datenpunkten steht der gleiche (letzte) Wert.

    Hier das Script

    var idJSON = 'javascript.0.muell.json';  // Datenpunkt-ID mit JSON-String
    var Term1;
    var Term2;
    var restmuell;
    var gelbersack;
    var papier;
    var bio;
    var logging = true;
     
    function JSONtoTerm(json) {
        var obj = JSON.parse(json);
    
    for(let j = 0; j < 4; j++) {
    
    if (logging) log(obj.raw[j].Ereignis);
    if (logging) log(obj.raw[j].Tage);
    
        Term1 = obj.raw[j].Ereignis;
        Term2 = obj.raw[j].Tage;
    
        if (Term1 == "Restmüll") {
            restmuell = Term2;
        }
        if (Term1 == "Altpapier") {
            gelbersack = Term2;
        }
        if (Term1 == "Verpackungen") {
            papier = Term2;
        }
        if (Term1 == "Bioabfall") {
            bio = Term2;
        }
        setState("javascript.0.muell.Hausmüll",restmuell);
        setState("javascript.0.muell.GelberSack",gelbersack); 
        setState("javascript.0.muell.Papier",papier); 
        setState("javascript.0.muell.Bio",bio); 
    }
    }
    
    
    
    JSONtoTerm(getState(idJSON).val);  // Script start
     
    on(idJSON, function(dp) {  // triggern bei Wertänderung
        JSONtoTerm(dp.state.val);
    });
    

    Hoffe mir kann jemand zeigen, wo ich den gedankenfehler habe

    paul53P 1 Reply Last reply
    0
    • T Torsten_MG

      Hallo Leute,

      ich habe folgenden json-Wert

      {"raw" : [{"Tag":"Donnerstag","Datum":"14.03.2019  ","Ereignis":" Restmüll","Tage":"12"},{"Tag":"Heute","Datum":"02.03.2019  ","Ereignis":" Altpapier","Tage":"0"},{"Tag":"Montag","Datum":"11.03.2019  ","Ereignis":" Verpackungen","Tage":"9"},{"Tag":"Samstag","Datum":"09.03.2019  ","Ereignis":" Bioabfall","Tage":"7"}]}
      

      Nun möchte ich, das "Ereignis" und das passende "Tage" in einen Datenpunkt in Objekte zusammenlegen.

      müll1.JPG

      Doch leider klappt die Auflösung nicht so ganz, bei allen Datenpunkten steht der gleiche (letzte) Wert.

      Hier das Script

      var idJSON = 'javascript.0.muell.json';  // Datenpunkt-ID mit JSON-String
      var Term1;
      var Term2;
      var restmuell;
      var gelbersack;
      var papier;
      var bio;
      var logging = true;
       
      function JSONtoTerm(json) {
          var obj = JSON.parse(json);
      
      for(let j = 0; j < 4; j++) {
      
      if (logging) log(obj.raw[j].Ereignis);
      if (logging) log(obj.raw[j].Tage);
      
          Term1 = obj.raw[j].Ereignis;
          Term2 = obj.raw[j].Tage;
      
          if (Term1 == "Restmüll") {
              restmuell = Term2;
          }
          if (Term1 == "Altpapier") {
              gelbersack = Term2;
          }
          if (Term1 == "Verpackungen") {
              papier = Term2;
          }
          if (Term1 == "Bioabfall") {
              bio = Term2;
          }
          setState("javascript.0.muell.Hausmüll",restmuell);
          setState("javascript.0.muell.GelberSack",gelbersack); 
          setState("javascript.0.muell.Papier",papier); 
          setState("javascript.0.muell.Bio",bio); 
      }
      }
      
      
      
      JSONtoTerm(getState(idJSON).val);  // Script start
       
      on(idJSON, function(dp) {  // triggern bei Wertänderung
          JSONtoTerm(dp.state.val);
      });
      

      Hoffe mir kann jemand zeigen, wo ich den gedankenfehler habe

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @Torsten_MG Setze mal die 4 setState() hinter die For-Schleife.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      T 1 Reply Last reply
      0
      • paul53P paul53

        @Torsten_MG Setze mal die 4 setState() hinter die For-Schleife.

        T Offline
        T Offline
        Torsten_MG
        wrote on last edited by
        #3

        @paul53 sagte in Anfänger braucht Hilfe in einem Script bei json auflösen:

        @Torsten_MG Setze mal die 4 setState() hinter die For-Schleife.

        Hat leider den selben Effekt

        1 Reply Last reply
        0
        • paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

          Wie sieht das Log mit den 8 Einträgen aus ?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          T 1 Reply Last reply
          0
          • paul53P paul53

            Wie sieht das Log mit den 8 Einträgen aus ?

            T Offline
            T Offline
            Torsten_MG
            wrote on last edited by
            #5

            @paul53 sagte in Anfänger braucht Hilfe in einem Script bei json auflösen:

            Wie sieht das Log mit den 8 Einträgen aus ?

            So:

            müll_log.JPG

            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              Es muss beim Ereignis als erstes Zeichen ein Leerzeichen eingefügt werden, damit der Vergleich funktioniert. Beispiel:

                  if(Term1 == " Restmüll") restmuell = Term2;
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              T 1 Reply Last reply
              0
              • paul53P paul53

                Es muss beim Ereignis als erstes Zeichen ein Leerzeichen eingefügt werden, damit der Vergleich funktioniert. Beispiel:

                    if(Term1 == " Restmüll") restmuell = Term2;
                
                T Offline
                T Offline
                Torsten_MG
                wrote on last edited by
                #7

                @paul53 sagte in Anfänger braucht Hilfe in einem Script bei json auflösen:

                Es muss beim Ereignis als erstes Zeichen ein Leerzeichen eingefügt werden, damit der Vergleich funktioniert. Beispiel:

                    if(Term1 == " Restmüll") restmuell = Term2;
                

                Danke!! Das war´s

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                381

                Online

                32.7k

                Users

                82.5k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe