Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    432

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Differenz zwischen zwei Zahlen

Geplant Angeheftet Gesperrt Verschoben Blockly
15 Beiträge 5 Kommentatoren 1.2k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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 Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #6

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

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • 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
      schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antworten Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #12

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

                1 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @deta
                      Der Exponent ^ ist der richtige Operator ?

                      D Offline
                      D Offline
                      deta
                      Most Active
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      374

                      Online

                      32.6k

                      Benutzer

                      81.9k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe