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

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

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

Scheduled Pinned Locked Moved Skripten / Logik
31 Posts 9 Posters 10.7k 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.
  • AlCalzoneA Offline
    AlCalzoneA Offline
    AlCalzone
    Developer
    wrote on last edited by
    #8

    @coyote:

    Und body schein leer zu sein: "javascript.1 script.js.test: [object Object]" `
    Loggst du vor oder nach dem JSON.parse? Vorher solltest du den Inhalt direkt ausgeben können. Danach ist es ein Objekt ("[object Object]"), das du erst wieder in einen String umwandeln musst zum Loggen:

    log(JSON.stringify(body));
    

    oder (wenn du etwas schönere Formatierung willst):

    log(JSON.stringify(body, null, 4));
    

    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

    1 Reply Last reply
    0
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      wrote on last edited by
      #9

      @coyote:

      tempExtruder ist immer noch "undefined" `
      Wenn man sich das Objekt mal anschaut, sieht man warum:

      {
         "AM8":{
            "activeExtruder":0,
            "debugLevel":6,
            "extruder":[
               {
                  "error":0,
                  "output":0,
                  "tempRead":15.000000000000000,
                  "tempSet":0.0000000000000000
               }
            ],
            "fan2On":false,
            "fan2Voltage":0,
            "fanOn":false,
            "fanVoltage":255,
            "firmware":"Marlin",
            "firmwareURL":"",
            "flowMultiply":100,
            "hasXHome":true,
            "hasYHome":true,
            "hasZHome":true,
            "heatedBed":{
               "error":0,
               "output":0,
               "tempRead":15.100000381469727,
               "tempSet":0.0000000000000000
            },
            "layer":64,
            "lights":0,
            "numExtruder":1,
            "powerOn":false,
            "rec":false,
            "sdcardMounted":true,
            "speedMultiply":100,
            "volumetric":false,
            "x":0.0000000000000000,
            "y":180.00000000000000,
            "z":22.579999923706055
         }
      }
      

      extruder ist ein Array (könnten mehrere sein), d.h. du musst den richtigen auswählen - in deinem Fall den 0ten.

      var tempExtruder = body.AM8.extruder[0].tempRead;
      

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

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

        Super, danke Dir funktioniert.

        Kannst du mir vielleicht noch sagen, wie ich den Wert auf 2 Nachkommastellen kürze?

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

          @coyote:

          wie ich den Wert auf 2 Nachkommastellen kürze? `

          var tempExtruder = Math.round(100 * body.AM8.extruder[0].tempRead) / 100;
          

          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
          • ThisoftT Offline
            ThisoftT Offline
            Thisoft
            wrote on last edited by
            #12

            Na seht ihr was aus einem Vorschlag im Halbschlaf alles werden kann ;) Da sieht man dass Javascript nur meine 5. Fremdsprache ist - ohne zu testen gerade da viele solche Fehlerchen rein…

            Aber Deine Objektdefinition ist - auch wenn es jetzt funktioniert - sagen wir mal suboptimal. Ich würde den Wert der Temperatur jedenfalls nicht einfach in einen DP mit der Bezeichnung "3dDrucker" schreiben sondern die Struktur des DP an die der Daten die vom Drucker kommen "anlehnen". Das mag aber noch als persönliche Geschmackssache durchgehen - ist nur ein Hinweis.

            Was du aber auf keinen Fall machen solltest ist die Typdeklaration des Datenpunkts zu "vermatschen". So wie du den jetzt anlegst (createState('javascript.1.3dDrucker', ""); ist der Typ zwar überhaupt nicht deklariert, wird also vermutlich "variabel" und dann gibst du als Defaultwert auch noch einen String an (""), also zumindest der Datentyp 'number' sollte für einen Zahlenwert schon definiert sein und als Default wenigstens 0.

            Das mag zwar so wie du das jetzt hast funktionieren und für den Moment auch keine Probleme machen, aber erstens ist es programmiertechnischer 'Murks' und zweitens wird es dir schmerzlich auf die Füße fallen wenn du die Daten mal historisieren und vielleicht in einem Diagramm auswerten willst.

            Aber ist nur ein Hinweis - ich mache auch manchmal gerne selbst die Fehler um dann aus Schmerzen zu lernen ;)

            22 HM-Geräte; PivCCU2 auf RasPi

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

            1 Reply Last reply
            0
            • 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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          746

                                          Online

                                          32.4k

                                          Users

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