Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Summe über Liste mit enum.functions

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Summe über Liste mit enum.functions

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

      Hallo zusammen,

      für ein zu planendes "Balkonkraftwerk" wollte ich jetzt mal meine einzelnen Verbraucher analysieren.
      Hierfür wollte ich auch meine "Grundlast" berechnen.

      Bei bislang über 20 Geräten (Tendenz steigend) kam mir der Gedanke es über "enum.functions" zu versuchen.
      Also alle benötigten "states" in eine "functions" gepackt, aber mit meinem Blockly komme ich gerade nicht weiter:
      Test 1 - Blockly.png

      Die Liste wird so wie ich das sehe erstellt, aber die "Grundlast" komisch/falsch addiert:
      Test 1 - Log.png

      Zum Test habe ich mal vier Geräte "manuell" eingebunden:
      Test 2 - Blockly.png

      Hier wird für mich korrekt addiert:
      Test 2 - Log.png

      Hat jemand einen Tip für mich, oder gibt es gar schon etwas "fertiges", dass ich nur nicht gefunden habe?

      Vielen Dank im Voraus.
      Gruß
      Alchemi

      Hier noch die Blocklys in JS:


      var verbraucher, verbraucher_2, i, grundlast_2, grundlast;

      // Test 1: mit enum.functions
      on({ id: [].concat(Array.prototype.slice.apply($('stateid=*'))), change: 'ne' }, async (obj) => {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
      verbraucher = [];
      var i_list = Array.prototype.slice.apply($('stateid=*'));
      for (var i_index in i_list) {
      i = i_list[i_index];
      verbraucher.push([getState(i).val]);
      }
      grundlast = verbraucher.reduce(function(x, y) {return x + y;}, 0);
      console.info(('Verbraucher: ' + String(verbraucher)));
      console.info(('Grundlast: ' + String(grundlast)));
      });

      // Test 2: "manuell" mit 4 Objekten
      on({ id: [].concat(['sonoff.0.SD02_wz_Multimedia.ENERGY_Power']).concat(['sonoff.0.SD03_wz_Server.ENERGY_Power']).concat(['sonoff.0.SD09_ku_Spuelmaschine.ENERGY_Power']).concat(['sonoff.0.SD06_ku_Kuehlschrank.ENERGY_Power']), change: 'ne' }, async (obj) => {
      verbraucher_2 = [getState('sonoff.0.SD02_wz_Multimedia.ENERGY_Power').val, getState('sonoff.0.SD03_wz_Server.ENERGY_Power').val, getState('sonoff.0.SD09_ku_Spuelmaschine.ENERGY_Power').val, getState('sonoff.0.SD06_ku_Kuehlschrank.ENERGY_Power').val];
      grundlast_2 = verbraucher_2.reduce(function(x, y) {return x + y;}, 0);
      console.info(('Verbraucher 2: ' + String(verbraucher_2)));
      console.info(('Grundlast 2: ' + String(grundlast_2)));
      });

      //JTNDeG1sJxxxxxxxxxxxxxxx

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

        @alchemi sagte: komisch/falsch addiert:

        Entferne den Block "erzeuge Liste mit":

        Blockly_temp.JPG

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Alchemi last edited by

          @alchemi sagte: gibt es gar schon etwas "fertiges"

          Ohne den Umweg "Liste":

          Blockly_temp.JPG

          A 1 Reply Last reply Reply Quote 1
          • A
            Alchemi @paul53 last edited by

            Ein großes Danke an @paul53. Du bist (mal wieder) mein Blockly-Held!
            Funktioniert einwandfrei!
            Auf diese Lösung wäre ich nie gekommen!

            Vielen Dank!
            Gruß
            Alchemi

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

            Support us

            ioBroker
            Community Adapters
            Donate

            906
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            2
            4
            57
            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