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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Zeitdifferenz berechnen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Zeitdifferenz berechnen

Scheduled Pinned Locked Moved Blockly
blockly
106 Posts 20 Posters 23.7k Views 24 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • haus-automatisierungH haus-automatisierung

    @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.D Online
    David G.D Online
    David G.
    wrote on last edited by
    #81

    @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.

    Zeigt eure Lovelace-Visualisierung klick
    (Auch ideal um sich Anregungen zu holen)

    Meine Tabellen für eure Visualisierung klick

    haus-automatisierungH 1 Reply Last reply
    0
    • haus-automatisierungH haus-automatisierung

      @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

      H-a-m-iH Offline
      H-a-m-iH Offline
      H-a-m-i
      wrote on last edited by
      #82

      @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 :laughing: 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 :man-facepalming: :man-facepalming: 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 :man-facepalming:

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

      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
      0
      • David G.D David G.

        @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-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        wrote on last edited by
        #83

        @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.

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        David G.D 1 Reply Last reply
        0
        • haus-automatisierungH haus-automatisierung

          @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.D Online
          David G.D Online
          David G.
          wrote on last edited by
          #84

          @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

          Zeigt eure Lovelace-Visualisierung klick
          (Auch ideal um sich Anregungen zu holen)

          Meine Tabellen für eure Visualisierung klick

          haus-automatisierungH 1 Reply Last reply
          0
          • David G.D David G.

            @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-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            wrote on last edited by
            #85

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

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            draexlerD 1 Reply Last reply
            0
            • haus-automatisierungH haus-automatisierung

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

              draexlerD Offline
              draexlerD Offline
              draexler
              wrote on last edited by
              #86

              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-automatisierungH 1 Reply Last reply
              0
              • draexlerD draexler

                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-automatisierungH Online
                haus-automatisierungH Online
                haus-automatisierung
                Developer Most Active
                wrote on last edited by haus-automatisierung
                #87

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

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

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                draexlerD M 2 Replies Last reply
                0
                • haus-automatisierungH haus-automatisierung

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

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

                  draexlerD Offline
                  draexlerD Offline
                  draexler
                  wrote on last edited by
                  #88

                  @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
                  1
                  • paul53P paul53

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

                    Bild_2021-11-25_200531.png

                    D Offline
                    D Offline
                    Diamand2k22
                    wrote on last edited by Diamand2k22
                    #89

                    @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
                    0
                    • haus-automatisierungH haus-automatisierung

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

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

                      M Offline
                      M Offline
                      martin_olw
                      wrote on last edited by
                      #90

                      @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.

                      rantanplanR CodierknechtC 2 Replies Last reply
                      0
                      • M martin_olw

                        @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.

                        rantanplanR Online
                        rantanplanR Online
                        rantanplan
                        wrote on last edited by
                        #91

                        @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

                        Rantanplan

                        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                        1 Reply Last reply
                        0
                        • M martin_olw

                          @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.

                          CodierknechtC Offline
                          CodierknechtC Offline
                          Codierknecht
                          Developer Most Active
                          wrote on last edited by Codierknecht
                          #92

                          @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

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          M 1 Reply Last reply
                          1
                          • CodierknechtC 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 Offline
                            M Offline
                            martin_olw
                            wrote on last edited by
                            #93

                            @codierknecht Super! Danke dir. Der DP war vom Typ String. Dank deiner Konvertierung passt es jetzt. Die Kinder sind zufrieden. ;-)

                            1 Reply Last reply
                            0
                            • E Offline
                              E Offline
                              exmerci
                              wrote on last edited by
                              #94

                              Moin,

                              ich stehe gerade komplett auf dem Schlauch.
                              Ich würde gern die aktuelle Zeit in einen Datenpunkt schreiben. Welchen Zustandstyp muss das Objekt haben?
                              Dann würde ich gern mit einem Trigger jeden Tag das Objekt abfragen und wenn es länger als 5 Tage her ist, eine Aktion auslösen.
                              Ich weiß im Augenblick nicht mal, wie ich anfangen soll.

                              HomoranH 1 Reply Last reply
                              0
                              • E exmerci

                                Moin,

                                ich stehe gerade komplett auf dem Schlauch.
                                Ich würde gern die aktuelle Zeit in einen Datenpunkt schreiben. Welchen Zustandstyp muss das Objekt haben?
                                Dann würde ich gern mit einem Trigger jeden Tag das Objekt abfragen und wenn es länger als 5 Tage her ist, eine Aktion auslösen.
                                Ich weiß im Augenblick nicht mal, wie ich anfangen soll.

                                HomoranH Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by
                                #95

                                @exmerci sagte in Zeitdifferenz berechnen:

                                die aktuelle Zeit

                                in welcher Form?

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

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

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

                                1 Reply Last reply
                                0
                                • E Offline
                                  E Offline
                                  exmerci
                                  wrote on last edited by
                                  #96

                                  @homoran

                                  Das ist mir eigentlich egal. Ich muss nur erreichen, das ich 5 Tage später etwas starten kann. Also ich muss wissen, wann die 5 Tage vorbei sind.
                                  Ich hoffe, ich komme verständlich rüber.

                                  HomoranH 1 Reply Last reply
                                  0
                                  • E exmerci

                                    @homoran

                                    Das ist mir eigentlich egal. Ich muss nur erreichen, das ich 5 Tage später etwas starten kann. Also ich muss wissen, wann die 5 Tage vorbei sind.
                                    Ich hoffe, ich komme verständlich rüber.

                                    HomoranH Do not disturb
                                    HomoranH Do not disturb
                                    Homoran
                                    Global Moderator Administrators
                                    wrote on last edited by
                                    #97

                                    @exmerci sagte in Zeitdifferenz berechnen:

                                    ich muss wissen

                                    also nur für dich? als Reminder?

                                    oder willst du damit weiterarbeiten/rechnen o.ä.

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

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

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

                                    E 1 Reply Last reply
                                    0
                                    • HomoranH Homoran

                                      @exmerci sagte in Zeitdifferenz berechnen:

                                      ich muss wissen

                                      also nur für dich? als Reminder?

                                      oder willst du damit weiterarbeiten/rechnen o.ä.

                                      E Offline
                                      E Offline
                                      exmerci
                                      wrote on last edited by exmerci
                                      #98

                                      @homoran

                                      Also ich will damit schon weiter arbeiten.
                                      Ich möchte die Aktion, wenn 5 Tage vorbei sind starten, also mit "steuere" eine Aktion auslösen.
                                      Aber eben nur, wenn schon 5 Tage oder mehr vergangen sind. Sonst nicht.

                                      HomoranH 1 Reply Last reply
                                      0
                                      • E exmerci

                                        @homoran

                                        Also ich will damit schon weiter arbeiten.
                                        Ich möchte die Aktion, wenn 5 Tage vorbei sind starten, also mit "steuere" eine Aktion auslösen.
                                        Aber eben nur, wenn schon 5 Tage oder mehr vergangen sind. Sonst nicht.

                                        HomoranH Do not disturb
                                        HomoranH Do not disturb
                                        Homoran
                                        Global Moderator Administrators
                                        wrote on last edited by
                                        #99

                                        @exmerci also willst du nicht

                                        @exmerci sagte in Zeitdifferenz berechnen:

                                        die aktuelle Zeit in einen Datenpunkt

                                        so dass du sie lesen kannst, sondern als Unixtime zum rechnen

                                        Screenshot_20250829-203000_Firefox.jpg

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

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

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

                                        E 2 Replies Last reply
                                        0
                                        • HomoranH Homoran

                                          @exmerci also willst du nicht

                                          @exmerci sagte in Zeitdifferenz berechnen:

                                          die aktuelle Zeit in einen Datenpunkt

                                          so dass du sie lesen kannst, sondern als Unixtime zum rechnen

                                          Screenshot_20250829-203000_Firefox.jpg

                                          E Offline
                                          E Offline
                                          exmerci
                                          wrote on last edited by
                                          #100

                                          @homoran sagte in Zeitdifferenz berechnen:

                                          so dass du sie lesen kannst, sondern als Unixtime zum rechnen

                                          Ja, wenn das nur so geht, dann ja.
                                          Ich muss leider Morgen weiter machen. Muss jetzt erst mal weg. Danke erstmal soweit.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          658

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe