Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Dauer rechnen

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Dauer rechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      frankyboy73 @Nicoloma last edited by frankyboy73

      @nicoloma Hi, wenn ich das richtig sehe bekommst du doch Millisekunden raus. Dein Trigger ist letzte Änderung und du berechnest die aktuelle Zeit -(minus) letzte Änderung. Dann weißt du jetzt das dein Script vom Trigger bis zur Berechnung 2 Millisekunden braucht.

      Eventuell könnte man das mit nem Intervall machen. Wird Brenner wahr, Datenpunkt auf 0 setzen, dann alle Sekunde den Datenpunkt Plus 1 hochzählen, wird Brenner Unwahr Intervall stoppen und Datenpunkt ausgeben.

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

        @nicoloma sagte in Dauer rechnen:

        hahaha

        nicht zum lachen!
        Du hast genau diese Werte ausgelesen, und mit denen rechnest du.

        Ich weiß nicht was die Brennerlaufzeit ist, aber wenn sich diese alle 2ms ändert, weil sie hocjzählt, dann ist das so

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

          @nicoloma
          Vorschlag:

          Bild_2022-02-05_155533.png

          • Trigger "ist kleiner als letztes" triggert nur beim Ausschalten.
          • delta erhält die Einschaltdauer in ms
          • Für die Wandlung nach "hh:mm:ss" erfolgt eine Zeitzonenkorrektur
          F 1 Reply Last reply Reply Quote 2
          • Nicoloma
            Nicoloma @Homoran last edited by

            @homoran sagte in Dauer rechnen:

            aber wenn sich diese alle 2ms änder

            Ich lache weil ich es nicht schaffe "In meinem Test" den Schalter in 2ms zu Drücken
            Mein lachen war nicht böse gemeint.

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @Nicoloma last edited by

              @nicoloma

              1. Ersetze den Baustein Wert vom ObjektID Brenner an durch den Baustein Wert
              2. Ersetze den Baustein letzte Änderung vom Objekt ID Brenner AN durch den Baustein vorherige letzte Änderung
              3. Ersetze den Baustein Aktuelle Zeit als Datum-Objekt durch den Baustein Letzte Änderung
              4. Spar Dir die ganze Umrechnerei. Die Minuten bekommst du durch: (Letzte Änderung - vorherige letzte Änderung) / 60000

              Nebenbei: Die vier Bausteine die du da nehmen sollst sind eigentlich alle der gleiche Baustein, nämlich:
              Screen Shot 2022-02-05 at 16.01.18 .png

              Der auf dem Objekt ID voreingestellt ist kann auf diese Werte Eingestellt werden.

              A.

              Nicoloma 1 Reply Last reply Reply Quote 0
              • F
                frankyboy73 @paul53 last edited by

                @paul53 Oh, cool, habe gar nicht gewusst das man die vorherige letzte Änderung auch auslesen kann.

                1 Reply Last reply Reply Quote 0
                • Asgothian
                  Asgothian Developer @Nicoloma last edited by

                  @nicoloma sagte in Dauer rechnen:

                  @homoran sagte in Dauer rechnen:

                  aber wenn sich diese alle 2ms änder

                  Ich lache weil ich es nicht schaffe "In meinem Test" den Schalter in 2ms zu Drücken
                  Mein lachen war nicht böse gemeint.

                  Das Problem ist nicht das sich der State "Brenner AN" so schnell ändert, sondern das du

                  • auf die Änderung triggerst
                  • danach die letzte Änderung ausliest, sprich die auf die du gerade getriggert hast.

                  Die 2 ms sind also die Laufzeit zwischen dem Trigger und dem Auslesen des Zeitstempels der letzten Änderung.

                  der Zeitstempel der vorletzten Änderung ist nur innerhalb eines Triggers verfügbar.

                  A.

                  Nicoloma 1 Reply Last reply Reply Quote 3
                  • Nicoloma
                    Nicoloma @Asgothian last edited by

                    @asgothian

                    YEEEES, danke hat geklappt.
                    Danke, ich bin neu und kannte und fand die Bausteine" letzte änderung und vorletzte" nicht.
                    Super....

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

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <variables>
                          <variable id="`S+`{N!EhP*SpjqZpIgy">delta</variable>
                        </variables>
                        <block type="on_ext" id="@23iI/^O^[olnPXpcn9m" x="-12" y="-112">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                          <field name="CONDITION">lt</field>
                          <field name="ACK_CONDITION"></field>
                          <value name="OID0">
                            <shadow type="field_oid" id="5$rbyi?g{DP-7btzXUov">
                              <field name="oid">default</field>
                            </shadow>
                            <block type="field_oid" id="+7yqjI6AxEk5-jUkZ*:B">
                              <field name="oid">0_userdata.0.Heizung.test</field>
                            </block>
                          </value>
                          <statement name="STATEMENT">
                            <block type="controls_if" id="Z}6pLWL#)A8gc}4wn-D#">
                              <value name="IF0">
                                <block type="logic_compare" id="#jDqR44SXHaKA0.my8Ku">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="on_source" id="$kaqu=JI270Bn9/-%AZp">
                                      <field name="ATTR">state.val</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="logic_boolean" id="sJP?5-BoRG`Pbdl49At3">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="variables_set" id="@3Gl]Mbf6;[n]*E/h-WM">
                                  <field name="VAR" id="`S+`{N!EhP*SpjqZpIgy">delta</field>
                                  <value name="VALUE">
                                    <block type="math_arithmetic" id="/Z~*ndcFz??/0TvOu5[E">
                                      <field name="OP">DIVIDE</field>
                                      <value name="A">
                                        <shadow type="math_number" id="5K9eR;u_Ni.oY,:m6NR6">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="math_arithmetic" id=":n4a-B#_99I3FQg`/G0Q">
                                          <field name="OP">MINUS</field>
                                          <value name="A">
                                            <shadow type="math_number" id="63)L.lzMnw7,P^;h22qR">
                                              <field name="NUM">1</field>
                                            </shadow>
                                            <block type="on_source" id="RN#^Ctm0*P2-=Xz7@hK(">
                                              <field name="ATTR">state.lc</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <shadow type="math_number" id="sCU-Cjgp})3`5E:K~-.R">
                                              <field name="NUM">1</field>
                                            </shadow>
                                            <block type="on_source" id="imcTiJ^PJ7_[z+Dl{u:Y">
                                              <field name="ATTR">oldState.lc</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="~C0[[kxiDl+Kf3GqAMJR">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="math_number" id="rsVYi+Ji:SsNLfDU`$KE">
                                          <field name="NUM">60000</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="update" id="U~$y8Ce(OiLx[qEVCJ~!">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                      <field name="OID">0_userdata.0.Heizung.Brennerlaufzeit</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">1000</field>
                                      <field name="UNIT">ms</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="K?aU$x[afANIo%O)_=/$">
                                          <field name="VAR" id="`S+`{N!EhP*SpjqZpIgy">delta</field>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </statement>
                        </block>
                      </xml>
                      

                      7c93571e-3b0d-4ab6-a9bd-556b0358b93e-image.png

                      1 Reply Last reply Reply Quote 0
                      • Nicoloma
                        Nicoloma @Asgothian last edited by

                        @asgothian Danke jetzt weis ich auch mein Fehler. Klasse danke für die erklärung.
                        Macht Sinn!

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        830
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        5
                        13
                        631
                        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