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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] Summe über Liste mit enum.functions

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

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

Geplant Angeheftet Gesperrt Verschoben Blockly
4 Beiträge 2 Kommentatoren 199 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.
  • A Offline
    A Offline
    Alchemi
    schrieb am zuletzt editiert von Alchemi
    #1

    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

    paul53P 2 Antworten Letzte Antwort
    0
    • A 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

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

      @alchemi sagte: komisch/falsch addiert:

      Entferne den Block "erzeuge Liste mit":

      Blockly_temp.JPG

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

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

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

        Ohne den Umweg "Liste":

        Blockly_temp.JPG

        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

        A 1 Antwort Letzte Antwort
        1
        • paul53P paul53

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

          Ohne den Umweg "Liste":

          Blockly_temp.JPG

          A Offline
          A Offline
          Alchemi
          schrieb am zuletzt editiert von
          #4

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

          569

          Online

          32.7k

          Benutzer

          82.3k

          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