Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Werte aus JSON [1,2,3,4,5]addieren?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst]Werte aus JSON [1,2,3,4,5]addieren?

    This topic has been deleted. Only users with topic management privileges can see it.
    • icebear
      icebear last edited by icebear

      Hallo, kann mir vielleicht nochmal jemand auf die Sprünge helfen?

      Ich schreibe mehrere Werte in JSON-Array's um diese dann in einem Felxchart darzustellen, das funktioniert auch super. Die Werte werden mittels eines Script für jeden Tag an dem ich lade in die Arrays geschrieben, aufgegliedert nach gesamt, Netzanteil und PV-Anteil, an den Tagen wo nicht geladen wird, wird '0' eingetragen. das ganze sieht dann so aus:

      CL1.png

      die DP sehen so aus:

      {
        "common": {
          "name": "sessionEnergyNet",
          "desc": "Strom aus dem Netz",
          "type": "json",
          "role": "state",
          "unit": "KWh"
        },
        "native": {},
        "type": "state",
        "_id": "0_userdata.0.CarLoad.Monatstabellen.2025.Maerz.sessionEnergyNet",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        },
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1742219881144
      }
      

      und das JSON so:

      [ 0,0,5.97,0,0,0,0,4.92,0,0,0,0,0,0,0,8.57,0,11.25,0,0,0,0,0,0,0,0,13.81,0,0,0]
      

      Wie kann ich jetzt die Werte mit einem Script (js oder Blockly ist egal) addieren und in einen neuen DP (z.B. Gesamt) schreiben?

      paul53 mickym 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @icebear last edited by paul53

        @icebear sagte: Werte mit einem Script (js oder Blockly ist egal) addieren und in einen neuen DP (z.B. Gesamt) schreiben?

        Dafür gibt es einen Mathe-Block:

        Blockly_temp.JPG

        Eine Javascript-Version:

        schedule('55 59 23 * * *', function() {
            const date = formatDate(new Date(), 'YYYY.OO', 'de');
            const idJson = '0_userdata.0.CarLoad.Monatstabellen.' + date + '.sessionEnergyNet';
            const idSum  = '0_userdata.0.CarLoad.Monatstabellen.' + date + '.EnergyNet';
        
            const arr = JSON.parse(getState(idJson).val);
            let sum = 0;
            for(let val of arr) {
                sum += val;
            }
            setState(idSum, sum, true);
        });
        
        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @icebear last edited by mickym

          @icebear nimm einfach Jsonata und füge das Array in die $sum Funktion.

          Also das Array in eine Variable, dann ist der Jsonata Ausdruck einfach

          $sum($)
          
          1 Reply Last reply Reply Quote 0
          • icebear
            icebear last edited by

            @paul53
            @mickym

            Vielen Dank euch beiden, ich probier grad aus welche der drei Varianten ich nehmen soll, funktionieren tun aber alle.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            985
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            3
            4
            164
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo