Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Differenz zwischen zwei Zahlen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    246

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

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

Differenz zwischen zwei Zahlen

Scheduled Pinned Locked Moved Blockly
15 Posts 5 Posters 1.2k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D deta

    @Asgothian Ahm..
    Was ich sagen kann, das alle Datenfelder Zahl sind also Numerisch sind.
    Den Rest, versteh ich gerade nicht.
    So sehen die Felder aus:
    d258f9c1-6173-4daa-840c-4e16db6cd042-grafik.png
    Das Feld Differenz wird nur nicht gerechnet.

    haselchenH Offline
    haselchenH Offline
    haselchen
    Most Active
    wrote on last edited by haselchen
    #5

    @deta

    Versuch mal im Blockly den Block STEUERE anstatt Aktualisiere.

    Wenn das noch nicht klappt , extrahiere mal den Differenz Block.
    Sprich, mach einen eigenen Block draus.

    a10d1458-d792-4dfd-84ad-814c088f592e-grafik.png

    Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

    1 Reply Last reply
    0
    • D deta

      @Asgothian Ahm..
      Was ich sagen kann, das alle Datenfelder Zahl sind also Numerisch sind.
      Den Rest, versteh ich gerade nicht.
      So sehen die Felder aus:
      d258f9c1-6173-4daa-840c-4e16db6cd042-grafik.png
      Das Feld Differenz wird nur nicht gerechnet.

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #6

      @deta Wie sieht denn dein aktuelles Blockly vollständig aus?

      kein Support per PN! - Fragen im Forum stellen -
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Reply Last reply
      0
      • D deta

        @Asgothian Ahm..
        Was ich sagen kann, das alle Datenfelder Zahl sind also Numerisch sind.
        Den Rest, versteh ich gerade nicht.
        So sehen die Felder aus:
        d258f9c1-6173-4daa-840c-4e16db6cd042-grafik.png
        Das Feld Differenz wird nur nicht gerechnet.

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        wrote on last edited by Asgothian
        #7

        @deta

        Nochmal langsam.

        Du machst, nacheinander:

        setze Wert A auf Wert B
        Setze Wert B auf Wert C
        Setze Wert D auf Wert A - Wert B

        Allerdings kann es sein das die Befehle Zeit brauchen, sprich der 3. Befehl wird ausgeführt bevor der 2. Befehl abgeschlossen ist.

        Dann kommt in der Berechnung immer 0 heraus.

        Deswegen macht es Sinn sich erst alle Werte zu holen, und dann alle Werte zu setzen:

        Screen Shot 2020-12-02 at 17.59.51 .png

        Natürlich musst di die korrekten Objekt ID;s auswählen, die hab ich nicht.

        Das mit dem Timeout geht auch, ist aber nicht so gut. Es umgeht das eigentliche Problem des asynchronen setzen und holen von Werten.

        Es ist durchaus sinnvoll in einem Skript das holen und schreiben von Werten voneinander zu trennen, insbesondere wenn ein Wert berücksichtgit werden soll nachdem er geschrieben wurde.

        A.

        Nachtrag: Um zu verstehen kannst du mal das folgende Skript laufen lassen (du musst natürlich einen geeigneten Datenpunkt anlegen und eintragen:

        Screen Shot 2020-12-02 at 18.39.26 .png

        Hinter dem Spoiler zum Import. Ist interessant.

        <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="NSs9tAzL,]qDbm!s{47o" x="137.6845703125" y="-187">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id=")ri4[F:L*.A%:k|{|e1*">
              <field name="oid">0_userdata.0.AsyncTest1</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="debug" id="?od46a0r4Uvv!,(:-7(^">
              <field name="Severity">warn</field>
              <value name="TEXT">
                <shadow type="text">
                  <field name="TEXT">Loop </field>
                </shadow>
                <block type="text_join" id="RaM-{2uRxn37x-ZQSTYA">
                  <mutation items="2"></mutation>
                  <value name="ADD0">
                    <block type="text" id="DEvLG8*E2$SN.I3V)[,U">
                      <field name="TEXT">Trigger: </field>
                    </block>
                  </value>
                  <value name="ADD1">
                    <block type="on_source" id="h;7|yrCrS?5P,-D%tm6_">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                </block>
              </value>
            </block>
          </statement>
        </block>
        

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        D 2 Replies Last reply
        0
        • AsgothianA Asgothian

          @deta

          Nochmal langsam.

          Du machst, nacheinander:

          setze Wert A auf Wert B
          Setze Wert B auf Wert C
          Setze Wert D auf Wert A - Wert B

          Allerdings kann es sein das die Befehle Zeit brauchen, sprich der 3. Befehl wird ausgeführt bevor der 2. Befehl abgeschlossen ist.

          Dann kommt in der Berechnung immer 0 heraus.

          Deswegen macht es Sinn sich erst alle Werte zu holen, und dann alle Werte zu setzen:

          Screen Shot 2020-12-02 at 17.59.51 .png

          Natürlich musst di die korrekten Objekt ID;s auswählen, die hab ich nicht.

          Das mit dem Timeout geht auch, ist aber nicht so gut. Es umgeht das eigentliche Problem des asynchronen setzen und holen von Werten.

          Es ist durchaus sinnvoll in einem Skript das holen und schreiben von Werten voneinander zu trennen, insbesondere wenn ein Wert berücksichtgit werden soll nachdem er geschrieben wurde.

          A.

          Nachtrag: Um zu verstehen kannst du mal das folgende Skript laufen lassen (du musst natürlich einen geeigneten Datenpunkt anlegen und eintragen:

          Screen Shot 2020-12-02 at 18.39.26 .png

          Hinter dem Spoiler zum Import. Ist interessant.

          <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="NSs9tAzL,]qDbm!s{47o" x="137.6845703125" y="-187">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id=")ri4[F:L*.A%:k|{|e1*">
                <field name="oid">0_userdata.0.AsyncTest1</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="debug" id="?od46a0r4Uvv!,(:-7(^">
                <field name="Severity">warn</field>
                <value name="TEXT">
                  <shadow type="text">
                    <field name="TEXT">Loop </field>
                  </shadow>
                  <block type="text_join" id="RaM-{2uRxn37x-ZQSTYA">
                    <mutation items="2"></mutation>
                    <value name="ADD0">
                      <block type="text" id="DEvLG8*E2$SN.I3V)[,U">
                        <field name="TEXT">Trigger: </field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="on_source" id="h;7|yrCrS?5P,-D%tm6_">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </statement>
          </block>
          

          D Offline
          D Offline
          deta
          Most Active
          wrote on last edited by
          #8

          @Asgothian Werde es später mal probieren!
          Wichtig ist nur der Wert A ist bekannt, also Region_Oldenburg_lastDay_kompl ist bekannt.
          Der Timer Tigger geht immer um 0 Uhr.
          Soll um 0 Uhr den Wert von Region_Oldenburg_lastDay_kompl kopieren zu Region_Oldenburg_bevorlastDay_kompl.
          So das man den Wert von Gestern und Vorgestern hat.
          Der Wert Region_Oldenburg_lastDay_komplett ist ja jeden Tag anders.
          Um jetzt zu sehen, was für eine Differenz von Vorgstern zu Gestern gewesen ist, soll der Wert dan den Wert Region_Oldenburg_div_vortag geschrieben werden. So man sehen, ob es weniger geworden sind oder mehr.
          Das ist der Hintergedanke.

          AsgothianA 1 Reply Last reply
          0
          • D deta

            @Asgothian Werde es später mal probieren!
            Wichtig ist nur der Wert A ist bekannt, also Region_Oldenburg_lastDay_kompl ist bekannt.
            Der Timer Tigger geht immer um 0 Uhr.
            Soll um 0 Uhr den Wert von Region_Oldenburg_lastDay_kompl kopieren zu Region_Oldenburg_bevorlastDay_kompl.
            So das man den Wert von Gestern und Vorgestern hat.
            Der Wert Region_Oldenburg_lastDay_komplett ist ja jeden Tag anders.
            Um jetzt zu sehen, was für eine Differenz von Vorgstern zu Gestern gewesen ist, soll der Wert dan den Wert Region_Oldenburg_div_vortag geschrieben werden. So man sehen, ob es weniger geworden sind oder mehr.
            Das ist der Hintergedanke.

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            wrote on last edited by
            #9

            @deta

            Die Idee ist schon gut, und sollte so auch funktionieren. Du fällst halt wegen der asynchronität auf die Nase.

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            1 Reply Last reply
            0
            • AsgothianA Asgothian

              @deta

              Nochmal langsam.

              Du machst, nacheinander:

              setze Wert A auf Wert B
              Setze Wert B auf Wert C
              Setze Wert D auf Wert A - Wert B

              Allerdings kann es sein das die Befehle Zeit brauchen, sprich der 3. Befehl wird ausgeführt bevor der 2. Befehl abgeschlossen ist.

              Dann kommt in der Berechnung immer 0 heraus.

              Deswegen macht es Sinn sich erst alle Werte zu holen, und dann alle Werte zu setzen:

              Screen Shot 2020-12-02 at 17.59.51 .png

              Natürlich musst di die korrekten Objekt ID;s auswählen, die hab ich nicht.

              Das mit dem Timeout geht auch, ist aber nicht so gut. Es umgeht das eigentliche Problem des asynchronen setzen und holen von Werten.

              Es ist durchaus sinnvoll in einem Skript das holen und schreiben von Werten voneinander zu trennen, insbesondere wenn ein Wert berücksichtgit werden soll nachdem er geschrieben wurde.

              A.

              Nachtrag: Um zu verstehen kannst du mal das folgende Skript laufen lassen (du musst natürlich einen geeigneten Datenpunkt anlegen und eintragen:

              Screen Shot 2020-12-02 at 18.39.26 .png

              Hinter dem Spoiler zum Import. Ist interessant.

              <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="NSs9tAzL,]qDbm!s{47o" x="137.6845703125" y="-187">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id=")ri4[F:L*.A%:k|{|e1*">
                    <field name="oid">0_userdata.0.AsyncTest1</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="debug" id="?od46a0r4Uvv!,(:-7(^">
                    <field name="Severity">warn</field>
                    <value name="TEXT">
                      <shadow type="text">
                        <field name="TEXT">Loop </field>
                      </shadow>
                      <block type="text_join" id="RaM-{2uRxn37x-ZQSTYA">
                        <mutation items="2"></mutation>
                        <value name="ADD0">
                          <block type="text" id="DEvLG8*E2$SN.I3V)[,U">
                            <field name="TEXT">Trigger: </field>
                          </block>
                        </value>
                        <value name="ADD1">
                          <block type="on_source" id="h;7|yrCrS?5P,-D%tm6_">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </statement>
              </block>
              

              D Offline
              D Offline
              deta
              Most Active
              wrote on last edited by
              #10

              @Asgothian Den Block finde ich nicht
              d7490ff3-f21f-4703-9770-8ca605451e6f-grafik.png
              Wo kommt der her? Wird denke in deutsch "setze xxx zu"

              AsgothianA 1 Reply Last reply
              0
              • D deta

                @Asgothian Den Block finde ich nicht
                d7490ff3-f21f-4703-9770-8ca605451e6f-grafik.png
                Wo kommt der her? Wird denke in deutsch "setze xxx zu"

                AsgothianA Offline
                AsgothianA Offline
                Asgothian
                Developer
                wrote on last edited by
                #11

                @deta

                Aus dem Bereich "variablen". Hier musst du zunächst eine Variable definieren, und dann gibt es einen entsprechenden Baustein.

                Auf Deutsch hab ich das leider nicht, aber zum Importieren (ist aber aus einem anderen Skript):

                <block xmlns="https://developers.google.com/blockly/xml" type="variables_set" id="dbuf{[QT/[AC[X2IbpxA" x="163" y="713">
                  <field name="VAR" id="]ugPd]@N`!/,J-IXV(,g">LastTime</field>
                  <value name="VALUE">
                    <block type="time_get" id="M]5#*JOU)lUL8*`9[j90">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                      <field name="OPTION">sid</field>
                    </block>
                  </value>
                </block>
                

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                D 2 Replies Last reply
                0
                • AsgothianA Asgothian

                  @deta

                  Aus dem Bereich "variablen". Hier musst du zunächst eine Variable definieren, und dann gibt es einen entsprechenden Baustein.

                  Auf Deutsch hab ich das leider nicht, aber zum Importieren (ist aber aus einem anderen Skript):

                  <block xmlns="https://developers.google.com/blockly/xml" type="variables_set" id="dbuf{[QT/[AC[X2IbpxA" x="163" y="713">
                    <field name="VAR" id="]ugPd]@N`!/,J-IXV(,g">LastTime</field>
                    <value name="VALUE">
                      <block type="time_get" id="M]5#*JOU)lUL8*`9[j90">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                        <field name="OPTION">sid</field>
                      </block>
                    </value>
                  </block>
                  
                  D Offline
                  D Offline
                  deta
                  Most Active
                  wrote on last edited by
                  #12

                  @Asgothian hat erst mal alles geklappt. ob es funktioniert, werde ich morgen früh sehen.
                  Werde berichten.
                  Danke bis dahin

                  1 Reply Last reply
                  0
                  • AsgothianA Asgothian

                    @deta

                    Aus dem Bereich "variablen". Hier musst du zunächst eine Variable definieren, und dann gibt es einen entsprechenden Baustein.

                    Auf Deutsch hab ich das leider nicht, aber zum Importieren (ist aber aus einem anderen Skript):

                    <block xmlns="https://developers.google.com/blockly/xml" type="variables_set" id="dbuf{[QT/[AC[X2IbpxA" x="163" y="713">
                      <field name="VAR" id="]ugPd]@N`!/,J-IXV(,g">LastTime</field>
                      <value name="VALUE">
                        <block type="time_get" id="M]5#*JOU)lUL8*`9[j90">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                          <field name="OPTION">sid</field>
                        </block>
                      </value>
                    </block>
                    
                    D Offline
                    D Offline
                    deta
                    Most Active
                    wrote on last edited by deta
                    #13

                    @Asgothian
                    Was mir gerade auffällt ist, jetzt wird der Wert Gestern ja noch auf Vorgstern kopiert.
                    Das fehlt doch noch oder?
                    NACHTRAG: Doch macht er... Mit dem steuere ....setzt er die Objekt Felder

                    28164017-1438-4c75-8e95-c3e001c3fb01-grafik.png

                    paul53P 1 Reply Last reply
                    0
                    • D deta

                      @Asgothian
                      Was mir gerade auffällt ist, jetzt wird der Wert Gestern ja noch auf Vorgstern kopiert.
                      Das fehlt doch noch oder?
                      NACHTRAG: Doch macht er... Mit dem steuere ....setzt er die Objekt Felder

                      28164017-1438-4c75-8e95-c3e001c3fb01-grafik.png

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #14

                      @deta
                      Der Exponent ^ ist der richtige Operator ?

                      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

                      D 1 Reply Last reply
                      0
                      • paul53P paul53

                        @deta
                        Der Exponent ^ ist der richtige Operator ?

                        D Offline
                        D Offline
                        deta
                        Most Active
                        wrote on last edited by deta
                        #15

                        @paul53 sagte in Differenz zwischen zwei Zahlen:

                        @deta
                        Der Exponent ^ ist der richtige Operator ?

                        Mh, es soll die Differenz der Beiden Tage ausgerechnet werden.
                        Hab jetzt mal - eingetragen.

                        Es kann ja höher oder weniger werden.

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        364

                        Online

                        32.7k

                        Users

                        82.5k

                        Topics

                        1.3m

                        Posts
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Home
                        • Recent
                        • Tags
                        • Unread 0
                        • Categories
                        • Unreplied
                        • Popular
                        • GitHub
                        • Docu
                        • Hilfe