Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zeitberechung in Blockly

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

      Hi,
      leider stelle ich mich zu glatt an. Aus dem Miele-Adpater erhalte ich bei Programmstart die ANzeige der Restzeit. Das sieht dann so aus: "2:44". Aufgrund dessen und der Aktuelle Zeit versuche ich nun auszurechnen, wann der Geschirrspüler fertig ist.

      So schwer ist es ja eigentlich nicht. Liste aus beiden Elementen. Die Stunde dann mit 60 Multiplizieren, die Mitenangabe dazu addieren und dann alles mit der aktuellen Zeit in Minuten addieren.

      Dann das durch 60 dividieren und abrunden, dann hat man schon mal die Stunden (klar, noch Prüfung ob man später als 23 Uhr ist...) und den Rest der Division als Minuten ausgeben.

      Irgendwie erhalte ich utopische Werte. Deshalb auch mal eine debug ausgabe gestartet... da wird aber nichts aus den Variablen ausgegeben 😞 Keien Ahnung warum. Habt ihr Ideen?

      3d5d401a-f675-4c79-be4e-c809ff9ab238-image.png

      Debug-Ausgabe:

      2020-11-04 11:52:47.197 - info: javascript.0 (1095) script.js.common.Geschirrspueler: restzeit nur in Minutenrestzeit Stunden in MinutenNaN
      

      Hier mal das ganze Script:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable type="timeout" id="timeout">timeout</variable>
          <variable id="1_Tdu}V*gvkI9]Kar;B+">restzeit_nur_minuten</variable>
          <variable id=")D18+/2zjY!yi[g]FP{P">restzeit_stunden_in_minuten</variable>
          <variable id="/NnA4XTgc`fVF12+[AE}">restzeit_in_minuten</variable>
          <variable id="tj|8,0qf4wY@L4]gb[C#">fertigstellung_Minuten</variable>
          <variable id="uyULztCs#MR|s%6.CI(X">fertigstellung_Zeit_Minuten</variable>
          <variable id="~@(D|Yk,*p?ZK?55F},u">fertigstellung_Stunden</variable>
        </variables>
        <block type="on" id="[W;elGSAhvxts$z/lif~" x="138" y="63">
          <field name="OID">mielecloudservice.0.Dishwashers.000104598269.Status</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="Djon%EhF[FlzT^}Dee8r">
              <mutation elseif="1"></mutation>
              <value name="IF0">
                <block type="logic_compare" id="70EO+%;/jdv}4uUW(*;L">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="on_source" id="@Rn22fVE24d=7W36qEqX">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="text" id="j0oF|:pmH18?uUj93L96">
                      <field name="TEXT">Ende </field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="sendto_custom" id="c)=fam;.AT@nER@v}+v]">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="text,caption" with_statement="false"></mutation>
                  <field name="INSTANCE">telegram.0</field>
                  <field name="COMMAND">send</field>
                  <field name="LOG"></field>
                  <field name="WITH_STATEMENT">FALSE</field>
                  <value name="ARG0">
                    <shadow type="text" id="uG)?J./IvW^0?aENo{C/">
                      <field name="TEXT">/opt/iobroker/iobroker-data/pictures/miele_geschirrspueler.png</field>
                    </shadow>
                  </value>
                  <value name="ARG1">
                    <shadow type="text" id="XK}?M66s.,/$SL7c2l$+">
                      <field name="TEXT">🍽 Der Geschirrspüler ist fertig.🍴</field>
                    </shadow>
                  </value>
                </block>
              </statement>
              <value name="IF1">
                <block type="logic_compare" id="`q:$4)6xqxUJ;%uvpjU?">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="on_source" id=";:9fZ`az|LS}m_TF%@[}">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="text" id="L!TE:o6G$Q#:NGu6QJmR">
                      <field name="TEXT">In Betrieb </field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO1">
                <block type="timeouts_settimeout" id="R*wPk,c3=7BEdSEuv]MQ">
                  <field name="NAME">timeout</field>
                  <field name="DELAY">1000</field>
                  <field name="UNIT">ms</field>
                  <statement name="STATEMENT">
                    <block type="variables_set" id="#O8{_}mkjt4npZ:97,nK">
                      <field name="VAR" id="1_Tdu}V*gvkI9]Kar;B+">restzeit_nur_minuten</field>
                      <value name="VALUE">
                        <block type="lists_getIndex" id="H9XC(J[=C_VRFH%WO732">
                          <mutation statement="false" at="true"></mutation>
                          <field name="MODE">GET</field>
                          <field name="WHERE">FROM_START</field>
                          <value name="VALUE">
                            <block type="lists_split" id="t1PHkLm`jN7-_?Mmm!x~">
                              <mutation mode="SPLIT"></mutation>
                              <field name="MODE">SPLIT</field>
                              <value name="INPUT">
                                <block type="get_value" id="{jviGxmW8bOq|4S;aTp1">
                                  <field name="ATTR">val</field>
                                  <field name="OID">mielecloudservice.0.Dishwashers.000104598269.remainingTime</field>
                                </block>
                              </value>
                              <value name="DELIM">
                                <shadow type="text" id=",je.r%fTtp,=uqcV#1Zi">
                                  <field name="TEXT">:</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                          <value name="AT">
                            <block type="math_number" id="nP2~wu#)kkH_S6I{HZYm">
                              <field name="NUM">2</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="variables_set" id="HyUB{kH+im7ra8W@zBk|">
                          <field name="VAR" id=")D18+/2zjY!yi[g]FP{P">restzeit_stunden_in_minuten</field>
                          <value name="VALUE">
                            <block type="math_arithmetic" id="fHpSybwRV9o9,M,@iyd,">
                              <field name="OP">MULTIPLY</field>
                              <value name="A">
                                <shadow type="math_number" id="CmGP3U1=zOYjiTedBYcr">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="lists_getIndex" id="7dd0%oyE.C5csJ6/VfZp">
                                  <mutation statement="false" at="true"></mutation>
                                  <field name="MODE">GET</field>
                                  <field name="WHERE">FROM_START</field>
                                  <value name="VALUE">
                                    <block type="lists_split" id="y`ZX+!}[U==!-f6^Pyr3">
                                      <mutation mode="SPLIT"></mutation>
                                      <field name="MODE">SPLIT</field>
                                      <value name="INPUT">
                                        <block type="get_value" id=":5:_x0r$`NE!/!{/E^M=">
                                          <field name="ATTR">val</field>
                                          <field name="OID">mielecloudservice.0.Dishwashers.000104598269.remainingTime</field>
                                        </block>
                                      </value>
                                      <value name="DELIM">
                                        <shadow type="text" id="=ZCXyMIXO/6+[ZWnA`k9">
                                          <field name="TEXT">:</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="AT">
                                    <block type="math_number" id="[GSjd-9_#^_SN9Z7rl.*">
                                      <field name="NUM">1</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <shadow type="math_number" id="7BThRpq@k@gNIDlqP/z*">
                                  <field name="NUM">60</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="variables_set" id="T8^@^$YTpNxQr65PV73x">
                              <field name="VAR" id="/NnA4XTgc`fVF12+[AE}">restzeit_in_minuten</field>
                              <value name="VALUE">
                                <block type="math_arithmetic" id="JB$W9ir`+B]?7UL#U{p2">
                                  <field name="OP">ADD</field>
                                  <value name="A">
                                    <shadow type="math_number" id="kwsD[h[zd{uQsWaA9mw;">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="variables_get" id="TWZyr|r{VfehWPOs=Ev5">
                                      <field name="VAR" id=")D18+/2zjY!yi[g]FP{P">restzeit_stunden_in_minuten</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id=":YI{~(=Y;amhsvO~Yc*(">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="variables_get" id="P;*98g%-g;+`-gA)uMz2">
                                      <field name="VAR" id="1_Tdu}V*gvkI9]Kar;B+">restzeit_nur_minuten</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <next>
                                <block type="variables_set" id="NJf)3Jm#73{A1]WvS~~J">
                                  <field name="VAR" id="uyULztCs#MR|s%6.CI(X">fertigstellung_Zeit_Minuten</field>
                                  <value name="VALUE">
                                    <block type="math_arithmetic" id="K1Dv5L!qBQ/B]m.?L8MN">
                                      <field name="OP">ADD</field>
                                      <value name="A">
                                        <shadow type="math_number" id="/q.*9QJ3{wi|c@k)1`1$">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="time_get" id="_`U`|P24s#Lf+R7fyzst">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                          <field name="OPTION">mid</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="yXtu]BWLsh)[-08OUSi.">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="variables_get" id="CFu7%7e{%egMUBtYi8fT">
                                          <field name="VAR" id="/NnA4XTgc`fVF12+[AE}">restzeit_in_minuten</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="variables_set" id="Z4*-o9tX:hHIUQX`eFP_">
                                      <field name="VAR" id="~@(D|Yk,*p?ZK?55F},u">fertigstellung_Stunden</field>
                                      <value name="VALUE">
                                        <block type="math_round" id="4JLxxie[stS+9.:0ZL5W">
                                          <field name="OP">ROUNDDOWN</field>
                                          <value name="NUM">
                                            <shadow type="math_number" id="$3GImcib^o3YhY%!i#By">
                                              <field name="NUM">3.1</field>
                                            </shadow>
                                            <block type="math_arithmetic" id=",hBJmF1@q`p.n5]vR9#o">
                                              <field name="OP">DIVIDE</field>
                                              <value name="A">
                                                <shadow type="math_number" id="0VgATUyXc0da)a,WWFuw">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="variables_get" id="Pl5G2s7%i-:CPkQs;0gV">
                                                  <field name="VAR" id="uyULztCs#MR|s%6.CI(X">fertigstellung_Zeit_Minuten</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id="WOk-cH-|f([A/8VIU#$%">
                                                  <field name="NUM">60</field>
                                                </shadow>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="variables_set" id="TP(4zl.mU?lF/BAOttN.">
                                          <field name="VAR" id="tj|8,0qf4wY@L4]gb[C#">fertigstellung_Minuten</field>
                                          <value name="VALUE">
                                            <block type="math_modulo" id="9#Pui2IszR`S]`#`-x9=">
                                              <value name="DIVIDEND">
                                                <shadow type="math_number" id="{T`~JiSB8lX%|3Q,Q_-(">
                                                  <field name="NUM">64</field>
                                                </shadow>
                                                <block type="variables_get" id=")WVrCl0*hYktBet6GI%T">
                                                  <field name="VAR" id="uyULztCs#MR|s%6.CI(X">fertigstellung_Zeit_Minuten</field>
                                                </block>
                                              </value>
                                              <value name="DIVISOR">
                                                <shadow type="math_number" id=";x(*M{Nn|+1W;1.IzTCe">
                                                  <field name="NUM">60</field>
                                                </shadow>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="telegram" id="l]KVrNT-9#W3[,{i`T%[">
                                              <field name="INSTANCE"></field>
                                              <field name="LOG"></field>
                                              <field name="SILENT">FALSE</field>
                                              <field name="PARSEMODE">default</field>
                                              <value name="MESSAGE">
                                                <shadow type="text" id=",=TKQ4^J9ed42%a^6-47">
                                                  <field name="TEXT">text</field>
                                                </shadow>
                                                <block type="text_join" id="$GLb1rbAO@`to=qyk~)!">
                                                  <mutation items="11"></mutation>
                                                  <value name="ADD0">
                                                    <block type="text" id=".K4V@r$1vSJO^3@Z,i=5">
                                                      <field name="TEXT">Der Geschirrspüler 🍽 wurde gestartet.</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD1">
                                                    <block type="time_get" id="%TlPd+utmYRDW)Io7/=e">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                                      <field name="OPTION">custom</field>
                                                      <field name="FORMAT">\n</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD2">
                                                    <block type="text" id="kOhTTE,MnXOg$BejQFtr">
                                                      <field name="TEXT">Vorraussichtliche Dauer: </field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD3">
                                                    <block type="get_value" id="^KMTR]oV,x_#zu*Zy[UX">
                                                      <field name="ATTR">val</field>
                                                      <field name="OID">mielecloudservice.0.Dishwashers.000104598269.remainingTime</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD4">
                                                    <block type="text" id="?]DoX4NrD;FPt/]I5N^)">
                                                      <field name="TEXT"> Stunden</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD5">
                                                    <block type="time_get" id="s6vX:jq5V[qV-Azg!898">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                                      <field name="OPTION">custom</field>
                                                      <field name="FORMAT">\n</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD6">
                                                    <block type="text" id="`wm-2.dHc:ZfK2$=ET|,">
                                                      <field name="TEXT">Programmende: </field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD7">
                                                    <block type="variables_get" id="Zr`RRMIoU3l{*IEL*3qx">
                                                      <field name="VAR" id="~@(D|Yk,*p?ZK?55F},u">fertigstellung_Stunden</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD8">
                                                    <block type="text" id="U;LlXJG#dTcX8_t2te)r">
                                                      <field name="TEXT">:</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD9">
                                                    <block type="variables_get" id="]Mt,(EA+*Ag7iuLd^N|Z">
                                                      <field name="VAR" id="tj|8,0qf4wY@L4]gb[C#">fertigstellung_Minuten</field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD10">
                                                    <block type="text" id="1x%B*n3Ie}nBYFcO[y2Z">
                                                      <field name="TEXT"> Uhr ⏰.</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                  <next>
                    <block type="debug" id="flQ#]6PS!#sEIy]98:Ol">
                      <field name="Severity">log</field>
                      <value name="TEXT">
                        <shadow type="text" id="%C0fry0;Ry}dlB^-n(d~">
                          <field name="TEXT">test</field>
                        </shadow>
                        <block type="text_join" id="Eod5l3Fmqf1N1r@^1ra}">
                          <mutation items="6"></mutation>
                          <value name="ADD0">
                            <block type="text" id="{ag;;d/RE,qO_p2RUe]N">
                              <field name="TEXT">restzeit nur in Minuten</field>
                            </block>
                          </value>
                          <value name="ADD1">
                            <block type="variables_get" id="Yatg|v]`u4gPFUm0b[_}">
                              <field name="VAR" id="1_Tdu}V*gvkI9]Kar;B+">restzeit_nur_minuten</field>
                            </block>
                          </value>
                          <value name="ADD2">
                            <block type="text" id="ltXJ98.3lfTS-#|NPNO_">
                              <field name="TEXT">restzeit Stunden in Minuten</field>
                            </block>
                          </value>
                          <value name="ADD3">
                            <block type="variables_get" id="/Y$mNB8F[yNyD$DKA|MI">
                              <field name="VAR" id=")D18+/2zjY!yi[g]FP{P">restzeit_stunden_in_minuten</field>
                            </block>
                          </value>
                          <value name="ADD4">
                            <block type="math_modulo" id="!(4ka4!=%Br0Z2CZ/e=Z">
                              <value name="DIVIDEND">
                                <shadow type="math_number">
                                  <field name="NUM">64</field>
                                </shadow>
                                <block type="variables_get" id="ab`f[mVhyRkM3U]Vd0@w">
                                  <field name="VAR" id="uyULztCs#MR|s%6.CI(X">fertigstellung_Zeit_Minuten</field>
                                </block>
                              </value>
                              <value name="DIVISOR">
                                <shadow type="math_number" id="%huXW.g3Q#%,CG2Xf8?]">
                                  <field name="NUM">60</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                          <value name="ADD5">
                            <block type="variables_get" id="+d!Ip_AsLbg30A!26qah">
                              <field name="VAR" id="tj|8,0qf4wY@L4]gb[C#">fertigstellung_Minuten</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      Der Datenpunkt sieht so aus:

      {
        "from": "system.adapter.mielecloudservice.0",
        "user": "system.user.admin",
        "ts": 1604506427258,
        "common": {
          "name": "The RemainingTime equals the relative remaining time",
          "role": "value",
          "type": "string",
          "read": true,
          "write": false
        },
        "native": {},
        "acl": {
          "object": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1636
        },
        "_id": "mielecloudservice.0.Dishwashers.000104598269.remainingTime",
        "type": "state"
      }
      
      paul53 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @oberfragger last edited by paul53

        @oberfragger sagte:

        Deshalb auch mal eine debug ausgabe gestartet... da wird aber nichts aus den Variablen ausgegeben

        Die Debug-Ausgabe erfolgt vor der verzögerten Berechnung.
        Außerdem sollten die Werte aus der Liste in eine Zahl gewandelt werden.

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

          @oberfragger
          Vorschlag für die Umrechnung der Rest-Minuten in die Uhrzeit der Fertigstellung:

          Blockly_temp.JPG

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

            @paul53 Oh mann. Ja, da bin ich etwas blind gewesen. Ich hab den Debug-Block mal an die richtige Stelle gesetzt.

            Ich bau da mal nach. Ich bin da nicht ganz schlau geworden. Zu viele neue Sachen für mich.

            Bei der Addition habe ich nun "externe Eingänge" aktiviert. So wie du das gemachst hast. Stellt man damit die richtige Klammersetzung sicher?

            Warum Multiplikation der Restzeit in Minuten mit 60000? Woher kommt die 60000 und warum Multiplikation?

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

              @oberfragger sagte:

              Stellt man damit die richtige Klammersetzung sicher?

              Daran ändert sich nichts. Es wird nur die Darstellung geändert.

              @oberfragger sagte in Zeitberechung in Blockly:

              Warum Multiplikation der Restzeit in Minuten mit 60000?

              Umrechnung von Minuten in ms, da auch das Datum-Objekt ms liefert.

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

                @paul53 Dank dir für die Infos.

                M 1 Reply Last reply Reply Quote 0
                • M
                  MisterBlinki @oberfragger last edited by

                  @oberfragger
                  Wärst du so nett und würdest das laufende Skript hier posten?

                  oberfragger 1 Reply Last reply Reply Quote 0
                  • oberfragger
                    oberfragger @MisterBlinki last edited by oberfragger

                    @MisterBlinki Wenn ich mal soweit bin...ja.
                    Gerade sind noch viele andere Themen am Start, aber bist ja nun watcher her.

                    Das Datums-Objekt hat mir irgendwie nichts gebracht. Da bin ich noch zu doof zu. Ich probiere das abern noch einmal...

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MisterBlinki @oberfragger last edited by

                      @oberfragger Prima und ich dachte ich verstehe es nicht 😉

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      615
                      Online

                      31.9k
                      Users

                      80.2k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      1062
                      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