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] Zeiten bzw. Zahlen auf bzw. abrunden.

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Zeiten bzw. Zahlen auf bzw. abrunden.

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

      Hallo. Ich bräuchte bitte wieder mal eure Hilfe.
      Und zwar habe ich eine beliebige Uhrzeit (z.B. 13:07 Uhr) und möchte diese auf die nächste halbe Stunde auf bzw. abrunden (in diesem Fall auf 13:00 Uhr).

      Das zweite ist etwas ähnliches allerdings nicht mit einer Uhrzeit sondern mit einer Zahl. die auf die nächste Hunderter auf bzw. abgerundet werden soll.
      z.B. soll 1345 auf 1300 abgerundet werden. oder 1472 auf 1500 aufgerundet.

      Wie kann ich diese beiden Sachen am einfachsten über Blocklys lösen?

      haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @ManfredHi last edited by haus-automatisierung

        @manfredhi sagte in Zeiten bzw. Zahlen auf bzw. abrunden.:

        z.B. soll 1345 auf 1300 abgerundet werden. oder 1472 auf 1500 aufgerundet.

        Math.round(val / 100) * 100
        

        Screenshot 2024-04-09 at 11.32.34.png

        1 Reply Last reply Reply Quote 1
        • haus-automatisierung
          haus-automatisierung Developer Most Active last edited by haus-automatisierung

          @manfredhi sagte in Zeiten bzw. Zahlen auf bzw. abrunden.:

          Und zwar habe ich eine beliebige Uhrzeit (z.B. 13:07 Uhr) und möchte diese auf die nächste halbe Stunde auf bzw. abrunden (in diesem Fall auf 13:00 Uhr).

          Vorschlag

          Screenshot 2024-04-09 at 11.44.54.png

          <xml xmlns="https://developers.google.com/blockly/xml">
            <variables>
              <variable id="}hP8,vo1lYsah^NO+d]?">t</variable>
              <variable id="19ZUx*O~IH3i-oAW{A?7">arr</variable>
              <variable id="()qj);fR2`uhDS$5!V.u">std</variable>
              <variable id="uNKA[L*UcXhGl!BW#oi]">min</variable>
            </variables>
            <block type="procedures_defreturn" id="bC3Bo*,hALU=[p4F+Q#B" x="63" y="113">
              <mutation>
                <arg name="t" varid="}hP8,vo1lYsah^NO+d]?"></arg>
              </mutation>
              <field name="NAME">rundeZeit</field>
              <comment pinned="false" h="80" w="160">Describe this function...</comment>
              <statement name="STACK">
                <block type="variables_set" id="n}:l?DDe{=awxE)h$LSL">
                  <field name="VAR" id="19ZUx*O~IH3i-oAW{A?7">arr</field>
                  <value name="VALUE">
                    <block type="lists_split" id="JiRrQ~hjHC5;f)Jlb%tA">
                      <mutation mode="SPLIT"></mutation>
                      <field name="MODE">SPLIT</field>
                      <value name="INPUT">
                        <block type="variables_get" id="vmdUMI}cm1*Q@t{E(Tm_">
                          <field name="VAR" id="}hP8,vo1lYsah^NO+d]?">t</field>
                        </block>
                      </value>
                      <value name="DELIM">
                        <shadow type="text" id=")s!BpH/sulzVn4A*$c+x">
                          <field name="TEXT">:</field>
                        </shadow>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="variables_set" id="4}(mh5Kh)/viP`ol.yBp">
                      <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field>
                      <value name="VALUE">
                        <block type="convert_tonumber" id="2RRH``;80kiy@}oi(j//">
                          <value name="VALUE">
                            <block type="lists_getIndex" id="}3Bo^;+3`=r2/;P0(xL#">
                              <mutation statement="false" at="false"></mutation>
                              <field name="MODE">GET</field>
                              <field name="WHERE">FIRST</field>
                              <value name="VALUE">
                                <block type="variables_get" id="!qy_,?RCK|MUq7k/w!B8">
                                  <field name="VAR" id="19ZUx*O~IH3i-oAW{A?7">arr</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="variables_set" id="U7$-zF~4C]P)uOVoylM$">
                          <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                          <value name="VALUE">
                            <block type="convert_tonumber" id="kW7a$aOHGDL;9GzUG~]`">
                              <value name="VALUE">
                                <block type="lists_getIndex" id="g8D%*JN]L`nFhW}VKkoe">
                                  <mutation statement="false" at="false"></mutation>
                                  <field name="MODE">GET</field>
                                  <field name="WHERE">LAST</field>
                                  <value name="VALUE">
                                    <block type="variables_get" id="xn`O6$bV)/rEf}/v!a+_">
                                      <field name="VAR" id="19ZUx*O~IH3i-oAW{A?7">arr</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="controls_if" id="S3D#MWi@gvhyl)JAPT!W">
                              <mutation elseif="1" else="1"></mutation>
                              <value name="IF0">
                                <block type="logic_compare" id="uY^$!x%*#xEG_[0ba!i=">
                                  <field name="OP">LT</field>
                                  <value name="A">
                                    <block type="variables_get" id="Df8#dyVGco/i)ET1ulPw">
                                      <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="6E{$zt`u_VfI:4FKj^PL">
                                      <field name="NUM">15</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="variables_set" id="9cZkI0)v^,R|(65SleLH">
                                  <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="Gzf9er%k$,00cjau52Pt">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                              <value name="IF1">
                                <block type="logic_between" id="iK[qVXp8H~yMrAWM:W[]">
                                  <field name="MIN_OPERATOR">LE</field>
                                  <field name="MAX_OPERATOR">LT</field>
                                  <value name="MIN">
                                    <block type="math_number" id=":OwN(Q?i-vm8x:crP`_5">
                                      <field name="NUM">15</field>
                                    </block>
                                  </value>
                                  <value name="VALUE">
                                    <shadow type="math_number" id="osk~GdV;_?9_$O[bMKFt">
                                      <field name="NUM">42</field>
                                    </shadow>
                                    <block type="variables_get" id="b]sP^X}%OX8[`uoQ)DN#">
                                      <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                                    </block>
                                  </value>
                                  <value name="MAX">
                                    <block type="math_number" id="H^:l$;XVhrl;-)b=;ypg">
                                      <field name="NUM">45</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO1">
                                <block type="variables_set" id="=f3{?@3xL|5bM({!d1|?">
                                  <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="t0U}`Zt}x3A3zNy2tMNJ">
                                      <field name="NUM">30</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                              <statement name="ELSE">
                                <block type="math_change" id="OwzDjjii4!jbx8R3K@uj">
                                  <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field>
                                  <value name="DELTA">
                                    <shadow type="math_number" id="-5FBhx@*%53`Gq^|da]5">
                                      <field name="NUM">1</field>
                                    </shadow>
                                  </value>
                                  <next>
                                    <block type="variables_set" id=".AJ0oCvsL)n+(JO*p5I@">
                                      <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                                      <value name="VALUE">
                                        <block type="math_number" id="us5J3$D=%+HaWK[YRkIR">
                                          <field name="NUM">0</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="controls_if" id="CVW=df0H9tE5agdmURKO">
                                          <value name="IF0">
                                            <block type="logic_compare" id="y3HyiE797YkD8/tE0ECg">
                                              <field name="OP">GT</field>
                                              <value name="A">
                                                <block type="variables_get" id="/.k15@cm1RhE4f:m)p|~">
                                                  <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <block type="math_number" id="n|v@?)^U.o8a)zd~jv=R">
                                                  <field name="NUM">24</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <statement name="DO0">
                                            <block type="variables_set" id=",Q^J;.EISWT)d1Vgcn]c">
                                              <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field>
                                              <value name="VALUE">
                                                <block type="math_number" id="N[u%O]MG+_54-([jv!{f">
                                                  <field name="NUM">0</field>
                                                </block>
                                              </value>
                                            </block>
                                          </statement>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
              <value name="RETURN">
                <block type="text_join" id="e?(%0btnpngkps|*4?SM">
                  <mutation items="3"></mutation>
                  <value name="ADD0">
                    <block type="logic_ternary" id="cnhN]ZsitmX68t++uCZq">
                      <value name="IF">
                        <block type="logic_compare" id="A=/v={n0i[QksFfhmP6y">
                          <field name="OP">LT</field>
                          <value name="A">
                            <block type="variables_get" id="{u/y#=!JTXP+ix^c{t!s">
                              <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="hZ^3v`+s.OM;tG=ieRAb">
                              <field name="NUM">10</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="THEN">
                        <block type="text_join" id="7,$^N{%^w`l%4D#-;GN=">
                          <mutation items="2"></mutation>
                          <value name="ADD0">
                            <block type="text" id="(?1OBd9-EOPh8O2b~|CD">
                              <field name="TEXT">0</field>
                            </block>
                          </value>
                          <value name="ADD1">
                            <block type="variables_get" id="}Rr5?EJZW;pQFgpIx%C4">
                              <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="ELSE">
                        <block type="variables_get" id="+bJ|ERQMaTtb8IeWnNv2">
                          <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="ADD1">
                    <block type="text" id="^sS4$DCm^%jJY%.?^YUA">
                      <field name="TEXT">:</field>
                    </block>
                  </value>
                  <value name="ADD2">
                    <block type="logic_ternary" id="_}yW;Bfb@*-Oa)LyHi*)">
                      <value name="IF">
                        <block type="logic_compare" id="xF(*h`iXv4aezvu:A{tL">
                          <field name="OP">LT</field>
                          <value name="A">
                            <block type="variables_get" id="pcUu-QouZ|6/?lY?#fic">
                              <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="1.x/eQ/A@^dttooO-{5P">
                              <field name="NUM">10</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="THEN">
                        <block type="text_join" id="D25{EUXZ[kK`uSo4]@C8">
                          <mutation items="2"></mutation>
                          <value name="ADD0">
                            <block type="text" id="JEDTE28z#^FBp_-B6zn!">
                              <field name="TEXT">0</field>
                            </block>
                          </value>
                          <value name="ADD1">
                            <block type="variables_get" id=",2t~|7r]nAl{%%~2kr#[">
                              <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="ELSE">
                        <block type="variables_get" id="z2+]t^Z$}bVfY?Xsm#_V">
                          <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
            </block>
            <block type="debug" id="y^m+k:5;Gp`P;3Ef.(P8" x="63" y="838">
              <field name="Severity">log</field>
              <value name="TEXT">
                <shadow type="text" id="cjv#Iyr4^S@r{+oTIsco">
                  <field name="TEXT">test</field>
                </shadow>
                <block type="procedures_callreturn" id="UP@^`|/EvMT|e)_ZZ;Q(">
                  <mutation name="rundeZeit">
                    <arg name="t"></arg>
                  </mutation>
                  <value name="ARG0">
                    <block type="text" id="_sGVxD0$ihe0?H*J[Y|Q">
                      <field name="TEXT">13:40</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="debug" id="~l,,r51i`vnUP+iuFp9s">
                  <field name="Severity">log</field>
                  <value name="TEXT">
                    <shadow type="text" id="cjv#Iyr4^S@r{+oTIsco">
                      <field name="TEXT">test</field>
                    </shadow>
                    <block type="procedures_callreturn" id="nLpT80!zd}M:wf0b}b!7">
                      <mutation name="rundeZeit">
                        <arg name="t"></arg>
                      </mutation>
                      <value name="ARG0">
                        <block type="text" id="b*VK6`jG!Sk}M:}g{]v)">
                          <field name="TEXT">15:45</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </next>
            </block>
          </xml>
          

          EDIT: Muss natürlich >= 24 sein...

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

            @manfredhi sagte: beliebige Uhrzeit (z.B. 13:07 Uhr) und möchte diese auf die nächste halbe Stunde auf bzw. abrunden

            Eine Version:

            Blockly_temp.JPG

            haus-automatisierung 1 Reply Last reply Reply Quote 1
            • haus-automatisierung
              haus-automatisierung Developer Most Active @paul53 last edited by haus-automatisierung

              @paul53 sagte in Zeiten bzw. Zahlen auf bzw. abrunden.:

              Eine Version:

              Tricky! Ist auf jeden Fall die schönere Lösung. Hab mich kurz gefragt warum das klappt 🙂 Deswegen:

              https://github.com/ioBroker/ioBroker.javascript/blob/7455dda562446dc29dd257231bac4941ec22e8ae/lib/sandbox.js#L3409-L3413

              https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#getDateObject

              1 Reply Last reply Reply Quote 0
              • M
                ManfredHi last edited by

                @haus-automatisierung und @paul53 : Vielen Dank für Eure Lösungen. Funktionieren perfekt.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                854
                Online

                32.0k
                Users

                80.4k
                Topics

                1.3m
                Posts

                3
                6
                178
                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