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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Aus JSON 136 Datenpunkte erzeugen

NEWS

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

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

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

Aus JSON 136 Datenpunkte erzeugen

Geplant Angeheftet Gesperrt Verschoben Blockly
15 Beiträge 4 Kommentatoren 1.0k Aufrufe 2 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.
  • V Offline
    V Offline
    Videonisse
    schrieb am zuletzt editiert von
    #1

    Von meine Wärmeanlage bekomme ich via mqtt ein datenpunkt mit ein json objekt die 136 werte haben. Ich möchte am liebsten diesen json mit eine Schleife neue Datenpunkte erzeugen und updaten. Ist das mit Blockly möglich oder muss ich es in native javascript schreiben? Hat jemand ein beispiel wie man so was macht? (ich bin kein programmierer)

    Mein json:


    {"Client_Name":"ThermIQ_2462ABE591BC","app_info":"ThermIQ-room 2.12","reason":"T","r00":5,"r01":20,"r02":5,"r03":21,"r04":0,"r05":38,"r06":38,"r07":61,"r08":7,"r09":6,"r0a":-40,"r0b":30,"r0c":0,"r0d":0,"r0e":38,"r0f":30,"r10":4,"r11":0,"r12":0,"r13":0,"r14":0,"r15":128,"r16":0,"r17":34,"r18":61,"r19":24,"r1a":0,"r1b":0,"r1c":0,"r1d":13,"r1e":50,"r1f":0,"r20":0,"r21":0,"r22":0,"r23":0,"r24":0,"r25":0,"r26":0,"r27":0,"r28":0,"r29":0,"r2a":0,"r2b":0,"r2c":0,"r2d":0,"r2e":0,"r2f":0,"r30":0,"r31":0,"r32":21,"r33":1,"r34":40,"r35":10,"r36":55,"r37":3,"r38":0,"r39":0,"r3a":18,"r3b":2,"r3c":0,"r3d":29,"r3e":10,"r3f":40,"r40":20,"r41":2,"r42":20,"r43":140,"r44":39,"r45":20,"r46":20,"r47":7,"r48":60,"r49":150,"r4a":10,"r4b":55,"r4c":20,"r4d":-15,"r4e":18,"r4f":70,"r50":20,"r51":0,"r52":20,"r53":60,"r54":60,"r55":0,"r56":0,"r57":0,"r58":0,"r59":0,"r5a":0,"r5b":1,"r5c":0,"r5d":0,"r5e":0,"r5f":-1,"r60":0,"r61":32,"r62":68,"r63":1,"r64":3,"r65":3,"r66":0,"r67":0,"r68":24302,"r69":-8098,"r6a":3808,"r6b":-10482,"r6c":727,"r6d":2,"r6e":0,"r6f":0,"r70":0,"r71":-30208,"r72":2442,"r73":9,"r74":0,"r75":0,"r76":0,"r77":0,"r78":0,"r79":0,"r7a":0,"r7b":0,"r7c":0,"r7d":2,"r7e":2,"r7f":2,"INDR_T": 0.0,"OUTD_T": 5.0,"TRGT_T": 21.0, "time": "2021-10-31 23:13:09 CET","timestamp": 1635718389 }

    ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM), Node.js: v12.22.6, NPM: 6.14.15
    Most important Device Adapters: KNX, Trådfri, Homekit/Yahka

    HomoranH liv-in-skyL paul53P 3 Antworten Letzte Antwort
    0
    • V Videonisse

      Von meine Wärmeanlage bekomme ich via mqtt ein datenpunkt mit ein json objekt die 136 werte haben. Ich möchte am liebsten diesen json mit eine Schleife neue Datenpunkte erzeugen und updaten. Ist das mit Blockly möglich oder muss ich es in native javascript schreiben? Hat jemand ein beispiel wie man so was macht? (ich bin kein programmierer)

      Mein json:


      {"Client_Name":"ThermIQ_2462ABE591BC","app_info":"ThermIQ-room 2.12","reason":"T","r00":5,"r01":20,"r02":5,"r03":21,"r04":0,"r05":38,"r06":38,"r07":61,"r08":7,"r09":6,"r0a":-40,"r0b":30,"r0c":0,"r0d":0,"r0e":38,"r0f":30,"r10":4,"r11":0,"r12":0,"r13":0,"r14":0,"r15":128,"r16":0,"r17":34,"r18":61,"r19":24,"r1a":0,"r1b":0,"r1c":0,"r1d":13,"r1e":50,"r1f":0,"r20":0,"r21":0,"r22":0,"r23":0,"r24":0,"r25":0,"r26":0,"r27":0,"r28":0,"r29":0,"r2a":0,"r2b":0,"r2c":0,"r2d":0,"r2e":0,"r2f":0,"r30":0,"r31":0,"r32":21,"r33":1,"r34":40,"r35":10,"r36":55,"r37":3,"r38":0,"r39":0,"r3a":18,"r3b":2,"r3c":0,"r3d":29,"r3e":10,"r3f":40,"r40":20,"r41":2,"r42":20,"r43":140,"r44":39,"r45":20,"r46":20,"r47":7,"r48":60,"r49":150,"r4a":10,"r4b":55,"r4c":20,"r4d":-15,"r4e":18,"r4f":70,"r50":20,"r51":0,"r52":20,"r53":60,"r54":60,"r55":0,"r56":0,"r57":0,"r58":0,"r59":0,"r5a":0,"r5b":1,"r5c":0,"r5d":0,"r5e":0,"r5f":-1,"r60":0,"r61":32,"r62":68,"r63":1,"r64":3,"r65":3,"r66":0,"r67":0,"r68":24302,"r69":-8098,"r6a":3808,"r6b":-10482,"r6c":727,"r6d":2,"r6e":0,"r6f":0,"r70":0,"r71":-30208,"r72":2442,"r73":9,"r74":0,"r75":0,"r76":0,"r77":0,"r78":0,"r79":0,"r7a":0,"r7b":0,"r7c":0,"r7d":2,"r7e":2,"r7f":2,"INDR_T": 0.0,"OUTD_T": 5.0,"TRGT_T": 21.0, "time": "2021-10-31 23:13:09 CET","timestamp": 1635718389 }

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #2

      @videonisse sagte in Aus JSON 136 Datenpunkte erzeugen:

      Ist das mit Blockly möglich

      ja, wären dann 136 Zeilen (plus overhead)

      bin nicht am PC, Prinzip wäre den Datenpunkt auszulesen und mit dem Baustein "Attribut von" (r00) den jeweiligen Wert (5) in einen selbst angelegten Datenpunkt zu schreiben.
      und das für jedes (interessante) Element des JSON

      Screenshot_20211112-221041_Firefox.jpg

      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 Antwort Letzte Antwort
      0
      • V Videonisse

        Von meine Wärmeanlage bekomme ich via mqtt ein datenpunkt mit ein json objekt die 136 werte haben. Ich möchte am liebsten diesen json mit eine Schleife neue Datenpunkte erzeugen und updaten. Ist das mit Blockly möglich oder muss ich es in native javascript schreiben? Hat jemand ein beispiel wie man so was macht? (ich bin kein programmierer)

        Mein json:


        {"Client_Name":"ThermIQ_2462ABE591BC","app_info":"ThermIQ-room 2.12","reason":"T","r00":5,"r01":20,"r02":5,"r03":21,"r04":0,"r05":38,"r06":38,"r07":61,"r08":7,"r09":6,"r0a":-40,"r0b":30,"r0c":0,"r0d":0,"r0e":38,"r0f":30,"r10":4,"r11":0,"r12":0,"r13":0,"r14":0,"r15":128,"r16":0,"r17":34,"r18":61,"r19":24,"r1a":0,"r1b":0,"r1c":0,"r1d":13,"r1e":50,"r1f":0,"r20":0,"r21":0,"r22":0,"r23":0,"r24":0,"r25":0,"r26":0,"r27":0,"r28":0,"r29":0,"r2a":0,"r2b":0,"r2c":0,"r2d":0,"r2e":0,"r2f":0,"r30":0,"r31":0,"r32":21,"r33":1,"r34":40,"r35":10,"r36":55,"r37":3,"r38":0,"r39":0,"r3a":18,"r3b":2,"r3c":0,"r3d":29,"r3e":10,"r3f":40,"r40":20,"r41":2,"r42":20,"r43":140,"r44":39,"r45":20,"r46":20,"r47":7,"r48":60,"r49":150,"r4a":10,"r4b":55,"r4c":20,"r4d":-15,"r4e":18,"r4f":70,"r50":20,"r51":0,"r52":20,"r53":60,"r54":60,"r55":0,"r56":0,"r57":0,"r58":0,"r59":0,"r5a":0,"r5b":1,"r5c":0,"r5d":0,"r5e":0,"r5f":-1,"r60":0,"r61":32,"r62":68,"r63":1,"r64":3,"r65":3,"r66":0,"r67":0,"r68":24302,"r69":-8098,"r6a":3808,"r6b":-10482,"r6c":727,"r6d":2,"r6e":0,"r6f":0,"r70":0,"r71":-30208,"r72":2442,"r73":9,"r74":0,"r75":0,"r76":0,"r77":0,"r78":0,"r79":0,"r7a":0,"r7b":0,"r7c":0,"r7d":2,"r7e":2,"r7f":2,"INDR_T": 0.0,"OUTD_T": 5.0,"TRGT_T": 21.0, "time": "2021-10-31 23:13:09 CET","timestamp": 1635718389 }

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von liv-in-sky
        #3

        @videonisse

        hier ein script

        • du musst die id des dp eingeben - 2. zeile

        • das musst du überall angleichen: 0_userdata.0.TELEGRAF2 -- anstatt telegraf nimmst du einen anderen ordner - zeile 7 und 8

        • das ganze braucht noch einen trigger, damit das immer upgedatet wird - zum testen aber einfach mal aufrufen - dann sollten die dp erstellt werden

        
        let myvar = JSON.parse(getState(id).val)
        
        var keys = Object.keys(myvar);
        for(let u=0;u<keys.length;u++){
            let theVal=myvar[keys[u]]
         if(existsState('0_userdata.0.TELEGRAF2.'+keys[u])) setState('0_userdata.0.TELEGRAF2.'+keys[u],theVal);
                 else createState('0_userdata.0.TELEGRAF2.'+keys[u], theVal, { name: keys[u],unit:'' }); 
        }
        

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • V Videonisse

          Von meine Wärmeanlage bekomme ich via mqtt ein datenpunkt mit ein json objekt die 136 werte haben. Ich möchte am liebsten diesen json mit eine Schleife neue Datenpunkte erzeugen und updaten. Ist das mit Blockly möglich oder muss ich es in native javascript schreiben? Hat jemand ein beispiel wie man so was macht? (ich bin kein programmierer)

          Mein json:


          {"Client_Name":"ThermIQ_2462ABE591BC","app_info":"ThermIQ-room 2.12","reason":"T","r00":5,"r01":20,"r02":5,"r03":21,"r04":0,"r05":38,"r06":38,"r07":61,"r08":7,"r09":6,"r0a":-40,"r0b":30,"r0c":0,"r0d":0,"r0e":38,"r0f":30,"r10":4,"r11":0,"r12":0,"r13":0,"r14":0,"r15":128,"r16":0,"r17":34,"r18":61,"r19":24,"r1a":0,"r1b":0,"r1c":0,"r1d":13,"r1e":50,"r1f":0,"r20":0,"r21":0,"r22":0,"r23":0,"r24":0,"r25":0,"r26":0,"r27":0,"r28":0,"r29":0,"r2a":0,"r2b":0,"r2c":0,"r2d":0,"r2e":0,"r2f":0,"r30":0,"r31":0,"r32":21,"r33":1,"r34":40,"r35":10,"r36":55,"r37":3,"r38":0,"r39":0,"r3a":18,"r3b":2,"r3c":0,"r3d":29,"r3e":10,"r3f":40,"r40":20,"r41":2,"r42":20,"r43":140,"r44":39,"r45":20,"r46":20,"r47":7,"r48":60,"r49":150,"r4a":10,"r4b":55,"r4c":20,"r4d":-15,"r4e":18,"r4f":70,"r50":20,"r51":0,"r52":20,"r53":60,"r54":60,"r55":0,"r56":0,"r57":0,"r58":0,"r59":0,"r5a":0,"r5b":1,"r5c":0,"r5d":0,"r5e":0,"r5f":-1,"r60":0,"r61":32,"r62":68,"r63":1,"r64":3,"r65":3,"r66":0,"r67":0,"r68":24302,"r69":-8098,"r6a":3808,"r6b":-10482,"r6c":727,"r6d":2,"r6e":0,"r6f":0,"r70":0,"r71":-30208,"r72":2442,"r73":9,"r74":0,"r75":0,"r76":0,"r77":0,"r78":0,"r79":0,"r7a":0,"r7b":0,"r7c":0,"r7d":2,"r7e":2,"r7f":2,"INDR_T": 0.0,"OUTD_T": 5.0,"TRGT_T": 21.0, "time": "2021-10-31 23:13:09 CET","timestamp": 1635718389 }

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @videonisse sagte: mit eine Schleife neue Datenpunkte erzeugen und updaten... Hat jemand ein beispiel wie man so was macht?

          Hier wird so etwas ähnliches gemacht.

          const idJSON = 'mqtt.1.ThermIQ.ThermIQ-room.data';
          const path = '0_userdata.0.ThermIQ.'; // Pfad anpassen
           
          on(idJSON, function (dp) {
              let obj = JSON.parse(dp.state.val);
              Object.keys(obj).forEach(function(key) {
                  if(existsState(path + key)) setState(path + key, obj[key], true);
                  else createState(path + key, obj[key], {read: true, write: false, type: typeof obj[key], name: key});
              });
          });
          

          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

          V 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @videonisse sagte: mit eine Schleife neue Datenpunkte erzeugen und updaten... Hat jemand ein beispiel wie man so was macht?

            Hier wird so etwas ähnliches gemacht.

            const idJSON = 'mqtt.1.ThermIQ.ThermIQ-room.data';
            const path = '0_userdata.0.ThermIQ.'; // Pfad anpassen
             
            on(idJSON, function (dp) {
                let obj = JSON.parse(dp.state.val);
                Object.keys(obj).forEach(function(key) {
                    if(existsState(path + key)) setState(path + key, obj[key], true);
                    else createState(path + key, obj[key], {read: true, write: false, type: typeof obj[key], name: key});
                });
            });
            
            V Offline
            V Offline
            Videonisse
            schrieb am zuletzt editiert von Videonisse
            #5

            @paul53 Danke! Ist fuer mich so einfach, kann ich dein skript benutzen wie es ist und nur the "const" ändern?

            Soll idJSON = mein DP mit JSON sein? (es ist mqtt.1.ThermIQ.ThermIQ-room.data)

            const JSPath = '0_userdata.0'; // JS- Pfad
            const parsedStatesPath = JSPath + ".ThermIQ."; // Pfad fuer geparste States
            const idJSON = 'mqtt.1.ThermIQ.ThermIQ-room.data';   // Full path to the DP with the JSON?
             
            on(idJSON, function (dp) {
                let JsonObj = JSON.parse(dp.state.val);
                Object.keys(JsonObj).forEach(function(key) {
                    if(existsState(parsedStatesPath + key)) setState(parsedStatesPath + key, JsonObj[key], true);
                    else createState(parsedStatesPath + key, JsonObj[key], {read: true, write: false, type: typeof JsonObj[key], name: key});
                });
            });
            
            

            ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM), Node.js: v12.22.6, NPM: 6.14.15
            Most important Device Adapters: KNX, Trådfri, Homekit/Yahka

            paul53P 1 Antwort Letzte Antwort
            0
            • V Videonisse

              @paul53 Danke! Ist fuer mich so einfach, kann ich dein skript benutzen wie es ist und nur the "const" ändern?

              Soll idJSON = mein DP mit JSON sein? (es ist mqtt.1.ThermIQ.ThermIQ-room.data)

              const JSPath = '0_userdata.0'; // JS- Pfad
              const parsedStatesPath = JSPath + ".ThermIQ."; // Pfad fuer geparste States
              const idJSON = 'mqtt.1.ThermIQ.ThermIQ-room.data';   // Full path to the DP with the JSON?
               
              on(idJSON, function (dp) {
                  let JsonObj = JSON.parse(dp.state.val);
                  Object.keys(JsonObj).forEach(function(key) {
                      if(existsState(parsedStatesPath + key)) setState(parsedStatesPath + key, JsonObj[key], true);
                      else createState(parsedStatesPath + key, JsonObj[key], {read: true, write: false, type: typeof JsonObj[key], name: key});
                  });
              });
              
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #6

              @videonisse
              Habe gerade meinen Beitrag oben um ein Skript ergänzt.
              Deine Anpassungen sollten ebenso funktionieren.

              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

              V 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @videonisse
                Habe gerade meinen Beitrag oben um ein Skript ergänzt.
                Deine Anpassungen sollten ebenso funktionieren.

                V Offline
                V Offline
                Videonisse
                schrieb am zuletzt editiert von
                #7

                @paul53 Funktioniert einwandfrei und sogar erzeugst die Objekte mit richtigen Type! Vielen Dank für ein sehr elegant geschriebenes Skript! :-)

                Kleine Frage; Der Wert "timestamp" ist ein Linux-Datum, aber es fehlen die Millisekunden. Ist es möglich, dies anzupassen und DP mit einem neuen Wert zu überschreiben, der am Ende "000" hinzufügt? Oder muss ich das separat machen?

                ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM), Node.js: v12.22.6, NPM: 6.14.15
                Most important Device Adapters: KNX, Trådfri, Homekit/Yahka

                paul53P 1 Antwort Letzte Antwort
                0
                • V Videonisse

                  @paul53 Funktioniert einwandfrei und sogar erzeugst die Objekte mit richtigen Type! Vielen Dank für ein sehr elegant geschriebenes Skript! :-)

                  Kleine Frage; Der Wert "timestamp" ist ein Linux-Datum, aber es fehlen die Millisekunden. Ist es möglich, dies anzupassen und DP mit einem neuen Wert zu überschreiben, der am Ende "000" hinzufügt? Oder muss ich das separat machen?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @videonisse sagte: Linux-Datum, aber es fehlen die Millisekunden.

                  Linux (Unix) verwendet Sekunden. Wozu benötigst Du Millisekunden?

                  @videonisse sagte in Aus JSON 136 Datenpunkte erzeugen:

                  Oder muss ich das separat machen?

                  Ja, als erstes in der Schleife:

                          if(key == 'timestamp') obj[key] = 1000 * obj[key];
                  

                  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

                  V 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @videonisse sagte: Linux-Datum, aber es fehlen die Millisekunden.

                    Linux (Unix) verwendet Sekunden. Wozu benötigst Du Millisekunden?

                    @videonisse sagte in Aus JSON 136 Datenpunkte erzeugen:

                    Oder muss ich das separat machen?

                    Ja, als erstes in der Schleife:

                            if(key == 'timestamp') obj[key] = 1000 * obj[key];
                    
                    V Offline
                    V Offline
                    Videonisse
                    schrieb am zuletzt editiert von
                    #9

                    @paul53 Danke, funktioniert natürlich gut!

                    Du hast recht, es ist schon in Linux Format (seconds), aber ich brauche es in Javascript Format (milliseconds). Ich weiß aber nicht, ob das noch richtigist, wollte Object/State Role = Datum haben. Dann muss es angeblich in milliseconds sein.

                    "date (common.type = number - epoch seconds * 1000" Source

                    Ich möchte auch gern die Variable "idJSON" in Blockly setzen aber verstehe nicht wie ich dass richtig mache.

                    Kann ich irgenwie die Variabel "object ID" von den Trigger benutzen? Ich habe mit unten probiert aber geht nicht.

                    0c407deb-e349-4b06-9bdd-279f40ffd1ef-image.png

                    56a239e8-dd24-4c42-a8f7-be354bfc465c-image.png

                    ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM), Node.js: v12.22.6, NPM: 6.14.15
                    Most important Device Adapters: KNX, Trådfri, Homekit/Yahka

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • V Videonisse

                      @paul53 Danke, funktioniert natürlich gut!

                      Du hast recht, es ist schon in Linux Format (seconds), aber ich brauche es in Javascript Format (milliseconds). Ich weiß aber nicht, ob das noch richtigist, wollte Object/State Role = Datum haben. Dann muss es angeblich in milliseconds sein.

                      "date (common.type = number - epoch seconds * 1000" Source

                      Ich möchte auch gern die Variable "idJSON" in Blockly setzen aber verstehe nicht wie ich dass richtig mache.

                      Kann ich irgenwie die Variabel "object ID" von den Trigger benutzen? Ich habe mit unten probiert aber geht nicht.

                      0c407deb-e349-4b06-9bdd-279f40ffd1ef-image.png

                      56a239e8-dd24-4c42-a8f7-be354bfc465c-image.png

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #10

                      @videonisse sagte: Kann ich irgenwie die Variabel "object ID" von den Trigger benutzen?

                      Der Block ist schon richtig, aber "value" (oder so ähnlich) selektieren.
                      Wenn schon mit Blockly, dann

                      Bild_2021-11-13_222902.png

                      Inhalt der Funktion ThermiqUpdate(source):

                      let obj = JSON.parse(source);
                      Object.keys(obj).forEach(function(key) {
                          if(key == 'timestamp') obj[key] = 1000 * obj[key];
                          if(existsState(path + key)) setState(path + key, obj[key], true);
                          else createState(path + key, obj[key], {read: true, write: false, type: typeof obj[key], name: key});
                      });
                      

                      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

                      V 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @videonisse sagte: Kann ich irgenwie die Variabel "object ID" von den Trigger benutzen?

                        Der Block ist schon richtig, aber "value" (oder so ähnlich) selektieren.
                        Wenn schon mit Blockly, dann

                        Bild_2021-11-13_222902.png

                        Inhalt der Funktion ThermiqUpdate(source):

                        let obj = JSON.parse(source);
                        Object.keys(obj).forEach(function(key) {
                            if(key == 'timestamp') obj[key] = 1000 * obj[key];
                            if(existsState(path + key)) setState(path + key, obj[key], true);
                            else createState(path + key, obj[key], {read: true, write: false, type: typeof obj[key], name: key});
                        });
                        
                        V Offline
                        V Offline
                        Videonisse
                        schrieb am zuletzt editiert von Videonisse
                        #11

                        @paul53 Works like a charm! Nochmals, viele viele Danke! :-)

                        Ich habe letzen Tage Probleme javascript.js und hatte zb error: "JavaScript heap out of memory"

                        Kann die Ursache den Code "on(idJSON, function (dp) {" zusammen mit Blockly gewesen sein?

                        ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM), Node.js: v12.22.6, NPM: 6.14.15
                        Most important Device Adapters: KNX, Trådfri, Homekit/Yahka

                        HomoranH paul53P 2 Antworten Letzte Antwort
                        0
                        • V Videonisse

                          @paul53 Works like a charm! Nochmals, viele viele Danke! :-)

                          Ich habe letzen Tage Probleme javascript.js und hatte zb error: "JavaScript heap out of memory"

                          Kann die Ursache den Code "on(idJSON, function (dp) {" zusammen mit Blockly gewesen sein?

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #12

                          @videonisse sagte in Aus JSON 136 Datenpunkte erzeugen:

                          JavaScript heap out of memory

                          gilt deine Signatur noch?

                          ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM)

                          da solltest du eigentlich genug RAM haben (wenn das auf einem PC läuft und in der VM genug RAM angemeldet ist)

                          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 -

                          V 1 Antwort Letzte Antwort
                          0
                          • V Videonisse

                            @paul53 Works like a charm! Nochmals, viele viele Danke! :-)

                            Ich habe letzen Tage Probleme javascript.js und hatte zb error: "JavaScript heap out of memory"

                            Kann die Ursache den Code "on(idJSON, function (dp) {" zusammen mit Blockly gewesen sein?

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #13

                            @videonisse sagte: Kann die Ursache den Code "on(idJSON, function (dp) {" zusammen mit Blockly gewesen sein?

                            Ja, da der Trigger "on(idJSON, function (dp) {" innerhalb des Blockly-Triggers im Laufe der Zeit zu sehr vielen Trigger-Ereignissen führt.

                            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 Antwort Letzte Antwort
                            0
                            • HomoranH Homoran

                              @videonisse sagte in Aus JSON 136 Datenpunkte erzeugen:

                              JavaScript heap out of memory

                              gilt deine Signatur noch?

                              ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM)

                              da solltest du eigentlich genug RAM haben (wenn das auf einem PC läuft und in der VM genug RAM angemeldet ist)

                              V Offline
                              V Offline
                              Videonisse
                              schrieb am zuletzt editiert von
                              #14

                              @homoran Ja, ich habe normale weise 60% frei von 2GB ram. Aber mit die letzte Code Änderung von @paul53 bleibt javascript.js auf ~245MB

                              Alles ist jetzt stabil und keine Fehler in log.

                              ioBroker v3.3.18, Debian 10 Buster 64-bit (Vmware 6.5 VM), Node.js: v12.22.6, NPM: 6.14.15
                              Most important Device Adapters: KNX, Trådfri, Homekit/Yahka

                              HomoranH 1 Antwort Letzte Antwort
                              0
                              • V Videonisse

                                @homoran Ja, ich habe normale weise 60% frei von 2GB ram. Aber mit die letzte Code Änderung von @paul53 bleibt javascript.js auf ~245MB

                                Alles ist jetzt stabil und keine Fehler in log.

                                HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #15

                                @videonisse sagte in Aus JSON 136 Datenpunkte erzeugen:

                                ich habe normale weise 60% frei von 2GB ram.

                                das ist unter Linux nicht normal!
                                www.linuxatemyram.com

                                @videonisse sagte in Aus JSON 136 Datenpunkte erzeugen:

                                bleibt javascript.js auf ~245MB

                                meine beiden Instanzen haben 160 und 180 MB und ich habe nicht viel/aufwändiges

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

                                446

                                Online

                                32.4k

                                Benutzer

                                81.4k

                                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