Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Summe aus verschiedenen Datenpunkte

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Summe aus verschiedenen Datenpunkte

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

      Hallo zusammen,

      ich habe mehrere gosund welche mittels dem Adapter Sourceanalytix erfasst werden. Jetzt würde ich mir diese gerne aufsummiert anzeigen lassen. Habe Versucht dafür ein neues Skritp zu erstellen brauche aber etwas hilfe, bekomme es nicht zum laufen.

      var idSumme = 'javascript.0.Stromkosten.2020.Summe‘;
      {1}
      createState(idSumme,  { 
          name: 'Summe aller Verbraucher',
          unit: 'Euro’,
          type: 'number',
          def:  0,
          min: 0
      });
      on({id: /\.05_current_year$/,
          change: 'any'
      
      function(obj) {
          var a = getState(’sourceanalytix.0.sonoff__0__Wasserbett__ENERGY_Today.cost.05_current_year’).val,
              b = getState(’sourceanalytix.0.sonoff__0__PC_Tim__ENERGY_Today.cost.05_current_year’).val,
              c = getState(’sourceanalytix.0.sonoff__0__Tasmota_TV_Technik__ENERGY_Today.cost.05_current_year’).val,
              d = getState(’sourceanalytix.0.hm-rpc__0__NEQ0153678__2__ENERGY_COUNTER.cost.05_current_year’).val,
              e = getState(’sourceanalytix.0.hm-rpc__0__NEQ0153556__2__ENERGY_COUNTER.cost.05_current_year’).val,
              f = getState(’sourceanalytix.0.hm-rpc__0__MEQ0107335__2__ENERGY_COUNTER.cost.05_current_year’).val,
              g = getState(’jsourceanalytix.0.hm-rpc__0__LEQ0536791__2__ENERGY_COUNTER.cost.05_current_year’).val;
          var summe = a + b + c + d + e + f + g;
          setState(idSumme, summe);
      };
      

      Der Debug zeigt dabei:

      javascript.0	2020-05-27 13:48:12.705	error	(394) at processTicksAndRejections (internal/process/task_queues.js:97:5)
      javascript.0	2020-05-27 13:48:12.705	error	(394) at runMicrotasks (<anonymous>:null:null)
      javascript.0	2020-05-27 13:48:12.705	error	(394) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
      javascript.0	2020-05-27 13:48:12.705	error	(394) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
      javascript.0	2020-05-27 13:48:12.705	error	(394) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:580:17
      javascript.0	2020-05-27 13:48:12.705	error	(394) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1055:17
      javascript.0	2020-05-27 13:48:12.704	error	(394) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1464:17
      javascript.0	2020-05-27 13:48:12.704	error	(394) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1411:37)
      javascript.0	2020-05-27 13:48:12.704	error	(394) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1188:28)
      javascript.0	2020-05-27 13:48:12.704	error	(394) at Object.createScript (vm.js:263:10)
      javascript.0	2020-05-27 13:48:12.704	error	(394) at new Script (vm.js:88:7)
      javascript.0	2020-05-27 13:48:12.703	error	(394) SyntaxError: Invalid or unexpected token
      javascript.0	2020-05-27 13:48:12.703	error	(394) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      javascript.0	2020-05-27 13:48:12.703	error	(394) var idSumme = 'javascript.0.Stromkosten.2020.Summe‘;
      javascript.0	2020-05-27 13:48:12.703	error	(394) script.js.common.Test.Stromkosten_Gesamt compile failed: at script.js.common.Test.Stromkosten_Gesamt:1
      
      Glasfaser 1 Reply Last reply Reply Quote 0
      • Glasfaser
        Glasfaser @tigertim08 last edited by

        @tigertim08 sagte in Summe aus verschiedenen Datenpunkte:

        020.Summe‘;
        

        das Häkchen am Ende ist falsch ... ändere mal auf

        '
        
        1 Reply Last reply Reply Quote 0
        • tigertim08
          tigertim08 last edited by

          Danke, fehler bleibt leider weiterhin bestehen.

          harrym 1 Reply Last reply Reply Quote 0
          • harrym
            harrym @tigertim08 last edited by

            @tigertim08 du hast die "falschen" häkchen mehrfach drinnen .....

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @harrym last edited by

              @harrym
              und auch noch verschiedene 😉

              var idSumme = 'javascript.0.Stromkosten.2020.Summe‘;

              harrym 1 Reply Last reply Reply Quote 0
              • harrym
                harrym @Homoran last edited by

                @Homoran 👍 😊 schaut leider für beginner gleich aus ..... macht aber nen riesenunterschied .....

                1 Reply Last reply Reply Quote 0
                • tigertim08
                  tigertim08 last edited by

                  Danke, habe es überall geändert.

                  var idSumme = 'javascript.0.Stromkosten.2020.Summe';
                  {1}
                  createState(idSumme,  { 
                      name: 'Summe aller Verbraucher',
                      unit: '€’,
                      type: 'number',
                      def:  0,
                      min: 0
                  });
                  on({id: /\.05_current_year$/,
                      change: 'any'
                  
                  function(obj) {
                      var a = getState('sourceanalytix.0.sonoff__0__Wasserbett__ENERGY_Today.cost.05_current_year').val,
                          b = getState('sourceanalytix.0.sonoff__0__PC_Tim__ENERGY_Today.cost.05_current_year').val,
                          c = getState('sourceanalytix.0.sonoff__0__Tasmota_TV_Technik__ENERGY_Today.cost.05_current_year').val,
                          d = getState('sourceanalytix.0.hm-rpc__0__NEQ0153678__2__ENERGY_COUNTER.cost.05_current_year').val,
                          e = getState('sourceanalytix.0.hm-rpc__0__NEQ0153556__2__ENERGY_COUNTER.cost.05_current_year').val,
                          f = getState('sourceanalytix.0.hm-rpc__0__MEQ0107335__2__ENERGY_COUNTER.cost.05_current_year').val,
                          g = getState('sourceanalytix.0.hm-rpc__0__LEQ0536791__2__ENERGY_COUNTER.cost.05_current_year').val;
                      var summe = a + b + c + d + e + f + g;
                      setState(idSumme, summe);
                  };
                  

                  Habe ich beim String evtl. einen Fehler gemacht? 2020-05-27_16-43-06.png

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @tigertim08 last edited by Homoran

                    @tigertim08 Was ist denn jetzt das Problem?
                    Glaskugelmodus:

                    • fehler im Log?
                      • wahrscheinlich nicht mehr
                    • State wird nicht geschrieben?
                      • hast du unter javascript.0 nachgesehen?
                    1 Reply Last reply Reply Quote 0
                    • tigertim08
                      tigertim08 last edited by

                      klar ohne .log schwierig. Im .log fängt der Fehler mit compile failed an...

                      avascript.0	2020-05-27 18:48:25.617	error	(394) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                      javascript.0	2020-05-27 18:48:25.617	error	(394) at runMicrotasks (<anonymous>:null:null)
                      javascript.0	2020-05-27 18:48:25.616	error	(394) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
                      javascript.0	2020-05-27 18:48:25.616	error	(394) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                      javascript.0	2020-05-27 18:48:25.616	error	(394) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:580:17
                      javascript.0	2020-05-27 18:48:25.616	error	(394) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1055:17
                      javascript.0	2020-05-27 18:48:25.615	error	(394) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1464:17
                      javascript.0	2020-05-27 18:48:25.615	error	(394) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1411:37)
                      javascript.0	2020-05-27 18:48:25.614	error	(394) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1188:28)
                      javascript.0	2020-05-27 18:48:25.614	error	(394) at Object.createScript (vm.js:263:10)
                      javascript.0	2020-05-27 18:48:25.614	error	(394) at new Script (vm.js:88:7)
                      javascript.0	2020-05-27 18:48:25.614	error	(394) SyntaxError: Invalid or unexpected token
                      javascript.0	2020-05-27 18:48:25.613	error	(394) ^^^^
                      javascript.0	2020-05-27 18:48:25.613	error	(394) unit: '€’,
                      javascript.0	2020-05-27 18:48:25.612	error	at script.js.common.Test.Stromkosten_Gesamt:5
                      javascript.0	2020-05-27 18:48:25.612	error	(394) script.js.common.Test.Stromkosten_Gesamt compile failed:
                      javascript.0	2020-05-27 18:48:25.603	info	(394) Start javascript script.js.common.Test.Stromkosten_Gesamt
                      
                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @tigertim08 last edited by

                        @tigertim08 sagte:

                        unit: '€’

                        Falsches Zeichen hinter €.

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

                          @paul53 danke, Fehlermeldung compile failed besteht weiter

                          
                          javascript.0	2020-05-27 19:21:26.987	error	(394) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                          javascript.0	2020-05-27 19:21:26.986	error	(394) at runMicrotasks (<anonymous>:null:null)
                          javascript.0	2020-05-27 19:21:26.986	error	(394) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
                          javascript.0	2020-05-27 19:21:26.986	error	(394) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                          javascript.0	2020-05-27 19:21:26.986	error	(394) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:580:17
                          javascript.0	2020-05-27 19:21:26.986	error	(394) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1055:17
                          javascript.0	2020-05-27 19:21:26.986	error	(394) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1464:17
                          javascript.0	2020-05-27 19:21:26.985	error	(394) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1411:37)
                          javascript.0	2020-05-27 19:21:26.985	error	(394) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1188:28)
                          javascript.0	2020-05-27 19:21:26.985	error	(394) at Object.createScript (vm.js:263:10)
                          javascript.0	2020-05-27 19:21:26.985	error	(394) at new Script (vm.js:88:7)
                          javascript.0	2020-05-27 19:21:26.985	error	(394) SyntaxError: Unexpected token 'function'
                          javascript.0	2020-05-27 19:21:26.984	error	(394) ^^^^^^^^
                          javascript.0	2020-05-27 19:21:26.984	error	(394) function(obj) {
                          javascript.0	2020-05-27 19:21:26.984	error	at script.js.common.Test.Stromkosten_Gesamt:13
                          javascript.0	2020-05-27 19:21:26.984	error	(394) script.js.common.Test.Stromkosten_Gesamt compile failed:
                          javascript.0	2020-05-27 19:21:26.982	info	(394) Start javascript script.js.common.Test.Stromkosten_Gesamt
                          javascript.0	2020-05-27 19:21:25.461	info	(394) Stop script script.js.common.Test.Stromkosten_Gesamt
                          
                          
                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @tigertim08 last edited by paul53

                            @tigertim08 sagte:

                            compile failed besteht weiter

                            Es fehlen eine schließende geschweifte Klammer und ein Komma.

                            on({id: /\.05_current_year$/, change: 'any'}, function(obj) {
                            

                            und in Zeile 23 eine schließende runde Klammer.

                            });
                            
                            tigertim08 1 Reply Last reply Reply Quote 0
                            • tigertim08
                              tigertim08 @paul53 last edited by

                              @paul53 said in Summe aus verschiedenen Datenpunkte:

                              });

                              Super, Danke! Jetzt meckert er nur noch das ich einen string zu einem state assigne. Die Werte werden doch aber auch als State ausgegeben oder habe ich da einen Denkfehler?

                              javascript.0	2020-05-28 08:25:30.653	warn	(394) at processImmediate (internal/timers.js:456:21)
                              javascript.0	2020-05-28 08:25:30.653	warn	(394) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4851:37)
                              javascript.0	2020-05-28 08:25:30.653	warn	(394) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:450:25)
                              javascript.0	2020-05-28 08:25:30.652	warn	(394) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1051:38)
                              javascript.0	2020-05-28 08:25:30.652	warn	(394) at Object.<anonymous> (script.js.common.Test.Stromkosten_Gesamt:22:5)
                              javascript.0	2020-05-28 08:25:30.652	warn	(394) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1354:20)
                              javascript.0	2020-05-28 08:25:30.651	warn	(394) You are assigning a string to the state "javascript.0.Stromkosten.2020.Summe" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning mig
                              javascript.0	2020-05-28 08:25:30.651	info	(394) script.js.common.Test.Stromkosten_Gesamt: getState(id=sourceanalytix.0.hm-rpc__0__LEQ0536791__2__ENERGY_COUNTER.cost.05_current_year, timerId=undefined) => {"val":"1.88","ack":true,"ts":1590647
                              javascript.0	2020-05-28 08:25:30.651	info	(394) script.js.common.Test.Stromkosten_Gesamt: getState(id=sourceanalytix.0.hm-rpc__0__MEQ0107335__2__ENERGY_COUNTER.cost.05_current_year, timerId=undefined) => {"val":"5.22","ack":true,"ts":1590647
                              javascript.0	2020-05-28 08:25:30.650	info	(394) script.js.common.Test.Stromkosten_Gesamt: getState(id=sourceanalytix.0.hm-rpc__0__NEQ0153556__2__ENERGY_COUNTER.cost.05_current_year, timerId=undefined) => {"val":"0.00","ack":true,"ts":1590647
                              javascript.0	2020-05-28 08:25:30.650	info	(394) script.js.common.Test.Stromkosten_Gesamt: getState(id=sourceanalytix.0.hm-rpc__0__NEQ0153678__2__ENERGY_COUNTER.cost.05_current_year, timerId=undefined) => {"val":"1.53","ack":true,"ts":1590647
                              javascript.0	2020-05-28 08:25:30.650	info	(394) script.js.common.Test.Stromkosten_Gesamt: getState(id=sourceanalytix.0.sonoff__0__Tasmota_TV_Technik__ENERGY_Today.cost.05_current_year, timerId=undefined) => {"val":"0.00","ack":true,"ts":1590
                              javascript.0	2020-05-28 08:25:30.649	info	(394) script.js.common.Test.Stromkosten_Gesamt: getState(id=sourceanalytix.0.sonoff__0__PC_Tim__ENERGY_Today.cost.05_current_year, timerId=undefined) => {"val":"0.01","ack":true,"ts":1590647120353,"q
                              javascript.0	2020-05-28 08:25:30.649	info	(394) script.js.common.Test.Stromkosten_Gesamt: getState(id=sourceanalytix.0.sonoff__0__Wasserbett__ENERGY_Today.cost.05_current_year, timerId=undefined) => {"val":"0.01","ack":true,"ts":159064712735
                              javascript.0	2020-05-28 08:25:29.695	info	(394) script.js.common.Test.Stromkosten_Gesamt: registered 1 subscription and 0 schedules
                              javascript.0	2020-05-28 08:25:29.695	info	(394) script.js.common.Test.Stromkosten_Gesamt: subscribe: {"pattern":{"id":{},"change":"any","q":0},"name":"script.js.common.Test.Stromkosten_Gesamt"}
                              
                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @tigertim08 last edited by Homoran

                                @tigertim08 sagte in Summe aus verschiedenen Datenpunkte:

                                You are assigning a string to the state "javascript.0.Stromkosten.2020.Summe" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning mig

                                Dein Datenpunkt ist vom Typ "Logikwert"
                                Der muss "Zahl" sein

                                1 Reply Last reply Reply Quote 0
                                • tigertim08
                                  tigertim08 last edited by

                                  laut Datenpunkt ist er das. Habe ihn auch nochmal gelöscht und fom Skript anlegen lassen

                                  var idSumme = 'javascript.0.Stromkosten.2020.Summe';
                                  {1}
                                  createState(idSumme,  { 
                                      name: 'Summe aller Verbraucher',
                                      unit: '€',
                                      type: 'number',
                                      def:  0,
                                      min: 0
                                  });
                                  on({id: /\.05_current_year$/,
                                      change: 'any'},
                                  
                                  function(obj) {
                                      var a = getState('sourceanalytix.0.sonoff__0__Wasserbett__ENERGY_Today.cost.05_current_year').val,
                                          b = getState('sourceanalytix.0.sonoff__0__PC_Tim__ENERGY_Today.cost.05_current_year').val,
                                          c = getState('sourceanalytix.0.sonoff__0__Tasmota_TV_Technik__ENERGY_Today.cost.05_current_year').val,
                                          d = getState('sourceanalytix.0.hm-rpc__0__NEQ0153678__2__ENERGY_COUNTER.cost.05_current_year').val,
                                          e = getState('sourceanalytix.0.hm-rpc__0__NEQ0153556__2__ENERGY_COUNTER.cost.05_current_year').val,
                                          f = getState('sourceanalytix.0.hm-rpc__0__MEQ0107335__2__ENERGY_COUNTER.cost.05_current_year').val,
                                          g = getState('sourceanalytix.0.hm-rpc__0__LEQ0536791__2__ENERGY_COUNTER.cost.05_current_year').val;
                                      var summe = a + b + c + d + e + f + g;
                                      setState(idSumme, summe);
                                  });
                                  
                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @tigertim08 last edited by

                                    @tigertim08 sagte in Summe aus verschiedenen Datenpunkte:

                                    laut Datenpunkt ist er das.

                                    dann gilt wohl der erste Tei lder Meldung:

                                    You are assigning a string to the state "javascript.0.Stromkosten.2020.Summe" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning mig

                                    Also das Ergebnis nach Zahl wandeln

                                    1 Reply Last reply Reply Quote 0
                                    • tigertim08
                                      tigertim08 last edited by tigertim08

                                      Wie ändere ich das denn? Hatte die einzelnen Datenpunkte schon gecheckt, diese sind auch als "number" klassifiziert.

                                      2020-05-28_13-29-25.png

                                      Kann es an der Unit liegen? Also das die Unit dazu führt das es bei der Folgeverarbeitung ein String und keine Nummer mehr ist?

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @tigertim08 last edited by

                                        @tigertim08 sagte in Summe aus verschiedenen Datenpunkte:

                                        Hatte die einzelnen Datenpunkte schon gecheckt,

                                        nicht die datenpunkte!

                                        Die Variable im Skript scheint Typ String zu sein

                                        1 Reply Last reply Reply Quote 0
                                        • tigertim08
                                          tigertim08 last edited by tigertim08

                                          (gelöst) DANKE! Für die Unterstützung 🙂

                                          okay, also wenn ich den State umwandle sollte es gehen?

                                          var idSumme = 'javascript.0.Stromkosten.2020';
                                          {1}
                                          createState(idSumme,  { 
                                              name: 'Summe der Verbraucher',
                                              unit: '€',
                                              type: 'number',
                                              def:  0,
                                              min: 0
                                          });
                                          on({id: /\.05_current_year$/,
                                              change: 'any'},
                                          
                                          function(obj) {
                                              var a = parseFloat(getState('sourceanalytix.0.sonoff__0__Wasserbett__ENERGY_Today.cost.05_current_year').val),
                                                  b = parseFloat(getState('sourceanalytix.0.sonoff__0__PC_Tim__ENERGY_Today.cost.05_current_year').val),
                                                  c = parseFloat(getState('sourceanalytix.0.sonoff__0__Tasmota_TV_Technik__ENERGY_Today.cost.05_current_year').val),
                                                  d = parseFloat(getState('sourceanalytix.0.hm-rpc__0__NEQ0153678__2__ENERGY_COUNTER.cost.05_current_year').val),
                                                  e = parseFloat(getState('sourceanalytix.0.hm-rpc__0__NEQ0153556__2__ENERGY_COUNTER.cost.05_current_year').val),
                                                  f = parseFloat(getState('sourceanalytix.0.hm-rpc__0__MEQ0107335__2__ENERGY_COUNTER.cost.05_current_year').val),
                                                  g = parseFloat(getState('sourceanalytix.0.hm-rpc__0__LEQ0536791__2__ENERGY_COUNTER.cost.05_current_year').val);
                                              var summe = a + b + c + d + e + f + g;
                                              setState(idSumme, summe);
                                          });
                                          

                                          habe es mit parseFloat probiert allerdings bleibt jetzt der Datenpunkt leer. Warnmeldungen werden mir aber nicht mehr angezeit.

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            ticaki Developer @tigertim08 last edited by ticaki

                                            @tigertim08

                                            Werfe mal das parseFloat() raus und füge:

                                            log('a: '+a);
                                            log('b: '+b);
                                            log('c: '+c);
                                            log('d: '+d);
                                            log('e: '+e);
                                            log('f: '+f);
                                            log('g: '+g);
                                            

                                            nach Zeile 20 ein. Poste die Logeinträge. Denke mal das es ein Problem mit ".," oder Einheitenangaben ist.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            874
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            6
                                            20
                                            1147
                                            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