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. [gelöst]JSON parsen, bräuchte Hilfe

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst]JSON parsen, bräuchte Hilfe

Scheduled Pinned Locked Moved Skripten / Logik
31 Posts 9 Posters 11.1k Views
  • 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.
  • coyoteC Offline
    coyoteC Offline
    coyote
    Most Active
    wrote on last edited by
    #13

    > Aber Deine Objektdefinition ist - auch wenn es jetzt funktioniert - sagen wir mal suboptimal

    Das war alles nur mal zum testen ob es überhaupt funktioniert. Natürlich habe ich jetzt eine Struktur drin z.B. für Extruder, Bett usw. und auch für 2 Drucker. Wie gesagt, der Datenpunkt war nur zum testen, deshalb lief es auch in der zweiten Javascript Instanz.

    1 Reply Last reply
    0
    • ThisoftT Offline
      ThisoftT Offline
      Thisoft
      wrote on last edited by
      #14

      Na dann ist ja alles Bestens :P

      22 HM-Geräte; PivCCU2 auf RasPi

      ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

      1 Reply Last reply
      0
      • A Offline
        A Offline
        andyb
        wrote on last edited by
        #15

        Ich hoffe das Skript gibt es dann hier [emoji847]

        Oder gar einen Repetier Adapter [emoji6]

        1 Reply Last reply
        0
        • coyoteC Offline
          coyoteC Offline
          coyote
          Most Active
          wrote on last edited by
          #16

          Script kann ich mal posten wenn ich es fertig hab, da sollen noch paar mehr Sachen rein.

          Adapter wäre cool, bin ich aber leider der falsche Ansprechpartner für, da hab ich zu wenig Kenntnisse mit Javascript.

          1 Reply Last reply
          0
          • DutchmanD Offline
            DutchmanD Offline
            Dutchman
            Developer Most Active Administrators
            wrote on last edited by
            #17

            Json parse geht mit dem Systeminfo Adapter andere dafür sind nicht geplant.

            Also entweder den oder JavaScript

            –-----------------------

            Send from mobile device

            Das schöne ios hat Auto Korrektur zum k****

            Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

            1 Reply Last reply
            0
            • coyoteC Offline
              coyoteC Offline
              coyote
              Most Active
              wrote on last edited by
              #18

              @Dutchman:

              Json parse geht mit dem Systeminfo Adapter andere dafür sind nicht geplant.

              Also entweder den oder JavaScript `

              Nee, er meinte ja einen extra Adapter für die Repetier Server Software für den 3d Drucker

              1 Reply Last reply
              0
              • coyoteC Offline
                coyoteC Offline
                coyote
                Most Active
                wrote on last edited by
                #19

                Hey,

                leider muss ich nochmal nachfragen, da ich jetzt noch ein zweites JSON hab, bei dem ich Zeit und Status in Prozent lesen könnte. Funktioniert nur nicht so wie ich dachte.

                [{"active":true,"analysed":1,"done":0.26915197043345518,"job":"Halter_rechts.","jobid":4,"linesSend":67,"name":"AM8","ofLayer":146,"online":1,"pauseState":0,"paused":false,"printTime":4266.7126891287853,"printedTimeComp":412.82550469314651,"slug":"AM8","start":1515704149,"totalLines":24893}]
                

                Das ist das JSON und ich brauche "done", "printTime" und "printedTimeComp". Ok, dachte ich mir dann müsste "done" ja "body.done" sein, stimmt aber anscheinend nicht, der Datenpunkt wird nicht gefüllt. Leider verstehe ich nicht warum. Helft mir bitte mal auf die Sprünge.

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

                  @coyote:

                  dachte ich mir dann müsste "done" ja "body.done" sein `

                  body[0].done
                  

                  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

                  1 Reply Last reply
                  0
                  • coyoteC Offline
                    coyoteC Offline
                    coyote
                    Most Active
                    wrote on last edited by
                    #21

                    Danke paul53, ich wusste irgendwo kommt die [0] hin, nur war mir nicht klar dass sie an "body" kommt. Wieder ein Stück dazu gelernt.

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      andyb
                      wrote on last edited by
                      #22

                      @coyote:

                      Script kann ich mal posten wenn ich es fertig hab, da sollen noch paar mehr Sachen rein.

                      Adapter wäre cool, bin ich aber leider der falsche Ansprechpartner für, da hab ich zu wenig Kenntnisse mit Javascript. ` Läuft das Skript und willst du es veröffentlichen?

                      Seit diesem WE läuft mein repetiersever [emoji16]

                      1 Reply Last reply
                      0
                      • L Offline
                        L Offline
                        ludino
                        wrote on last edited by
                        #23

                        Da wäre auch sehr intressiert dran.

                        Am liebsten sogar ein Adapter.

                        1 Reply Last reply
                        0
                        • J Offline
                          J Offline
                          Jan007
                          wrote on last edited by
                          #24

                          Würde mich auch sehr darüber freuen :D :D :D

                          1 Reply Last reply
                          0
                          • L Offline
                            L Offline
                            ludino
                            wrote on last edited by
                            #25

                            Da der Themen Owner sich nicht meldet vielleicht kann uns ja ein Experte mal erklären wie wir/ich vorgen muss damit das funktioniert!

                            Lieb Guck

                            1 Reply Last reply
                            0
                            • L Offline
                              L Offline
                              ludino
                              wrote on last edited by
                              #26

                              Keiner da der etwas hilfe geben kann?

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

                                @ludino:

                                damit das funktioniert! `
                                Damit was funktioniert ? Habe gerade meine Glaskugel verlegt.

                                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

                                1 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  ludino
                                  wrote on last edited by
                                  #28

                                  Zu erklärung,

                                  wir/ich haben einen Repetier server am laufen, diesen möchten wir gerne mit in IObroker bringen. der Themen Owner hat ein Script dafür geschrieben.

                                  Leider meldet er sich nicht mehr, um mal diesen Script zu veröffentlichen.

                                  Wie muss ich vorgehen damit ich so ein script schreiben kann? Ich will es gerne lernen!

                                  1 Reply Last reply
                                  0
                                  • HomoranH Do not disturb
                                    HomoranH Do not disturb
                                    Homoran
                                    Global Moderator Administrators
                                    wrote on last edited by
                                    #29

                                    Ich (als JS-Legastheniker) würde den Parser-Adapter dazu verwenden.

                                    Habe gestern auch schon etwas mit dem Code, der anfangs gepostet wurde versucht, sah recht nett aus.

                                    Ich bräuchte nur wesentlich mehr Informationen.

                                    Wie sieht bei dir eine solche Antwort aus?

                                    • hier bitte den Code

                                    Welche Daten willst du haben?

                                    • bitte anhend der Antwort mit den dort enthaltenen Werten.

                                    Gruß

                                    Rainer

                                    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 -

                                    1 Reply Last reply
                                    0
                                    • L Offline
                                      L Offline
                                      ludino
                                      wrote on last edited by
                                      #30

                                      @Homoran:

                                      Ich (als JS-Legastheniker) würde den Parser-Adapter dazu verwenden.

                                      Habe gestern auch schon etwas mit dem Code, der anfangs gepostet wurde versucht, sah recht nett aus.

                                      Ich bräuchte nur wesentlich mehr Informationen.

                                      Wie sieht bei dir eine solche Antwort aus?

                                      • hier bitte den Code

                                      Welche Daten willst du haben?

                                      • bitte anhend der Antwort mit den dort enthaltenen Werten.

                                      Gruß

                                      Rainer `

                                      Ich werde mir darüber gedanken machen und mich melden, Erst mal muss ich rausfinden wie der Code aussehen muss mit der Antwort das hatte ich schonmal gehabt…..! Naja

                                      1 Reply Last reply
                                      0
                                      • coyoteC Offline
                                        coyoteC Offline
                                        coyote
                                        Most Active
                                        wrote on last edited by
                                        #31

                                        Sorry dass ich hier nicht mehr weiter geantwortet habe, hatte das Thema nicht mehr richtig auf dem Schirm.

                                        Ich poste mein Script mal, aber ich sage gleich mal dazu, ich bin nicht der große Scripter. Ist mehr so etwas zusammengewürfelt und rumprobiert.

                                        Es zeigt das an was ich wollte und mehr habe ich da auch nicht mehr gemacht. Da ist definitv noch einiges mehr rauszuholen und bestimmt noch vieles zu verbessern. Vllt kann sogar jemand einen Adapter draus machen.

                                        Es müssen 2 URL's im Parser Adapter eingetragen werden, für die Statelist und Printerlist mit eurem API-Key:

                                        Das Script ist für meine 2 Drucker, einmal den AM8 und einmal den NoName.

                                        Die ganzen Bezeichnungen sind auch noch nicht wirklich "sauber", wenn ich Zeit habe werde ich mich da nochmal ran setzen.

                                        536_repetier_li.jpg

                                        http://192.168.XXX.XXX:3344/printer/api … XXXXXXXXXX

                                        http://192.168.XXX.XXX:3344/printer/api ... XXXXXXXXXX

                                        var idJson = "parser.0.drucker";
                                        var idJson2 = "parser.0.druckerlist";
                                        var am8tempakt = "javascript.0.3dDrucker.AM8.Extruder.TempAkt"/*javascript.0.3dDrucker.AM8.Extruder.TempAkt*/;
                                        var am8tempset = "javascript.0.3dDrucker.AM8.Extruder.TempSet";
                                        var am8tempbettakt = "javascript.0.3dDrucker.AM8.Bett.TempAkt";
                                        var am8tempbettset = "javascript.0.3dDrucker.AM8.Bett.TempSet";
                                        var nntempakt = "javascript.0.3dDrucker.NoName.Extruder.TempAkt";
                                        var nntempset = "javascript.0.3dDrucker.NoName.Extruder.TempSet";
                                        var nntempbettakt = "javascript.0.3dDrucker.NoName.Bett.TempAkt";
                                        var nntempbettset = "javascript.0.3dDrucker.NoName.Bett.TempSet";
                                        var nnjob = "javascript.0.3dDrucker.NoName.Druckteil";
                                        var nnprinttime = "javascript.0.3dDrucker.NoName.Druckzeit";
                                        var nnprinttimecomp ="javascript.0.3dDrucker.NoName.Restzeit";
                                        var nndone ="javascript.0.3dDrucker.NoName.Prozent";
                                        var am8job = "javascript.0.3dDrucker.AM8.Druckteil";
                                        var am8printtime = "javascript.0.3dDrucker.AM8.Druckzeit";
                                        var am8printtimecomp ="javascript.0.3dDrucker.AM8.Restzeit";
                                        var am8done ="javascript.0.3dDrucker.AM8.Prozent";
                                        
                                        createState(am8tempakt, {name: "T1", unit: "°C"});
                                        createState(am8tempset, {name: "T2", unit: "°C"});
                                        createState(am8tempbettakt, {name: "T3", unit: "°C"});
                                        createState(am8tempbettset, {name: "T4", unit: "°C"});
                                        createState(nntempakt, {name: "T5", unit: "°C"});
                                        createState(nntempset, {name: "T6", unit: "°C"});
                                        createState(nntempbettakt, {name: "T7", unit: "°C"});
                                        createState(nntempbettset, {name: "T8", unit: "°C"});
                                        createState(nnjob, {name: "J"});
                                        createState(nnprinttime, {name: "T9"});
                                        createState(nnprinttimecomp, {name: "T10"});
                                        createState(nndone,{name: "Done"});
                                        createState(am8job, {name: "J1"});
                                        createState(am8printtime, {name: "T11"});
                                        createState(am8printtimecomp, {name: "T12"});
                                        createState(am8done,{name: "Done1"});
                                        
                                        function werteAuslesen(jsonStr) {
                                            var myJson = JSON.parse(jsonStr);
                                            var T1 = myJson.AM8.extruder[0].tempRead;
                                            var T2 = myJson.AM8.extruder[0].tempSet;
                                            var T3 = myJson.AM8.heatedBeds[0].tempRead;
                                            var T4 = myJson.AM8.heatedBeds[0].tempSet;
                                        
                                            var T5 = myJson.NoName.extruder[0].tempRead;
                                            var T6 = myJson.NoName.extruder[0].tempSet;
                                            var T7 = myJson.NoName.heatedBeds[0].tempRead;
                                            var T8 = myJson.NoName.heatedBeds[0].tempSet;
                                        
                                            setState(am8tempakt, T1.toFixed(2)); 
                                            setState(am8tempset, T2.toFixed(2));
                                            setState(am8tempbettakt, T3.toFixed(2)); 
                                            setState(am8tempbettset, T4.toFixed(2));
                                        
                                            setState(nntempakt, T5.toFixed(2)); 
                                            setState(nntempset, T6.toFixed(2));
                                            setState(nntempbettakt, T7.toFixed(2)); 
                                            setState(nntempbettset, T8.toFixed(2));
                                        
                                        }
                                        
                                        function werteAuslesen2(jsonStr) {
                                            var myJson2 = JSON.parse(jsonStr);
                                            var J1 = myJson2[0].job;
                                            var T11 = Math.round (1 * myJson2[0].printTime /60);          // Gesamtzeit AM8
                                            var T12 = Math.round (1 * myJson2[0].printedTimeComp /60) ;   // Gedruckte Zeit AM8
                                            var T13 = (T11-T12);                                          // Restzeit AM8
                                            var Done1 =  myJson2[0].done;
                                            var J = myJson2[1].job;
                                            var T9 = Math.round (1 * myJson2[1].printTime /60) ;          // Gesamtzeit NN
                                            var T10 = Math.round (1 * myJson2[1].printedTimeComp /60) ;   // Gedruckte Zeit NN
                                            var T14 = (T9-T10);                                           // Restzeit NN
                                            var Done = myJson2[1].done;
                                        
                                            setState(nnjob, J); 
                                            setState(nnprinttime, T9 + " min");
                                            setState(nnprinttimecomp, T14 + " min");
                                            if (getState("javascript.0.3dDrucker.NoName.Druckteil"/*J*/).val != "none"){
                                            setState(nndone, Done.toFixed(2) + " %");
                                        }
                                        
                                            setState(am8job, J1); 
                                            setState(am8printtime, T11 + " min");
                                            setState(am8printtimecomp, T13 + " min");
                                            if (getState("javascript.0.3dDrucker.AM8.Druckteil"/*J1*/).val != "none"){
                                            setState(am8done, Done1.toFixed(2) + " %");
                                        } 
                                        }
                                        
                                        on({id:idJson,change:'ne'}, function (obj) {
                                            werteAuslesen(obj.state.val);
                                        });
                                        
                                        on({id:idJson2,change:'ne'}, function (obj) {
                                            werteAuslesen2(obj.state.val);
                                        });
                                        
                                        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

                                        317

                                        Online

                                        32.7k

                                        Users

                                        82.3k

                                        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