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] simples addieren mehrerer Datenpunkte

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] simples addieren mehrerer Datenpunkte

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

      Für dich @paul53 vermutlich mal wieder ein klax!? Vielleicht kannst du mir bei meiner Blocklyschwäche etwas nachhelfen !?
      Ich werde noch verrückt!
      Ich bekomme es einfach nihct hin mehrere Datenpunkte in einem Blockly zu addieren und dann in einen neuen Datenpunkt zu schreiben.

      Ich habe 6 Datenpunkte die zusammen addiert werden sollen.
      Die dann in einen neuen Datenpunkt geschrieben werden sollen.
      Ich weiß nicht was ich falsch mache.
      Der Wert soll alle 60 min. aktualisiert werden. ( zum testen auf 10 sek. gestellt)
      monentan steht in den sechs zu addierenden Datenpunkten jeweils 2 ml drin
      sind bei mir 2 x 6 = 12 ml
      wenn ich das per rechnung addiere kommen da 30 ml raus. wenn ich die variablen raus nehme kommt noch mehr raus.
      Das habe ich bis jetzt:

      Bildschirmfoto 2020-01-02 um 11.37.30.png

      <xml xmlns="http://www.w3.org/1999/xhtml">
        <variables>
          <variable type="" id="cgnnxxh)eT1o%44nx(Hx">rechner_1</variable>
          <variable type="" id="6qmn$%%%nx;j/vlpVc1m">rechner_2</variable>
          <variable type="" id="[qSJi8.6hwEUNWl58lKH">rechner_3</variable>
          <variable type="" id="W17HGS=NncL3W}~%xQ/}">zusammen</variable>
        </variables>
        <block type="schedule" id="Lh%Gf6_E*)9oP!kwx^86" x="-37" y="89">
          <field name="SCHEDULE">*/10 * * * * *</field>
          <statement name="STATEMENT">
            <block type="variables_set" id="4OGA+?g@^P[@/Q-^RIM;">
              <field name="VAR" id="cgnnxxh)eT1o%44nx(Hx" variabletype="">rechner_1</field>
              <value name="VALUE">
                <block type="convert_tonumber" id="wVo`eP^h.i+kCy,xeb0M">
                  <value name="VALUE">
                    <block type="math_arithmetic" id="!g$[Ka65;eC(YRy+o0pA">
                      <field name="OP">ADD</field>
                      <value name="A">
                        <shadow type="math_number" id="P7SynfFPa!%j(K:|oiD;">
                          <field name="NUM">1</field>
                        </shadow>
                        <block type="get_value" id="ar|Q(vDQ$*Z)$uxM2$BX">
                          <field name="ATTR">val</field>
                          <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_1</field>
                        </block>
                      </value>
                      <value name="B">
                        <shadow type="math_number" id="g,{dP+z_dpXxv5US?LPL">
                          <field name="NUM">1</field>
                        </shadow>
                        <block type="get_value" id="+g:Ydl3tnRRw7l^/4TWJ">
                          <field name="ATTR">val</field>
                          <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_2</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="variables_set" id="|o[TFLT2N|YF?_9pqL9g">
                  <field name="VAR" id="6qmn$%%%nx;j/vlpVc1m" variabletype="">rechner_2</field>
                  <value name="VALUE">
                    <block type="convert_tonumber" id="P5Wi3`z?|psjzu)%IgyU">
                      <value name="VALUE">
                        <block type="math_arithmetic" id="|%~CM^FH?bz+6S=(rcw|">
                          <field name="OP">ADD</field>
                          <value name="A">
                            <shadow type="math_number" id=";`bAGo4T+bo:QWhS9%rp">
                              <field name="NUM">1</field>
                            </shadow>
                            <block type="get_value" id="yE~+M~V9eE#HA4pFIKq(">
                              <field name="ATTR">val</field>
                              <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_3</field>
                            </block>
                          </value>
                          <value name="B">
                            <shadow type="math_number" id="KRap?Hm4?82OZqbNbtPB">
                              <field name="NUM">1</field>
                            </shadow>
                            <block type="get_value" id="^7C|3Q3DvOf!P#}K|d`.">
                              <field name="ATTR">val</field>
                              <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_4</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="variables_set" id="@N}ui0_%Ysg(hydZAZc|">
                      <field name="VAR" id="[qSJi8.6hwEUNWl58lKH" variabletype="">rechner_3</field>
                      <value name="VALUE">
                        <block type="convert_tonumber" id="6MPcA-$|(8cd*6@NC%}O">
                          <value name="VALUE">
                            <block type="math_arithmetic" id="KbRWwL|KXCvTWbfiYyK1">
                              <field name="OP">ADD</field>
                              <value name="A">
                                <shadow type="math_number" id="L4;~cQW-T.@h@E3|G@2n">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="get_value" id="1Ge$-/%ud}@pUE6j_Yo9">
                                  <field name="ATTR">val</field>
                                  <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_6</field>
                                </block>
                              </value>
                              <value name="B">
                                <shadow type="math_number" id="I%buBwG)|dN=LU2A+2xp">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="get_value" id="p*or~S_}E!7?$gzZ=$H|">
                                  <field name="ATTR">val</field>
                                  <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_5</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="variables_set" id="tIJ@^I.UKv3fdK{lIV`,">
                          <field name="VAR" id="W17HGS=NncL3W}~%xQ/}" variabletype="">zusammen</field>
                          <value name="VALUE">
                            <block type="convert_tonumber" id="?s?w/M9kOyPeJf(3p*6[">
                              <value name="VALUE">
                                <block type="math_arithmetic" id="6^EU?2g#_M/J9oQl#,CK">
                                  <field name="OP">ADD</field>
                                  <value name="A">
                                    <shadow type="math_number" id="Tp5ul$8qj,F=9CoRRAWm">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="variables_get" id="~$7yX3?rs]glx]vlU[`~">
                                      <field name="VAR" id="cgnnxxh)eT1o%44nx(Hx" variabletype="">rechner_1</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="/urx=D2%,$A.a;W|AGL^">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="math_arithmetic" id="_|]=A2PcC~!4u!e_*)D:">
                                      <field name="OP">ADD</field>
                                      <value name="A">
                                        <shadow type="math_number" id="/bCOcRpKb3I@J1,LwVDo">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="variables_get" id="frq,^c.6M]p~zV|Ray/|">
                                          <field name="VAR" id="6qmn$%%%nx;j/vlpVc1m" variabletype="">rechner_2</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="I;;mR)K((kO@Exkifyz[">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="variables_get" id="h#lgBSo[8g,X]ncEmLs_">
                                          <field name="VAR" id="[qSJi8.6hwEUNWl58lKH" variabletype="">rechner_3</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="update" id="NIY}7$eJhTCdlbmj~Z?R">
                              <mutation delay_input="false"></mutation>
                              <field name="OID">Aqua_Control.0.Triton.Lösung_1.Verbrauch.Tagesdosierung</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="variables_get" id="HS}Qa#PJ4fOz$ri=hTS@">
                                  <field name="VAR" id="W17HGS=NncL3W}~%xQ/}" variabletype="">zusammen</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Aphofis last edited by paul53

        @Aphofis
        Wenn die Datenpunkte keine Zahlen enthalten, muss die Wandlung nach Zahl für jeden Wert erfolgen. Du verkettest erst 2 Strings und wandelst dann das Ergebnis in eine Zahl, was keine Addition ist.

        Aphofis 1 Reply Last reply Reply Quote 1
        • Aphofis
          Aphofis @paul53 last edited by Aphofis

          @paul53
          Dei Datenpunkte sind als Zahl deklariert.
          wie werden denn dann die datenpunkte zusammengerechnet wenn nicht addieren?

          Bildschirmfoto 2020-01-02 um 11.59.20.png

          Da macht die steuerung dann 822 ml draus.

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

            @Aphofis sagte in:

            Dei Datenpunkte sind als Zahl deklariert.

            Das bedeutet nicht, dass sie auch wirklich eine Zahl enthalten. Prüfe es durch

            debug output Typ von Wert von Objekt ...
            
            Aphofis 1 Reply Last reply Reply Quote 0
            • Aphofis
              Aphofis @paul53 last edited by

              @paul53
              So ???

              Bildschirmfoto 2020-01-02 um 12.05.19.png

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

                @Aphofis sagte):

                So ???

                Nein, für jeden Ursprungswert, der addiert werden soll.

                Blockly_temp.JPG

                Aphofis 1 Reply Last reply Reply Quote 1
                • Aphofis
                  Aphofis @paul53 last edited by

                  @paul53

                  Dann kommt eine Ausgabe von:

                  javascript.0	2020-01-02 12:20:50.008	info	(865) script.js.Dosierpumpen.Lösung_1.Tagesdosierung_Lösung_1: number
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Aphofis last edited by paul53

                    @Aphofis sagte:

                    javascript.0 2020-01-02 12:20:50.008 info (865) script.js.Dosierpumpen.Lösung_1.Tagesdosierung_Lösung_1: number

                    Bei allen 6 Werten ist die Ausgabe: number ? Dann ist die Wandlung nach Zahl überflüssig und die Berechnung muss stimmen.

                    Aphofis 1 Reply Last reply Reply Quote 1
                    • Aphofis
                      Aphofis @paul53 last edited by

                      @paul53
                      OK! dann nehme ich nach Zahl raus!
                      nunr bekomme ich jetzt im LOG eine Fehlermeldung:

                      javascript.0	2020-01-02 12:29:20.015	warn	(865) at Timer.processTimers (timers.js:223:10)
                      javascript.0	2020-01-02 12:29:20.014	warn	(865) at listOnTimeout (timers.js:263:5)
                      javascript.0	2020-01-02 12:29:20.013	warn	(865) at tryOnTimeout (timers.js:300:5)
                      javascript.0	2020-01-02 12:29:20.011	warn	(865) at ontimeout (timers.js:436:11)
                      javascript.0	2020-01-02 12:29:20.010	warn	(865) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                      javascript.0	2020-01-02 12:29:20.009	warn	(865) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                      javascript.0	2020-01-02 12:29:20.008	warn	(865) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                      javascript.0	2020-01-02 12:29:20.007	warn	(865) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1279:34)
                      javascript.0	2020-01-02 12:29:20.005	warn	(865) at Object.<anonymous> (script.js.Dosierpumpen.Lösung_1.Tagesdosierung_Lösung_1:9:3)
                      javascript.0	2020-01-02 12:29:20.004	warn	(865) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20)
                      javascript.0	2020-01-02 12:29:20.002	warn	(865) You are assigning a string to the state "Aqua_Control.0.Triton.Lösung_1.Verbrauch.Tagesdosierung" which expects a number. Please fix your code to use a number or change the state type to string.
                      javascript.0	2020-01-02 12:29:10.027	warn	(865) at Timer.processTimers (timers.js:223:10)
                      javascript.0	2020-01-02 12:29:10.024	warn	(865) at listOnTimeout (timers.js:263:5)
                      javascript.0	2020-01-02 12:29:10.022	warn	(865) at tryOnTimeout (timers.js:300:5)
                      javascript.0	2020-01-02 12:29:10.020	warn	(865) at ontimeout (timers.js:436:11)
                      javascript.0	2020-01-02 12:29:10.018	warn	(865) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                      javascript.0	2020-01-02 12:29:10.016	warn	(865) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                      javascript.0	2020-01-02 12:29:10.014	warn	(865) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                      javascript.0	2020-01-02 12:29:10.012	warn	(865) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1279:34)
                      javascript.0	2020-01-02 12:29:10.010	warn	(865) at Object.<anonymous> (script.js.Dosierpumpen.Lösung_1.Tagesdosierung_Lösung_1:9:3)
                      javascript.0	2020-01-02 12:29:10.007	warn	(865) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20)
                      javascript.0	2020-01-02 12:29:10.004	warn	(865) You are assigning a string to the state "Aqua_Control.0.Triton.Lösung_1.Verbrauch.Tagesdosierung" which expects a number. Please fix your code to use a number or change the state type to string.
                      
                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Aphofis last edited by paul53

                        @Aphofis sagte:

                        im LOG eine Fehlermeldung:

                        Dann ist mind. ein Ursprungswert keine Zahl, sondern ein String. Hast Du alle 6 Werte mit "Typ von" geprüft ?

                        Aphofis 1 Reply Last reply Reply Quote 1
                        • Aphofis
                          Aphofis @paul53 last edited by Aphofis

                          @paul53
                          in einem Datenpunkt war noch ein Standardwert drin von 3 ml der da nix verloren hat! hab ich raus gelöscht.
                          Doch die Steuerung rechnet immer noch 822 ml aus.
                          Alle Datenpunkte geprüft, sind alle als Zahl erstellt und auch nix drin was da nix zu suchen hat.

                          Bildschirmfoto 2020-01-02 um 12.59.37.png
                          Bis auf die Datenpunkt Namen ist im RAW auch nix auffällig! Sehen auch alle gleich aus.

                          {
                            "from": "system.adapter.admin.1",
                            "user": "system.user.admin",
                            "ts": 1567993302050,
                            "common": {
                              "name": "Lösung_1_Faktor_1",
                              "role": "value",
                              "type": "number",
                              "desc": "Manuell erzeugt",
                              "unit": "ml",
                              "read": true,
                              "write": true,
                              "def": false
                            },
                            "native": {},
                            "acl": {
                              "object": 1632,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.admins",
                              "state": 1632
                            },
                            "_id": "Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_1",
                            "type": "state"
                          }
                          
                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Aphofis last edited by

                            @Aphofis sagte in simples addieren mehrerer Datenpunkte:

                            Sehen auch alle gleich aus.

                            Das hat nichts zu bedeuten, da man so nicht sieht, ob der Wert als Zahl oder als String enthalten ist. Nur die Prüfung mit "Typ von" zeigt, was tatsächlich enthalten ist. Zur Sicherheit solltes Du auf alle 6 Werte die Wandlung "nach Zahl" ausführen.

                            Aphofis 2 Replies Last reply Reply Quote 1
                            • Aphofis
                              Aphofis @paul53 last edited by

                              @paul53
                              ok i will try

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

                                @paul53
                                Also das einsetzen bei allen 6 Datenpunkten ergab das erwünschte Ergebnis.!
                                Vielen Dank

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                755
                                Online

                                31.9k
                                Users

                                80.3k
                                Topics

                                1.3m
                                Posts

                                blockly
                                2
                                14
                                3884
                                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