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. JSON in Blockly parsen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

JSON in Blockly parsen

Scheduled Pinned Locked Moved Skripten / Logik
20 Posts 11 Posters 14.2k Views 9 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.
  • BuZZyB Offline
    BuZZyB Offline
    BuZZy
    wrote on last edited by
    #8

    Man kann nicht von Javascript nach Blockly "konvertieren"..

    Du musst dann komplett dieses Script ohne Blockly bauen. Oder warten bis jemand eine Lösung mit Blockly postet.. =/

    Gruß

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

      Ich verstehe das alles nicht,

      ich habe folgende Zeile

      {"Time":"2018-05-13T09:43:21","Switch1":"ON","Distance":8.76};

      daraus habe ich dann gemacht,

      var objekt = {"Time":"2018-05-13T09:43:21","Switch1":"ON","Distance":8.76};

      log(objekt.Time); // Ergibt 0

      log(objekt._Distance); // Ergibt 1522141883

      aber leider bekomme ich nirgends werte in meinem fall die 8.76

      1 Reply Last reply
      0
      • BuZZyB Offline
        BuZZyB Offline
        BuZZy
        wrote on last edited by
        #10

        Es heißt auch Distance in deinem object, nicht _Distance.. Wo kommt denn der _ da her bei dir? :D

        Gruß

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

          ja danke…! Aber leider auch änderung nichts was ich noch gefunden habe ein Error

          mqtt.0 2018-05-13 12:08:13.330 error Cannot parse {"Time":"2018-05-13T11:08:10","Switch1":"ON","Distance":}

          momentan der COde

           var objekt = {"Time":"2018-05-13T09:43:21","Switch1":"ON","Distance":8.76};
          
           log(objekt.Time); // Ergibt 0
           log(objekt.Distance); // Ergibt 1522141883 
          
          1 Reply Last reply
          0
          • BuZZyB Offline
            BuZZyB Offline
            BuZZy
            wrote on last edited by
            #12

            Wieso schmeißt mqtt den fehler? Wie sieht dein komplettes Script aus?

            Bei mir funktioniert es ohne Probleme..

            Gruß

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

              Da ich es nicht verstehe, das ist mein Komplettes Script "duck und Weck"

              1 Reply Last reply
              0
              • J Offline
                J Offline
                jnmcfly
                wrote on last edited by
                #14

                Hallo, hatte grade auch diese Anforderung. Habe es wie folgt gelöst.

                on({id: "mqtt.0.tele.SONOFF_PRUSA.SENSOR"/*tele/SONOFF_PRUSA/SENSOR*/, change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  json = (function () { try {return JSON.parse(getState("mqtt.0.tele.SONOFF_PRUSA.SENSOR").val);} catch(e) {return {};}})();
                  setState("mymeta.0.3DStromkosten"/*3DStromkosten*/, Math.round((getAttr(json, 'ENERGY.Total') * getState("mymeta.0.kwhPrice").val)*100)/100, true);
                });
                
                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mikesch
                  wrote on last edited by
                  #15

                  Hallo jnmcfly,
                  kannst Du mal das Blockly dazu posten bzw. den XML export. Leider bekomme ich das so nur zu 70% nachgebaut.
                  Danke.

                  X 1 Reply Last reply
                  0
                  • M mikesch

                    Hallo jnmcfly,
                    kannst Du mal das Blockly dazu posten bzw. den XML export. Leider bekomme ich das so nur zu 70% nachgebaut.
                    Danke.

                    X Offline
                    X Offline
                    xbow42
                    wrote on last edited by xbow42
                    #16

                    @mikesch

                    <xml xmlns="http://www.w3.org/1999/xhtml">
                     <block type="logic_boolean" id="VJ@nv6*~Q;W,@*6MXJ0b" x="-762" y="238">
                       <field name="BOOL">TRUE</field>
                     </block>
                     <block type="comment" id="hd#*aty~iYsu64[%_,8T" x="187" y="288">
                       <field name="COMMENT">(c) https://forum.iobroker.net/post/361542</field>
                       <next>
                         <block type="on_ext" id="D1uBT!v9/V)4h!!Y1)RL">
                           <mutation items="1"></mutation>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id=":EJ[kBY+g/#:42s_MG6!">
                               <field name="oid">default</field>
                             </shadow>
                             <block type="text" id="$f}7_^4x(Dvk0:$g=Z!x">
                               <field name="TEXT">mqtt.0.tele.SONOFF_PRUSA.SENSOR</field>
                             </block>
                           </value>
                           <statement name="STATEMENT">
                             <block type="procedures_callcustomnoreturn" id=".SUNAb;yu94^zP/{E~8}">
                               <mutation name="calc3dprintercost"></mutation>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                     <block type="procedures_defcustomnoreturn" id="enK7^[CkGvQ3`.H}Bsv!" x="188" y="438">
                       <mutation statements="false"></mutation>
                       <field name="NAME">calc3dprintercost</field>
                       <field name="SCRIPT">ICBqc29uID0gKGZ1bmN0aW9uICgpIHsgdHJ5IHtyZXR1cm4gSlNPTi5wYXJzZShnZXRTdGF0ZSgibXF0dC4wLnRlbGUuU09OT0ZGX1BSVVNBLlNFTlNPUiIpLnZhbCk7fSBjYXRjaChlKSB7cmV0dXJuIHt9O319KSgpOw0KICBzZXRTdGF0ZSgibXltZXRhLjAuM0RTdHJvbWtvc3RlbiIvKjNEU3Ryb21rb3N0ZW4qLywgTWF0aC5yb3VuZCgoZ2V0QXR0cihqc29uLCAnRU5FUkdZLlRvdGFsJykgKiBnZXRTdGF0ZSgibXltZXRhLjAua3doUHJpY2UiKS52YWwpKjEwMCkvMTAwLCB0cnVlKTs=</field>
                       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                     </block>
                    </xml>
                    


                    Pfade im Trigger und in der js-Funktion zu den DP müssen noch angepasst werden. ;)

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mikesch
                      wrote on last edited by
                      #17

                      @xbow42 -Danke! Läuft!

                      NewpicselN 1 Reply Last reply
                      0
                      • M mikesch

                        @xbow42 -Danke! Läuft!

                        NewpicselN Offline
                        NewpicselN Offline
                        Newpicsel
                        wrote on last edited by Newpicsel
                        #18

                        Moin und frohes neues :blush:

                        Ich stehe aktuell vor einem schier unlösbaren Problem, ich muss dazu sagen, ich hab keine Ahnung von dem was ich tue also seid mir nicht böse :innocent:

                        Ich versuche ein JSON Objekt zu parsen, soweit eigentlich kein Problem, zumindest solange ich nicht auf „body“ oder darin enthaltenes zugreifen will, auf zb. „Status“ kann ich zugreifen und den Wert auslesen.

                        Hier ein Beispiel JSON:

                        
                        {
                        "body": {
                        "homes": [
                        {
                        "id": "5954e7f249c75f97428b7b23",
                        "name": "Your House",
                        "altitude": 89,
                        "coordinates": [
                        "-0.12726409999999996, 51.51608619999999"
                        ],
                        "country": "FR",
                        "timezone": "Europe/paris",
                        "rooms": [
                        {
                        "id": 3466299980,
                        "name": "myRoom",
                        "type": "Kitchen",
                        "module_ids": [
                        "09:00:00:00:0e:e0"
                        ]
                        }
                        ],
                        "modules": [
                        {
                        "id": "01:00:00:00:0e:e0",
                        "type": "NAPlug",
                        "name": "thermostat relay",
                        "setup_date": 1498736626,
                        "module_bridged": [
                        "02:00:00:00:0e:e0, 03:00:00:00:0e:e0"
                        ]
                        },
                        {
                        "id": "01:00:00:00:0e:e0",
                        "type": "NATherm1",
                        "name": "thermostat relay",
                        "setup_date": 1498736626,
                        "room_id": 2016185224,
                        "bridge": "01:00:00:00:0e:e0"
                        },
                        {
                        "id": "01:00:00:00:0e:e0",
                        "type": "NRV",
                        "name": "thermostat relay",
                        "setup_date": 1498736626,
                        "room_id": 2016185224,
                        "bridge": "01:00:00:00:0e:e0"
                        }
                        ],
                        "therm_set_point_default_duration": 180,
                        "schedules": [
                        {
                        "timetable": [
                        {
                        "zone_id": 1,
                        "m_offset": 360
                        }
                        ],
                        "zones": [
                        {
                        "name": "Confort",
                        "id": 1,
                        "type": 1,
                        "rooms": [
                        {
                        "id": 201618522,
                        "therm_setpoint_temperature": 15
                        }
                        ]
                        }
                        ],
                        "name": "mySchedule"
                        }
                        ],
                        "therm_mode": "schedule"
                        }
                        ],
                        "user": {
                        "email": "user@example.com",
                        "langage": "fr-FR",
                        "locale": "fr-FR",
                        "feel_like_algorithm": 0,
                        "unit_pressure": 0,
                        "unit_system": 0,
                        "unit_wind": 0,
                        "id": "5c81004fd6e33f0b008b4df2"
                        }
                        },
                        "status": "ok",
                        "time_exec": "0.060059070587158",
                        "time_server": "1553777827"
                        } 
                        

                        Ich möchte hier auf die Liste „body.homes.modules.module_bridged“ zugreifen, am besten die Angaben zählen und dann Objekte für jede dieser ID‘s anlegen.

                        Hat den Hintergrund, dass ich versuche ein blocky zu bauen, welches wie ein Adapter ready to use für jedermann einsetzbar ist, bin auch soweit das Objekte automatisch angelegt werden wenn nicht vorhanden und hier nur Zugangsdaten in Objekte eingetragen werden müssen und automatisch oauth2 Tokens angefordert und aktualisiert werden, womit dann bereits zwei JSON Objekte aus der API geholt und angelegt werden.
                        Zum einen wird schon seit Jahren nach einem Adapter von x Personen gebeten und zum anderen lerne ich so eine Menge dazu! :blush:

                        Ich hoffe mir kann hier jemand helfen, danke im Voraus

                        Blockly-Parsen.png

                        Edit: mir ist klar, dass dieses JSON mit Arrays verschachtelt ist, jedoch liegt genau hier mein Problem, wie muss ich die richtig parsen?
                        Mir fehlt einfach die richtige Formulierung des Pfades, habe es auch mit [] eckigen Klammer oder Klammer und einer null [0] für das erste Array probiert, komme hier aber leider überhaupt nicht weiter :disappointed:
                        Auch im netzt und hier im Forum konnte ich bisher nichts finden, was mir weiterhelfen würde.

                        machs-smart.deM M 2 Replies Last reply
                        0
                        • NewpicselN Newpicsel

                          Moin und frohes neues :blush:

                          Ich stehe aktuell vor einem schier unlösbaren Problem, ich muss dazu sagen, ich hab keine Ahnung von dem was ich tue also seid mir nicht böse :innocent:

                          Ich versuche ein JSON Objekt zu parsen, soweit eigentlich kein Problem, zumindest solange ich nicht auf „body“ oder darin enthaltenes zugreifen will, auf zb. „Status“ kann ich zugreifen und den Wert auslesen.

                          Hier ein Beispiel JSON:

                          
                          {
                          "body": {
                          "homes": [
                          {
                          "id": "5954e7f249c75f97428b7b23",
                          "name": "Your House",
                          "altitude": 89,
                          "coordinates": [
                          "-0.12726409999999996, 51.51608619999999"
                          ],
                          "country": "FR",
                          "timezone": "Europe/paris",
                          "rooms": [
                          {
                          "id": 3466299980,
                          "name": "myRoom",
                          "type": "Kitchen",
                          "module_ids": [
                          "09:00:00:00:0e:e0"
                          ]
                          }
                          ],
                          "modules": [
                          {
                          "id": "01:00:00:00:0e:e0",
                          "type": "NAPlug",
                          "name": "thermostat relay",
                          "setup_date": 1498736626,
                          "module_bridged": [
                          "02:00:00:00:0e:e0, 03:00:00:00:0e:e0"
                          ]
                          },
                          {
                          "id": "01:00:00:00:0e:e0",
                          "type": "NATherm1",
                          "name": "thermostat relay",
                          "setup_date": 1498736626,
                          "room_id": 2016185224,
                          "bridge": "01:00:00:00:0e:e0"
                          },
                          {
                          "id": "01:00:00:00:0e:e0",
                          "type": "NRV",
                          "name": "thermostat relay",
                          "setup_date": 1498736626,
                          "room_id": 2016185224,
                          "bridge": "01:00:00:00:0e:e0"
                          }
                          ],
                          "therm_set_point_default_duration": 180,
                          "schedules": [
                          {
                          "timetable": [
                          {
                          "zone_id": 1,
                          "m_offset": 360
                          }
                          ],
                          "zones": [
                          {
                          "name": "Confort",
                          "id": 1,
                          "type": 1,
                          "rooms": [
                          {
                          "id": 201618522,
                          "therm_setpoint_temperature": 15
                          }
                          ]
                          }
                          ],
                          "name": "mySchedule"
                          }
                          ],
                          "therm_mode": "schedule"
                          }
                          ],
                          "user": {
                          "email": "user@example.com",
                          "langage": "fr-FR",
                          "locale": "fr-FR",
                          "feel_like_algorithm": 0,
                          "unit_pressure": 0,
                          "unit_system": 0,
                          "unit_wind": 0,
                          "id": "5c81004fd6e33f0b008b4df2"
                          }
                          },
                          "status": "ok",
                          "time_exec": "0.060059070587158",
                          "time_server": "1553777827"
                          } 
                          

                          Ich möchte hier auf die Liste „body.homes.modules.module_bridged“ zugreifen, am besten die Angaben zählen und dann Objekte für jede dieser ID‘s anlegen.

                          Hat den Hintergrund, dass ich versuche ein blocky zu bauen, welches wie ein Adapter ready to use für jedermann einsetzbar ist, bin auch soweit das Objekte automatisch angelegt werden wenn nicht vorhanden und hier nur Zugangsdaten in Objekte eingetragen werden müssen und automatisch oauth2 Tokens angefordert und aktualisiert werden, womit dann bereits zwei JSON Objekte aus der API geholt und angelegt werden.
                          Zum einen wird schon seit Jahren nach einem Adapter von x Personen gebeten und zum anderen lerne ich so eine Menge dazu! :blush:

                          Ich hoffe mir kann hier jemand helfen, danke im Voraus

                          Blockly-Parsen.png

                          Edit: mir ist klar, dass dieses JSON mit Arrays verschachtelt ist, jedoch liegt genau hier mein Problem, wie muss ich die richtig parsen?
                          Mir fehlt einfach die richtige Formulierung des Pfades, habe es auch mit [] eckigen Klammer oder Klammer und einer null [0] für das erste Array probiert, komme hier aber leider überhaupt nicht weiter :disappointed:
                          Auch im netzt und hier im Forum konnte ich bisher nichts finden, was mir weiterhelfen würde.

                          machs-smart.deM Offline
                          machs-smart.deM Offline
                          machs-smart.de
                          wrote on last edited by
                          #19

                          @newpicsel Versuche es mal mit "modules.module_bridged" und dann einen "in der Liste (DEIN ATTRIBUT VOM OBJEKT BLOCK) nimm entweder "erstes" oder "letztes" - je nach dem welchen Wert du möchtest.

                          www.machs-smart.de
                          Anleitungen und Tutorials rund um ioBroker

                          1 Reply Last reply
                          0
                          • NewpicselN Newpicsel

                            Moin und frohes neues :blush:

                            Ich stehe aktuell vor einem schier unlösbaren Problem, ich muss dazu sagen, ich hab keine Ahnung von dem was ich tue also seid mir nicht böse :innocent:

                            Ich versuche ein JSON Objekt zu parsen, soweit eigentlich kein Problem, zumindest solange ich nicht auf „body“ oder darin enthaltenes zugreifen will, auf zb. „Status“ kann ich zugreifen und den Wert auslesen.

                            Hier ein Beispiel JSON:

                            
                            {
                            "body": {
                            "homes": [
                            {
                            "id": "5954e7f249c75f97428b7b23",
                            "name": "Your House",
                            "altitude": 89,
                            "coordinates": [
                            "-0.12726409999999996, 51.51608619999999"
                            ],
                            "country": "FR",
                            "timezone": "Europe/paris",
                            "rooms": [
                            {
                            "id": 3466299980,
                            "name": "myRoom",
                            "type": "Kitchen",
                            "module_ids": [
                            "09:00:00:00:0e:e0"
                            ]
                            }
                            ],
                            "modules": [
                            {
                            "id": "01:00:00:00:0e:e0",
                            "type": "NAPlug",
                            "name": "thermostat relay",
                            "setup_date": 1498736626,
                            "module_bridged": [
                            "02:00:00:00:0e:e0, 03:00:00:00:0e:e0"
                            ]
                            },
                            {
                            "id": "01:00:00:00:0e:e0",
                            "type": "NATherm1",
                            "name": "thermostat relay",
                            "setup_date": 1498736626,
                            "room_id": 2016185224,
                            "bridge": "01:00:00:00:0e:e0"
                            },
                            {
                            "id": "01:00:00:00:0e:e0",
                            "type": "NRV",
                            "name": "thermostat relay",
                            "setup_date": 1498736626,
                            "room_id": 2016185224,
                            "bridge": "01:00:00:00:0e:e0"
                            }
                            ],
                            "therm_set_point_default_duration": 180,
                            "schedules": [
                            {
                            "timetable": [
                            {
                            "zone_id": 1,
                            "m_offset": 360
                            }
                            ],
                            "zones": [
                            {
                            "name": "Confort",
                            "id": 1,
                            "type": 1,
                            "rooms": [
                            {
                            "id": 201618522,
                            "therm_setpoint_temperature": 15
                            }
                            ]
                            }
                            ],
                            "name": "mySchedule"
                            }
                            ],
                            "therm_mode": "schedule"
                            }
                            ],
                            "user": {
                            "email": "user@example.com",
                            "langage": "fr-FR",
                            "locale": "fr-FR",
                            "feel_like_algorithm": 0,
                            "unit_pressure": 0,
                            "unit_system": 0,
                            "unit_wind": 0,
                            "id": "5c81004fd6e33f0b008b4df2"
                            }
                            },
                            "status": "ok",
                            "time_exec": "0.060059070587158",
                            "time_server": "1553777827"
                            } 
                            

                            Ich möchte hier auf die Liste „body.homes.modules.module_bridged“ zugreifen, am besten die Angaben zählen und dann Objekte für jede dieser ID‘s anlegen.

                            Hat den Hintergrund, dass ich versuche ein blocky zu bauen, welches wie ein Adapter ready to use für jedermann einsetzbar ist, bin auch soweit das Objekte automatisch angelegt werden wenn nicht vorhanden und hier nur Zugangsdaten in Objekte eingetragen werden müssen und automatisch oauth2 Tokens angefordert und aktualisiert werden, womit dann bereits zwei JSON Objekte aus der API geholt und angelegt werden.
                            Zum einen wird schon seit Jahren nach einem Adapter von x Personen gebeten und zum anderen lerne ich so eine Menge dazu! :blush:

                            Ich hoffe mir kann hier jemand helfen, danke im Voraus

                            Blockly-Parsen.png

                            Edit: mir ist klar, dass dieses JSON mit Arrays verschachtelt ist, jedoch liegt genau hier mein Problem, wie muss ich die richtig parsen?
                            Mir fehlt einfach die richtige Formulierung des Pfades, habe es auch mit [] eckigen Klammer oder Klammer und einer null [0] für das erste Array probiert, komme hier aber leider überhaupt nicht weiter :disappointed:
                            Auch im netzt und hier im Forum konnte ich bisher nichts finden, was mir weiterhelfen würde.

                            M Offline
                            M Offline
                            MCU
                            wrote on last edited by MCU
                            #20

                            @newpicsel
                            ff28a583-0edc-4cb5-8c2d-c4cf79d984b8-image.png
                            Ergebnis:

                            cfe3b8c3-ee98-47de-8edd-79aaa0e8cd6c-image.png

                            b7f766b6-26aa-421b-ba83-23ad6a20c2a6-image.png

                            66bedf13-5855-4eee-9fb6-93aaa4547bb6-image.png

                            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                            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

                            853

                            Online

                            32.5k

                            Users

                            81.7k

                            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