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

                                          877
                                          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