Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zeitdifferenz berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • H-a-m-i
      H-a-m-i last edited by H-a-m-i

      Guten morgen zusammen!

      Ich komme mit der Berechnung von der Zeitdifferenz, seit der Zeitumstellung heute Nacht, auch nicht mehr zurecht. Hatte bis gestern immer die 3600000 Millisekunden von einer Differenz abziehen lassen und die ausgegebenen SS:mm haben gestimmt. Seit der Zeitumstellung heute Nacht ist es aber wieder eine Stunde mehr, sprich, ich müsste jetzt 7200000 Millisekunden abziehen. Das kann doch nicht sein.

      Um das mal am Beispiel von @paul53 "kompensieren-Block" zu zeigen:
      1.JPG
      2.JPG

      Die Zeiten im Raspi stimmen alle:

      pi@raspberrypi:~ $ sudo -u iobroker date
      [sudo] Passwort für pi:
      So 29. Okt 08:51:48 CET 2023
      pi@raspberrypi:~ $ date && date -u
      So 29. Okt 08:51:52 CET 2023
      So 29. Okt 07:51:52 UTC 2023
      
      
      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @H-a-m-i last edited by haus-automatisierung

        @h-a-m-i Am besten nicht die Funktionen zweckentfremden. Die sind halt dafür da, um einen UTC Zeitstempel in ein lesbares Format in Deiner Zeitzone zu wandeln. Und nicht um eine Zeitdifferenz zu formatieren.

        Steht auf meiner ToDo Liste dafür Funktionen in den Adapter einzubauen

        1 Reply Last reply Reply Quote 0
        • H-a-m-i
          H-a-m-i last edited by

          Hmm ok. Dann gibt es keine Möglichkeit, in Blockly eine Differenz in SS:mm anzeigen zu lassen, ohne im Sommer 3,6 Mio Millisekunden und im Winter 7,2 Mio Millisekunden abzuziehen?

          haus-automatisierung 1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @H-a-m-i last edited by

            @h-a-m-i Na doch, könnte man sich mit dem Modulo errechnen. Dann muss man auch nicht mit der Sommerzeit der lokalen Zeitzone kämpfen

            1 Reply Last reply Reply Quote 0
            • H-a-m-i
              H-a-m-i last edited by

              Ok hab da jetzt mal etwas rumgelesen und mit dem mod rum experimentiert, aber da bekomme ich iwie nur, beim Testen manuell eingegebene, Sekunden bzw. Millisekunden richtig umgerechnet. Sobald ich irgend ein "Zeit-Konvertierungs-Block" mit rein nehme, wie zb den "Aktuelle zeit als Datum-Objekt" Block, den ich oft verwende, kommt wieder eine Stunde mehr raus. Vermutlich wegen der Zeitzonen Berücksichtigung dieser Blöcke... Ist mir wohl zu hoch xD hab einfach zu wenig Ahnung von dem Ganzen...

              Ich hab mir jetzt eine, für euch vermutlich umständliche, aber für mich einfachere und schnellere Lösung gebaut xD Ich hab nen DP erstellt, der je nach Sommer- oder Winterzeit entweder die 3600000 oder die 7200000 bekommt und diesen subtrahiere ich dann von meinen Zeitdifferenzen

              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @H-a-m-i last edited by

                @h-a-m-i sagte in Zeitdifferenz berechnen:

                wie zb den "Aktuelle zeit als Datum-Objekt" Block, den ich oft verwende, kommt wieder eine Stunde mehr raus.

                Richtig, das habe ich ja schon 2x oben erklärt. Daher nicht verwenden wenn es darum geht, Zeitdifferenzen zu formatieren. Der ist dafür da, um ein Datum / Zeitstempel zu formatieren. Mehr nicht. Alles andere ist zweckentfremdet und führt zu Seiteneffekten!

                Das nächste Problem mit der Lösung ist, dass das Format ja bei 23:59 Uhr endet und dann wieder bei 00:00 Uhr anfängt (das wäre der Folgetag - also der 02.01.1970). Wie gesagt, da wird ein Datum formatiert. Zeitdifferenzen über 24 Stunden sind mit der Funktion also nicht abbildbar!

                Das hatte ich mit Beispielen aber schon ausführlicher erklärt.

                @h-a-m-i sagte in Zeitdifferenz berechnen:

                Ich hab nen DP erstellt, der je nach Sommer- oder Winterzeit entweder die 3600000 oder die 7200000 bekommt

                Ich wüsste gar nicht, ob man es noch komplizierter lösen könnte 🙂 Am Ende reichen die Grundrechenarten, um das vernünftig zu lösen:

                Screenshot 2023-10-30 at 12.25.47.png

                aber:

                Bessere Lösung:

                Weil das (eigentlich recht einfache) Thema doch scheinbar so viele bewegt, habe ich gerade einen neue Funktion und einen neuen Blockly-Block in den JavaScript-Adapter gebaut. Kommt dann mit der nächsten Version (> 7.1.6) und sieht dann so aus:

                Screenshot 2023-10-30 at 12.16.36.png

                Beispiele gibts in der Dokumentation:

                const diff = 172800000 + 10800000 + 540000 + 15000; // 2 days, 3 hours, 9 minutes + 15 secoonds
                formatTimeDiff(diff); // "51:09:15"
                formatTimeDiff(diff, "DD hh:mm"); // "02 03:09"
                formatTimeDiff(diff, "D hh:mm"); // "2 03:09"
                formatTimeDiff(diff, "hh:mm:ss"); // "51:09:15"
                formatTimeDiff(diff, "h:m:s"); // "51:9:15"
                formatTimeDiff(diff, "hh:mm"); // "51:09"
                formatTimeDiff(diff, "mm:ss"); // "3069:15"
                formatTimeDiff(diff, "hh"); // "51"
                formatTimeDiff(diff, "mm"); // "3069"
                

                Ich hoffe, damit ist das Thema bald vom Tisch 🙂

                Ansonsten habe ich das Ganze gerade noch in einem YouTube-Video zusammengefasst. Also Problemstellung und Lösungsweg (inkl. der neuen Blockly-Bausteine): https://www.youtube.com/watch?v=sxkz3O6nfFQ

                David G. H-a-m-i 2 Replies Last reply Reply Quote 3
                • David G.
                  David G. @haus-automatisierung last edited by David G.

                  @haus-automatisierung

                  Fein wäre natürlich, wenn man in den neuen Block direkt 2 Daten eintragen könnte anstatt vorher die Differenz berechnen zu müssen.

                  Kleine Frage:
                  Rechnet der neue Baustein "einfach" Rückwärts wie auf dem manuellen Weg oder werden auch Schaltjahre oder 29,30,31 Tage bei Monaten berücksichtigt?

                  Dazu hatte ich hier im Forum schon 1-2 Themen um zB das Alter oder die Zeit bis zu einem Geburtstag zu berechnen. Das ging meistens nur mit einem extra Modul (meine moments) im Js Adapter sauber.

                  haus-automatisierung 1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @David G. last edited by

                    @david-g sagte in Zeitdifferenz berechnen:

                    Fein wäre natürlich, wenn man in den neuen Block direkt 2 Daten eintragen könnte

                    Pack die Rechenoperation halt als Block direkt da rein? Musst ja vorher keine Variable erstellen.

                    @david-g sagte in Zeitdifferenz berechnen:

                    Rechnet der neue Baustein "einfach" Rückwärts wie auf dem manuellen Weg oder werden auch Schaltjahre oder 29,30,31 Tage bei Monaten berücksichtigt?

                    Weder noch - es wird einfach auf Basis der Timestamps in Millisekunden gerechnet. Siehst Du ja auch im verlinkten Video. Ist etwas anderes, als wenn man zwei Daten zur Verfügung hat und da erstmal definieren muss in welcher Zeitzone die liegen usw.

                    David G. 1 Reply Last reply Reply Quote 0
                    • David G.
                      David G. @haus-automatisierung last edited by

                      @haus-automatisierung

                      Das Video hab ich gesehen, noch vor dem Betrag.
                      Dass das echte Datum außen vor ist, ist mir klar.

                      Die Frage ist, was ist Zb ein Monat?
                      Hat ein Monat 30,4 Tage (365/12)?
                      Geht das Jahr immer von 365 Tagen aus?

                      Jenachdem was für Zeiträume man berechnet liegt man ja schon (zwangsweise) was daneben.
                      Zumindest wenn man in den Bereich Monate oder Jahre kommt wo nicht jeder Zeitraum immer genau gleich definiert ist.

                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                      • H-a-m-i
                        H-a-m-i @haus-automatisierung last edited by

                        @haus-automatisierung sagte in Zeitdifferenz berechnen:

                        Ich wüsste gar nicht, ob man es noch komplizierter lösen könnte

                        Ja das hab ich mir gedacht 😆 Ich weiß jetzt auch, warum ich es mit den Modulo einfach nicht hinbekommen habe. Ich hab nicht gecheckt, dass das Ganze auch direkt mit Blöcken geht, mir ist der "Rest von" Block irgendwie bisher noch nicht aufgefallen 🤦‍♂️ 🤦‍♂️ deshalb hatte ich das gestern mit einem Javascript Funktionsblock versucht und war mit dem Modulo Skript darin schon so überfordert, dass die Birne danach einfach zu war.
                        Ich glaub ich sollte mal für paar Tage eine ioBroker/Blockly Pause machen, sitze seit zwei Wochen täglich 10 h und mehr daran und baue von Null an, ohne jegliche Vorkenntnisse, alles mögliche mit Blockly auf. Irgendwann macht der Kopf wohl zu. Nach einem Blick auf deinen Umrechnungs-Block oben, hat's Klick gemacht. Peinlich 🤦‍♂️

                        Aber echt super, dass die Funktion für die Zukunft einbaust, macht das Ganze noch einfacher 💪

                        Und durch dein Video bin ich jetzt auch auf deine youtube Kanäle gestoßen, da werd ich mir die nächste Zeit erst mal noch ein paar Videos von ansehen! Aber erst Zwangspause...

                        Vielen vielen Dank!

                        1 Reply Last reply Reply Quote 0
                        • haus-automatisierung
                          haus-automatisierung Developer Most Active @David G. last edited by

                          @david-g sagte in Zeitdifferenz berechnen:

                          Zumindest wenn man in den Bereich Monate oder Jahre kommt wo nicht jeder Zeitraum immer genau gleich definiert ist.

                          Wie Du in der Doku siehst, kann in der Formatierung aktuell nur Tag, Stunde, Minute, Sekunde genutzt werden. Und die sind der Länge immer gleich definiert.

                          David G. 1 Reply Last reply Reply Quote 0
                          • David G.
                            David G. @haus-automatisierung last edited by

                            @haus-automatisierung sagte in Zeitdifferenz berechnen:

                            Wie Du in der Doku siehst

                            Da hab ich in der Tat nicht reingeschaut.
                            Hab naiv wie ich bin drauf vertraut, dass mir "anwenderformatiert" nur verfügbare Optionen vorschlägt.

                            Screenshot_20231030_164946_YouTube.jpg

                            haus-automatisierung 1 Reply Last reply Reply Quote 0
                            • haus-automatisierung
                              haus-automatisierung Developer Most Active @David G. last edited by

                              @david-g Ist ja auch so, im Video die Version ist noch nicht final gewesen.

                              draexler 1 Reply Last reply Reply Quote 0
                              • draexler
                                draexler @haus-automatisierung last edited by

                                Hi,
                                ich habe einen Datenpunkt den ich aus einen anderen Skript mit "SS:mm" befüllen lasse.

                                Ich möchte nun die Differenz in "SS:mm" vom jetztigen Zeitpunkt ausberechnen lassen:

                                Beispiel:
                                Datenpunkt: 08:00
                                Aktuelle Zeit: 08:15

                                ERGEBNIS: 00:15

                                Bin zu doof das hinzukriegen oder ich habe heute einen Knoten im Kopf:

                                So sieht das aktuelle Blockly aus:
                                Bildschirmfoto 2023-11-14 um 19.27.37.png

                                Aktuell kommt als Fehler:

                                javascript.0 (495) at Object.<anonymous> (script.js.common.Arbeit.Arbeitstag_Stundenerfassung:39:5)
                                
                                haus-automatisierung 1 Reply Last reply Reply Quote 0
                                • haus-automatisierung
                                  haus-automatisierung Developer Most Active @draexler last edited by haus-automatisierung

                                  @draexler Was erwartest Du, wenn Du zwei Strings subtrahierst? Das geht so nicht.

                                  Was ist denn zB „drae“ - „xler“?

                                  draexler M 2 Replies Last reply Reply Quote 0
                                  • draexler
                                    draexler @haus-automatisierung last edited by

                                    @haus-automatisierung Du hast vollkommen recht, gebe das ich es mir zu einfach gemacht habe. Habe mir weiter oben mal dein Video angesehen und nun verstanden wie es funktioniert.
                                    Danke dir 🙂

                                    1 Reply Last reply Reply Quote 1
                                    • D
                                      Diamand2k22 @paul53 last edited by Diamand2k22

                                      @paul53 said in Zeitdifferenz berechnen:

                                      @strobi sagte: Stundengenau (als Kommazahl) würde ausreichen) der aktuellen Tageszeit bis zum Sonnenuntergang

                                      Bild_2021-11-25_200531.png

                                      @paul53

                                      wie kann ich denn die Zeit in Stunden z.b. von heute 22 Uhr bis zum Sonnenaufgang am nächsten Tag berechnen?

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        martin_olw @haus-automatisierung last edited by

                                        @haus-automatisierung Ich glaube an genau dem Prinzip scheitere ich auch gerade:
                                        Die Kinder wollen auf unserer VIS angezeigt haben, wie viele Tage es noch bis zum Beginn der nächsten Ferien sind.
                                        Der schoolfree-adapter liefert mit den Datenpunkt:
                                        ae30985b-b0e8-4da2-b7f6-9be237ba93c1-image.png
                                        Möchte ich den jetzt ins Datum-Objekt-Format bringen um dann später weiter rechnen zu können, dann bekomme ich keinen Wert:
                                        5b19bf8d-fbdd-424b-a123-b82aa56e9406-image.png
                                        Wo ist denn mein Denkfehler?
                                        Danke für die Hilfe.

                                        rantanplan Codierknecht 2 Replies Last reply Reply Quote 0
                                        • rantanplan
                                          rantanplan @martin_olw last edited by

                                          @martin_olw Hallo
                                          Hier mal ein Teil aus meinem Urlaubs-Script.


                                          Blockly-Bild.png

                                          Hier der Import:

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                           <variables>
                                             <variable id="e9iD.-I54$~?Z|ZL+F{9">ObjektDatumAktuell</variable>
                                             <variable id="HS;qgmx.%$*4;[8X)sE#">Tage_bis_Urlaub</variable>
                                             <variable id="E:6SzWk}t@`61,$x`FXx">UrlaubStart</variable>
                                             <variable id="!}5U.l7kfEw/+lNM)Ab1">UrlaubEnde</variable>
                                             <variable id=":s,6VAIY,]GlSe|T!)9E">UrlaubsTage</variable>
                                             <variable id="lY?bd7V(:s+-ZYD^GnD2">TageBisUrlaubsEnde</variable>
                                             <variable id="=We=rhXNVW,Lr8ETlQwY">UrlaubRest</variable>
                                           </variables>
                                           <block type="on_ext" id="6Y@LIxe47B4)/e.|7dhR" x="13" y="13">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                             <field name="CONDITION">ne</field>
                                             <field name="ACK_CONDITION"></field>
                                             <value name="OID0">
                                               <shadow type="field_oid" id=".pH*ia^ETsdO8W,L#Gk=">
                                                 <field name="oid">0_userdata.0.Anwesendheit.Urlaub.Urlaub_1_Anfang</field>
                                               </shadow>
                                             </value>
                                             <value name="OID1">
                                               <shadow type="field_oid" id="D*3.w}vY.)vz0,R#Xf5;">
                                                 <field name="oid">0_userdata.0.Anwesendheit.Urlaub.Urlaub_1_Ende</field>
                                               </shadow>
                                             </value>
                                             <statement name="STATEMENT">
                                               <block type="procedures_callnoreturn" id="CruK/)nJvPeDa%r+bEx+">
                                                 <mutation name="INIT"></mutation>
                                               </block>
                                             </statement>
                                           </block>
                                           <block type="procedures_defnoreturn" id="rK9I[^hv-APnWSk-Kt.L" x="13" y="188">
                                             <field name="NAME">INIT</field>
                                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                             <statement name="STACK">
                                               <block type="variables_set" id="61JC/Ih{H)?7I=v/Fm=Q">
                                                 <field name="VAR" id="e9iD.-I54$~?Z|ZL+F{9">ObjektDatumAktuell</field>
                                                 <value name="VALUE">
                                                   <block type="convert_to_date" id="h]gTUfA5G!-^/SWfcqc2">
                                                     <value name="VALUE">
                                                       <block type="time_get" id="+wNd8D]Iic8xhJ/d15iR">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                                         <field name="OPTION">custom</field>
                                                         <field name="FORMAT">JJJJ-MM-TT</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="variables_set" id="Lby=(fYB/_-R{ky.`{7]">
                                                     <field name="VAR" id="E:6SzWk}t@`61,$x`FXx">UrlaubStart</field>
                                                     <value name="VALUE">
                                                       <block type="convert_to_date" id="GPUD9FF0O`QE@2wZ2Z]N">
                                                         <value name="VALUE">
                                                           <block type="get_value" id="U}A,2^4+8S4DJ1*+F={|">
                                                             <field name="ATTR">val</field>
                                                             <field name="OID">0_userdata.0.Anwesendheit.Urlaub.Urlaub_1_Anfang</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="variables_set" id="VKY$gdP}[3bH;+AXpBHZ">
                                                         <field name="VAR" id="!}5U.l7kfEw/+lNM)Ab1">UrlaubEnde</field>
                                                         <value name="VALUE">
                                                           <block type="convert_to_date" id="*R_Z}kF6`jL7+r1YL|}h">
                                                             <value name="VALUE">
                                                               <block type="get_value" id="AAJ|jBQ@iVn7U(iwE(!.">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Anwesendheit.Urlaub.Urlaub_1_Ende</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="procedures_callnoreturn" id="W)r1+a/-`v`fZ[ERXO+3">
                                                             <mutation name="Berechnen"></mutation>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                           <block type="procedures_defnoreturn" id="L%cTl`j}R)j.9dGL(k)I" x="13" y="363">
                                             <field name="NAME">Berechnen</field>
                                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                             <statement name="STACK">
                                               <block type="variables_set" id="U]^N4kN@1v8`~e05sV40">
                                                 <field name="VAR" id="HS;qgmx.%$*4;[8X)sE#">Tage_bis_Urlaub</field>
                                                 <value name="VALUE">
                                                   <block type="math_arithmetic" id="tBr:GvymRvpgrT1_2E5C">
                                                     <field name="OP">DIVIDE</field>
                                                     <value name="A">
                                                       <shadow type="math_number" id="dP0!DN7,T{IG#aQ(X~5K">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="math_arithmetic" id="PnLFGs#2s-cw!/1J~BR=">
                                                         <field name="OP">DIVIDE</field>
                                                         <value name="A">
                                                           <shadow type="math_number" id="*~Z?c`0?/W4QHG0KpJHa">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="math_arithmetic" id="-M?[syp1P$H*Nh}$]a07">
                                                             <field name="OP">DIVIDE</field>
                                                             <value name="A">
                                                               <shadow type="math_number" id="sZYs`ic+Oo%,ag+BhIV5">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="math_arithmetic" id=".@g),R`5Bd%V-TVvPRCe">
                                                                 <field name="OP">MINUS</field>
                                                                 <value name="A">
                                                                   <shadow type="math_number" id="zNwwmAotb`B#+|27Fb#g">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="variables_get" id="/MDql`:T}Q6%}xv}acQu">
                                                                     <field name="VAR" id="E:6SzWk}t@`61,$x`FXx">UrlaubStart</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <shadow type="math_number" id="]^+vZgp!#:p]T%N^B36c">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="variables_get" id="Hp+Lv4mN+wM[eh/_kL?O">
                                                                     <field name="VAR" id="e9iD.-I54$~?Z|ZL+F{9">ObjektDatumAktuell</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow type="math_number" id="/((:@f|[96!NnwHIVNTY">
                                                                 <field name="NUM">60000</field>
                                                               </shadow>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <shadow type="math_number" id="~9.YMbwQLoRv?I}y|,zu">
                                                             <field name="NUM">60</field>
                                                           </shadow>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <shadow type="math_number" id="C?D)nEQfRpF}t))Ms*|j">
                                                         <field name="NUM">24</field>
                                                       </shadow>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="debug" id="~N2Vh!EKK-T#|6INP{44">
                                                     <field name="Severity">info</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="D1:c+o,B.N=Qc1g;f;/a">
                                                         <field name="TEXT">test</field>
                                                       </shadow>
                                                       <block type="variables_get" id="?DZEd@z3v90wdaK@|rqA">
                                                         <field name="VAR" id="HS;qgmx.%$*4;[8X)sE#">Tage_bis_Urlaub</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="variables_set" id="5VU4?Mv4:2huebRFP11,">
                                                         <field name="VAR" id=":s,6VAIY,]GlSe|T!)9E">UrlaubsTage</field>
                                                         <value name="VALUE">
                                                           <block type="math_arithmetic" id="noz1b%8sh`#Bp#SsU0?H">
                                                             <field name="OP">ADD</field>
                                                             <value name="A">
                                                               <shadow type="math_number" id="sf$^_`Ao=`!RV(v@Lt#x">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="math_arithmetic" id="@{vaElI@,iXl5vX#c|5W">
                                                                 <field name="OP">DIVIDE</field>
                                                                 <value name="A">
                                                                   <shadow type="math_number" id="`btQnasuTCm;qwO*%[(g">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="math_arithmetic" id="PGK6{PZZ~O:7kQ3C|FG}">
                                                                     <field name="OP">DIVIDE</field>
                                                                     <value name="A">
                                                                       <shadow type="math_number" id="TO0C%*aX{lO5WW-:f^-R">
                                                                         <field name="NUM">1</field>
                                                                       </shadow>
                                                                       <block type="math_arithmetic" id="?Att1;@%4%Q(/_jZIy5=">
                                                                         <field name="OP">DIVIDE</field>
                                                                         <value name="A">
                                                                           <shadow type="math_number" id="sZYs`ic+Oo%,ag+BhIV5">
                                                                             <field name="NUM">1</field>
                                                                           </shadow>
                                                                           <block type="math_arithmetic" id="EsiyAfA21*3NvTDOu1I{">
                                                                             <field name="OP">MINUS</field>
                                                                             <value name="A">
                                                                               <shadow type="math_number" id="zNwwmAotb`B#+|27Fb#g">
                                                                                 <field name="NUM">1</field>
                                                                               </shadow>
                                                                               <block type="variables_get" id="q||DUO@KnmY;n6M5@)(p">
                                                                                 <field name="VAR" id="!}5U.l7kfEw/+lNM)Ab1">UrlaubEnde</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="B">
                                                                               <shadow type="math_number" id="]^+vZgp!#:p]T%N^B36c">
                                                                                 <field name="NUM">1</field>
                                                                               </shadow>
                                                                               <block type="variables_get" id="Jub1/{z%N7k2B?{V%mmh">
                                                                                 <field name="VAR" id="E:6SzWk}t@`61,$x`FXx">UrlaubStart</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <value name="B">
                                                                           <shadow type="math_number" id=",,~N.K,x{XBuC]3q^9@Y">
                                                                             <field name="NUM">60000</field>
                                                                           </shadow>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                     <value name="B">
                                                                       <shadow type="math_number" id="dfV^QOPgu#R~)QikzV|8">
                                                                         <field name="NUM">60</field>
                                                                       </shadow>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <shadow type="math_number" id="/`2,hS8}B19v5LW-$/Nu">
                                                                     <field name="NUM">24</field>
                                                                   </shadow>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow type="math_number" id="|Dqt!p.!c8?xc1YJ_$7d">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="debug" id="a%EN{P;ni)C(h+B{K/3S">
                                                             <field name="Severity">info</field>
                                                             <value name="TEXT">
                                                               <shadow type="text" id="D1:c+o,B.N=Qc1g;f;/a">
                                                                 <field name="TEXT">test</field>
                                                               </shadow>
                                                               <block type="variables_get" id="7$,L@1*ag8eG-v1nnL2R">
                                                                 <field name="VAR" id=":s,6VAIY,]GlSe|T!)9E">UrlaubsTage</field>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="variables_set" id="g2^ncn{yP-~)8*P@F._l">
                                                                 <field name="VAR" id="lY?bd7V(:s+-ZYD^GnD2">TageBisUrlaubsEnde</field>
                                                                 <value name="VALUE">
                                                                   <block type="math_arithmetic" id="Xd)W`4r{ZXZ6k@3dv$VG">
                                                                     <field name="OP">DIVIDE</field>
                                                                     <value name="A">
                                                                       <shadow type="math_number" id="dP0!DN7,T{IG#aQ(X~5K">
                                                                         <field name="NUM">1</field>
                                                                       </shadow>
                                                                       <block type="math_arithmetic" id="QmpPXam~rvT+MgNX9u+,">
                                                                         <field name="OP">DIVIDE</field>
                                                                         <value name="A">
                                                                           <shadow type="math_number" id="*~Z?c`0?/W4QHG0KpJHa">
                                                                             <field name="NUM">1</field>
                                                                           </shadow>
                                                                           <block type="math_arithmetic" id="w1o15_,o{(08nPDH+V{,">
                                                                             <field name="OP">DIVIDE</field>
                                                                             <value name="A">
                                                                               <shadow type="math_number" id="sZYs`ic+Oo%,ag+BhIV5">
                                                                                 <field name="NUM">1</field>
                                                                               </shadow>
                                                                               <block type="math_arithmetic" id="n}7Zo/8GqFRM_n/6*(Xt">
                                                                                 <field name="OP">MINUS</field>
                                                                                 <value name="A">
                                                                                   <shadow type="math_number" id="zNwwmAotb`B#+|27Fb#g">
                                                                                     <field name="NUM">1</field>
                                                                                   </shadow>
                                                                                   <block type="variables_get" id="MtN9sI^REd.n7!Ll/Qok">
                                                                                     <field name="VAR" id="!}5U.l7kfEw/+lNM)Ab1">UrlaubEnde</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="B">
                                                                                   <shadow type="math_number" id="]^+vZgp!#:p]T%N^B36c">
                                                                                     <field name="NUM">1</field>
                                                                                   </shadow>
                                                                                   <block type="variables_get" id="S9}r}%dv+m__+^x6JkY0">
                                                                                     <field name="VAR" id="e9iD.-I54$~?Z|ZL+F{9">ObjektDatumAktuell</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <value name="B">
                                                                               <shadow type="math_number" id="::-{0q`94xph2Eg|-x|U">
                                                                                 <field name="NUM">60000</field>
                                                                               </shadow>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <value name="B">
                                                                           <shadow type="math_number" id="``T+p/C8xgM_=p5Cs^W+">
                                                                             <field name="NUM">60</field>
                                                                           </shadow>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                     <value name="B">
                                                                       <shadow type="math_number" id="_irBzMi^l+RPzF^h?J@W">
                                                                         <field name="NUM">24</field>
                                                                       </shadow>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="debug" id="o9/+lp3,%3)QZSiURon4">
                                                                     <field name="Severity">info</field>
                                                                     <value name="TEXT">
                                                                       <shadow type="text" id="D1:c+o,B.N=Qc1g;f;/a">
                                                                         <field name="TEXT">test</field>
                                                                       </shadow>
                                                                       <block type="variables_get" id=",):=#H#8/0p$Z)()K0:9">
                                                                         <field name="VAR" id="lY?bd7V(:s+-ZYD^GnD2">TageBisUrlaubsEnde</field>
                                                                       </block>
                                                                     </value>
                                                                     <next>
                                                                       <block type="variables_set" id="#z+4]AP}FC6-TiA_G8fA">
                                                                         <field name="VAR" id="=We=rhXNVW,Lr8ETlQwY">UrlaubRest</field>
                                                                         <value name="VALUE">
                                                                           <block type="math_arithmetic" id=")PIjRrt8Rul#dK}Q2soP">
                                                                             <field name="OP">DIVIDE</field>
                                                                             <value name="A">
                                                                               <shadow type="math_number" id="dP0!DN7,T{IG#aQ(X~5K">
                                                                                 <field name="NUM">1</field>
                                                                               </shadow>
                                                                               <block type="math_arithmetic" id="otHOPPC!:5nC?!K.,F^V">
                                                                                 <field name="OP">DIVIDE</field>
                                                                                 <value name="A">
                                                                                   <shadow type="math_number" id="*~Z?c`0?/W4QHG0KpJHa">
                                                                                     <field name="NUM">1</field>
                                                                                   </shadow>
                                                                                   <block type="math_arithmetic" id="QEVx==e_%dhX0W/|#4+i">
                                                                                     <field name="OP">DIVIDE</field>
                                                                                     <value name="A">
                                                                                       <shadow type="math_number" id="sZYs`ic+Oo%,ag+BhIV5">
                                                                                         <field name="NUM">1</field>
                                                                                       </shadow>
                                                                                       <block type="math_arithmetic" id="Yq,`X1IWVW1~g05cg4f=">
                                                                                         <field name="OP">MINUS</field>
                                                                                         <value name="A">
                                                                                           <shadow type="math_number" id="zNwwmAotb`B#+|27Fb#g">
                                                                                             <field name="NUM">1</field>
                                                                                           </shadow>
                                                                                           <block type="variables_get" id="We*DW*18Ms-OQ@Th]/6!">
                                                                                             <field name="VAR" id="!}5U.l7kfEw/+lNM)Ab1">UrlaubEnde</field>
                                                                                           </block>
                                                                                         </value>
                                                                                         <value name="B">
                                                                                           <shadow type="math_number" id="]^+vZgp!#:p]T%N^B36c">
                                                                                             <field name="NUM">1</field>
                                                                                           </shadow>
                                                                                           <block type="variables_get" id="VhM}N+uW*3~d(Ad/;_Ot">
                                                                                             <field name="VAR" id="e9iD.-I54$~?Z|ZL+F{9">ObjektDatumAktuell</field>
                                                                                           </block>
                                                                                         </value>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="B">
                                                                                       <shadow type="math_number" id="`GF=?375Ik$qs#o}VgDC">
                                                                                         <field name="NUM">60000</field>
                                                                                       </shadow>
                                                                                     </value>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="B">
                                                                                   <shadow type="math_number" id="mQIS:jetB*#aHBYU)0PI">
                                                                                     <field name="NUM">60</field>
                                                                                   </shadow>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <value name="B">
                                                                               <shadow type="math_number" id="Om9T;?}xe$%eid;W`gF0">
                                                                                 <field name="NUM">24</field>
                                                                               </shadow>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <next>
                                                                           <block type="debug" id=")?=j68qr=z=lgz[hX?u#">
                                                                             <field name="Severity">info</field>
                                                                             <value name="TEXT">
                                                                               <shadow type="text" id="D1:c+o,B.N=Qc1g;f;/a">
                                                                                 <field name="TEXT">test</field>
                                                                               </shadow>
                                                                               <block type="variables_get" id="/K3#]{E4M_i.vt9,#}uD">
                                                                                 <field name="VAR" id="=We=rhXNVW,Lr8ETlQwY">UrlaubRest</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </next>
                                                                       </block>
                                                                     </next>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                          </xml>
                                          

                                          Wie schon gesagt ist das ein Auszug aus einem größeren Script.
                                          Sollte aber funktionieren.
                                          Datenpunkte Urlaub_1_Anfang und Urlaub_1_Ende müsstest Du vorher anlegen.
                                          Ich hoffe es hilft Dir etwas weiter.

                                          Grüße

                                          1 Reply Last reply Reply Quote 0
                                          • Codierknecht
                                            Codierknecht Developer Most Active @martin_olw last edited by Codierknecht

                                            @martin_olw sagte in Zeitdifferenz berechnen:

                                            Wo ist denn mein Denkfehler?

                                            Welchen Typ hat der DP?
                                            Wenn das ein String ist und das Datum dort lediglich als Text in deutscher Formatierung eingetragen ist, muss das vorher konvertiert werden.

                                            6f89976f-250e-43df-9c16-d907e54ad2eb-image.png

                                            Edit
                                            Alternativ kann man auch eine Liste verwenden, um das zu konvertieren. Ist letztlich Geschmackssache.

                                            a43c16a4-ebe9-407b-bf1b-d4dfbff492c5-grafik.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            906
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            19
                                            93
                                            14098
                                            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