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. Werte auslesen und addieren / wie dann anzeigen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Werte auslesen und addieren / wie dann anzeigen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblocklynode-red
13 Beiträge 3 Kommentatoren 6.3k Aufrufe 1 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.
  • G Offline
    G Offline
    GTV
    schrieb am zuletzt editiert von
    #1

    Hallo ! Als blutiger Anfänger benötige ich mal euer Wissen um den Anfang beim erstellen von Scripten zu schaffen. Bei den Beispielen hier im Forum fehlt mir das nötige Knowhow das dann umzusetzen.

    Ausgangslage : Ich habe hier im Haus 6 sonoff POW2 Adapter am laufen. Jetzt möchte ich in einem Script die Täglichen kWh Werte z.b. "sonoff.0.AUDIO.ENERGY_Total" und sonoff.0.EDV.ENERGY_Total zusammen addieren und dann anzeigen lassen im VIS.

    Bitte bei euren Erklärungen Schritt für Schritt aufzeigen was wann warum zu tun ist. Wahrscheinlich zuerst die Werte auslesen und dann addieren.. aber wie ?

    Vielen dank für eure Mühe schon mal im Voraus !

    HomoranH paul53P 2 Antworten Letzte Antwort
    0
    • G GTV

      Hallo ! Als blutiger Anfänger benötige ich mal euer Wissen um den Anfang beim erstellen von Scripten zu schaffen. Bei den Beispielen hier im Forum fehlt mir das nötige Knowhow das dann umzusetzen.

      Ausgangslage : Ich habe hier im Haus 6 sonoff POW2 Adapter am laufen. Jetzt möchte ich in einem Script die Täglichen kWh Werte z.b. "sonoff.0.AUDIO.ENERGY_Total" und sonoff.0.EDV.ENERGY_Total zusammen addieren und dann anzeigen lassen im VIS.

      Bitte bei euren Erklärungen Schritt für Schritt aufzeigen was wann warum zu tun ist. Wahrscheinlich zuerst die Werte auslesen und dann addieren.. aber wie ?

      Vielen dank für eure Mühe schon mal im Voraus !

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

      @GTV
      Suchst du so etwas?

      https://forum.iobroker.net/topic/20966/addieren-von-3-objekten

      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
      • G Offline
        G Offline
        GTV
        schrieb am zuletzt editiert von
        #3

        Ganz ehrlich .... das verstehe ich "noch" nicht... da fehlt mir das Hintergrundwissen zu .

        Habe bei den Beispielen einen JS Sript gesehen.. der ist zumindest für mich logischer..

        Das man wie in VBA einen Recordset der Werte macht und dann einfach zusammen zählt.

        Wobei bei IOBorker man das dann in einen Datenpunkt schreiben muss ... glaube ich...

        1 Antwort Letzte Antwort
        0
        • G GTV

          Hallo ! Als blutiger Anfänger benötige ich mal euer Wissen um den Anfang beim erstellen von Scripten zu schaffen. Bei den Beispielen hier im Forum fehlt mir das nötige Knowhow das dann umzusetzen.

          Ausgangslage : Ich habe hier im Haus 6 sonoff POW2 Adapter am laufen. Jetzt möchte ich in einem Script die Täglichen kWh Werte z.b. "sonoff.0.AUDIO.ENERGY_Total" und sonoff.0.EDV.ENERGY_Total zusammen addieren und dann anzeigen lassen im VIS.

          Bitte bei euren Erklärungen Schritt für Schritt aufzeigen was wann warum zu tun ist. Wahrscheinlich zuerst die Werte auslesen und dann addieren.. aber wie ?

          Vielen dank für eure Mühe schon mal im Voraus !

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

          @GTV Vorschlag als Javascript:

          const idAudio = 'sonoff.0.AUDIO.ENERGY_Total';
          const idEdv   = 'sonoff.0.EDV.ENERGY_Total';
          const idSumme = 'ENERGY_Total.Summe';
          
          // Variablen für zu addierende Werte deklarieren und für Skriptstart initialisieren
          var audio = getState(idAudio).val;
          var edv   = getState(idEdv).val;
          
          // Datenpunkt für Summe erzeugen
          createState(idSumme, 0, {type: 'number', unit: 'kWh'});
          
          function summe() {
             setState(idSumme, audio + edv, true); // Summe in Datenpunkt schreiben
          }
          
          setTimeout(summe, 200); // Skriptstart
          
          // Reaktion bei Wertänderung
          on(idAudio, function(dp) {
             audio = dp.state.val;
             summe();
          });
          on(idEdv, function(dp) {
             edv = dp.state.val;
             summe();
          });
          

          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
          • G Offline
            G Offline
            GTV
            schrieb am zuletzt editiert von
            #5

            Ja sowas verstehe ich schon ehr : ) Blöde Frage den code als Common oder Global anlegen ? Und wie stelle ich das Ergebniss dann im VIS da ?

            paul53P 1 Antwort Letzte Antwort
            0
            • G GTV

              Ja sowas verstehe ich schon ehr : ) Blöde Frage den code als Common oder Global anlegen ? Und wie stelle ich das Ergebniss dann im VIS da ?

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

              @GTV sagte:

              code als Common oder Global

              Das Skript unter der Gruppe common oder unter einer selbst erstellten Gruppe erstellen. Auf keinen Fall unter der Gruppe global !!

              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
              • G Offline
                G Offline
                GTV
                schrieb am zuletzt editiert von
                #7
                const idAudio = 'sonoff.0.AUDIO.ENERGY_Total';
                
                const idEdv  = 'sonoff.0.EDV.ENERGY_Total';
                
                const idHZ  = 'sonoff.0.HZ.ENERGY_Total';
                
                const idSumme = 'ENERGY_Total.Summe';
                
                
                // Variablen für zu addierende Werte deklarieren und für Skriptstart initialisieren
                
                var audio = getState(idAudio).val;
                
                var edv    = getState(idEdv).val;
                
                var hz    = getState(idHZ).val;
                
                
                // Datenpunkt für Summe erzeugen
                
                createState(idSumme, 0, {type: 'number', unit: 'kWh'});
                
                function summe() {
                
                   setState(idSumme, audio + edv + hz, true); // Summe in Datenpunkt schreiben
                
                }
                
                 
                
                summe(); // Skriptstart
                
                 
                
                // Reaktion bei Wertänderung
                
                on(idAudio, function(dp) {
                
                   audio = dp.state.val;
                
                   summe();
                
                });
                
                on(idEdv, function(dp) {
                
                   edv = dp.state.val;
                
                   summe();
                
                });
                

                Soweit habe ich das jetzt ... In Zeile 25 habe ich nach True eine ) gesetzt. beim starten bekomme ich noch

                18:36:25.109	error	javascript.0 script.js.common.KWH1 compile failed: at script.js.common.KWH1:25
                

                Kannst du da bitte noch mal rauf schauen...

                1 Antwort Letzte Antwort
                0
                • G Offline
                  G Offline
                  GTV
                  schrieb am zuletzt editiert von
                  #8

                  Sorry zeile 25 ) an falscher Stelle gesetzt.

                  Jetzt kommt noch eine Meldung

                  18:44:17.263	error	javascript.0 script.js.common.KWH1 compile failed: at script.js.common.KWH1:22
                  

                  Da steht ja aber gar nichts drin..

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    Mit Zeile 22 kann ich auch nichts anfangen. Da Du setTimeout() beim Skriptstart weggelassen hast, bringt setState() beim allerersten Skriptstart einen Fehler, da der zugehörige Datenpunkt noch nicht existiert (dauert etwas).

                    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
                    • G GTV

                      Sorry zeile 25 ) an falscher Stelle gesetzt.

                      Jetzt kommt noch eine Meldung

                      18:44:17.263	error	javascript.0 script.js.common.KWH1 compile failed: at script.js.common.KWH1:22
                      

                      Da steht ja aber gar nichts drin..

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

                      @GTV Habe Dein Skript getestet: Compiler-Fehler kommen bei mir nicht. Lösche mal die überflüssigen Leerzeilen.

                      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

                      G 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @GTV Habe Dein Skript getestet: Compiler-Fehler kommen bei mir nicht. Lösche mal die überflüssigen Leerzeilen.

                        G Offline
                        G Offline
                        GTV
                        schrieb am zuletzt editiert von
                        #11

                        @paul53 Habe jetzt mal alles rausgeworfen.. es kommen zwar immer noch Error Meldungen aber der Code läuft..

                        const idAudio = 'sonoff.0.AUDIO.ENERGY_Total';
                        const idEdv   = 'sonoff.0.EDV.ENERGY_Total';
                        const idHz    = 'sonoff.0.HZ.ENERGY_Total';
                        const idKh    = 'sonoff.0.Kuehlschrank.ENERGY_Total';
                        const idSumme = 'ENERGY_Total.Summe';
                        var audio = getState(idAudio).val;
                        var edv   = getState(idEdv).val;
                        var hz    = getState(idHz).val;
                        var kh    = getState(idKh).val;
                        createState(idSumme, 0, {type: 'number', unit: 'kWh'});
                        var sum = audio + edv + hz + kh
                        function summe() {setState(idSumme, sum,true);}
                        setTimeout(summe, 200);
                        on(idAudio, function(dp) {
                           audio = dp.state.val;
                           summe();
                        });
                        on(idEdv, function(dp) {
                           edv = dp.state.val;
                           summe();
                        });
                        on(idHz, function(dp) {
                           hz = dp.state.val;
                           summe();
                        });
                        on(idKh, function(dp) {
                           kh = dp.state.val;
                           summe();
                        });
                        

                        Vielen Dank für deine Hilfe !!!

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • G GTV

                          @paul53 Habe jetzt mal alles rausgeworfen.. es kommen zwar immer noch Error Meldungen aber der Code läuft..

                          const idAudio = 'sonoff.0.AUDIO.ENERGY_Total';
                          const idEdv   = 'sonoff.0.EDV.ENERGY_Total';
                          const idHz    = 'sonoff.0.HZ.ENERGY_Total';
                          const idKh    = 'sonoff.0.Kuehlschrank.ENERGY_Total';
                          const idSumme = 'ENERGY_Total.Summe';
                          var audio = getState(idAudio).val;
                          var edv   = getState(idEdv).val;
                          var hz    = getState(idHz).val;
                          var kh    = getState(idKh).val;
                          createState(idSumme, 0, {type: 'number', unit: 'kWh'});
                          var sum = audio + edv + hz + kh
                          function summe() {setState(idSumme, sum,true);}
                          setTimeout(summe, 200);
                          on(idAudio, function(dp) {
                             audio = dp.state.val;
                             summe();
                          });
                          on(idEdv, function(dp) {
                             edv = dp.state.val;
                             summe();
                          });
                          on(idHz, function(dp) {
                             hz = dp.state.val;
                             summe();
                          });
                          on(idKh, function(dp) {
                             kh = dp.state.val;
                             summe();
                          });
                          

                          Vielen Dank für deine Hilfe !!!

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

                          @GTV Die Summenbildung funktioniert so nur einmal bei Skriptstart. Richtig:

                          function summe() {
                             var sum = audio + edv + hz + kh;
                             setState(idSumme, sum, true);
                          }
                          

                          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

                          G 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @GTV Die Summenbildung funktioniert so nur einmal bei Skriptstart. Richtig:

                            function summe() {
                               var sum = audio + edv + hz + kh;
                               setState(idSumme, sum, true);
                            }
                            
                            G Offline
                            G Offline
                            GTV
                            schrieb am zuletzt editiert von
                            #13

                            @paul53 Danke ! Schon geändert. Muss noch viel lernen bei JS.... ;-)

                            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

                            320

                            Online

                            32.6k

                            Benutzer

                            82.2k

                            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