Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Wie viel Tage bis Termin

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wie viel Tage bis Termin

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @David G. last edited by

      @david-g

      die Lösung inklusive vis widgets findest du im mytime-adapter.
      das einfachste wäre das countdown plain widget, das dir schön runterzählt wieviel jahre,tage,monate,stunden es noch dauert. du definierst einmal in der adapter konfiguration die dauer.
      über einen befehlssyntax in einem bestimmten datenpunkt kannst du auch einen absoluten zeitpunkt in der zukunft definieren

      https://github.com/oweitman/iobroker.mytime

      Der Adapter ist auch im beta/latest repository verfügbar.

      1 Reply Last reply Reply Quote 0
      • David G.
        David G. @mickym last edited by

        @mickym

        Genau, das meine ich.

        @OliverIO
        Probiere in meinen Skripten immer so wenig andere Adapter einzubinden wie nötig.
        Es geht auch nicht um die VIS. Geht um eine Terminübersicht der kommenden Woche die ich per telegram versende. Über die Tage ermitteln ich die Termine für diesen Zeitraum.

        OliverIO mickym 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @David G. last edited by paul53

          @david-g sagte: Ich verwende das

          _date
          

          Ich vermute, als Uhrzeit steht dort im Sommer immer "22:00:00.000Z"? Dann sollte es so funktionieren:

          Bild_2021-08-06_232352.png

          Anstelle des Datenpunktwertes habe ich einen String mit dem Wert von _date eingetragen.

          1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @David G. last edited by OliverIO

            @david-g sagte in Wie viel Tage bis Termin:

            @mickym

            Genau, das meine ich.

            @OliverIO
            Probiere in meinen Skripten immer so wenig andere Adapter einzubinden wie nötig.
            Es geht auch nicht um die VIS. Geht um eine Terminübersicht der kommenden Woche die ich per telegram versende. Über die Tage ermitteln ich die Termine für diesen Zeitraum.

            ok dann so

            (new Date("01/03/2021") - new Date()) / 86400000

            (Datum Zukunft - aktuelles Datum ) / Anzahl Millisekunden an einem Tag

            Dein blocklyansatz sieht gut aus, bin da aber etwas lost.
            Die Differenz kommt evtl daher, das wenn du das Datum so wie ich angegeben hast, immer 00:00 Uhr gemeint ist.

            die abarbeitung solch eines Befehls dauert auf meinem System ca 2 Millisekunden. Da dürfte keine solche Differenz von 0.09 Tagen ergeben.

            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @David G. last edited by mickym

              @david-g

              7e55d197-b273-49ba-ab69-d319f36800d5-image.png

              Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt.

              Das Datum alleine nutzt nichts - weil irgendwas die Timezone dazurechnet und dann kommt immer 2:00 Uhr früh raus.

              Ich schau mal ob irgendwas mit CET funktioniert, da absolute Zeitoffsets ja blöde sind.

              paul53 mickym 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @mickym last edited by

                @mickym sagte: Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt-

                Dann stimmt es aber nur zur Sommerzeit.

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @mickym last edited by mickym

                  @mickym

                  @paul53 sagte in Wie viel Tage bis Termin:

                  @mickym sagte: Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt-

                  Dann stimmt es aber nur zur Sommerzeit.

                  Dann gibt man das einfach fix ein - das geht: Also aus dem Datestring den vorderen Teil vor dem T abschneiden und dann T00:00 anhängen.

                  bbf71b09-b68b-4e22-9bc5-b575b89758a3-image.png

                  David G. 1 Reply Last reply Reply Quote 0
                  • David G.
                    David G. @mickym last edited by David G.

                    @mickym

                    Das habe ich beim rechnen mal probiert.

                    Hatte zu DD.MM.JJJJ konvertiert für das aktuelle Datum und den Termin, mit der Hoffnung dass dann die Uhrzeit ignoriert wird.

                    Wenn ich dann Termin-Uhrzeit rechne kommt NaN als Ergebniss.

                    mickym paul53 3 Replies Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @David G. last edited by mickym

                      @david-g Ich habs bald. 😉 - bin halt als Blockly Laie etc. langsam - aber ich denke bin auf gutem Weg.

                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @David G. last edited by paul53

                        @david-g sagte: Hatte zu DD.MM.JJJJ konvertiert für das aktuelle Datum

                        Die Lösung mal getestet?

                        Bild_2021-08-07_000043.png

                        date: 11.08.2021 (00:00 Uhr Ortszeit)

                        1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @David G. last edited by mickym

                          @david-g
                          Ich habs!!! 😉 - Als Blockly Legastheniker bin ich ganz stolz
                          So das funktioniert meines Erachtens:

                          89d7d5de-e05a-4b8f-bf58-29cb9a6234ae-image.png

                          <xml xmlns="https://developers.google.com/blockly/xml">
                           <variables>
                             <variable id="d1?gZzO#Ee;5nkD=25+p">termin</variable>
                             <variable id=",{yVx}S,?U_1?xsS0IO;">heute</variable>
                             <variable id="VM?rt|mIhKs?tvJ{G6E|">inTagen</variable>
                           </variables>
                           <block type="variables_set" id="P%BplVP^J:4=RP.Fk06[" x="87" y="38">
                             <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                             <value name="VALUE">
                               <block type="text" id="z6cycfSj0mKCILp8-OKn">
                                 <field name="TEXT">2021-08-10T20:00:00.000Z</field>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="C/jWKeNBnr.ZCPv}2KYl">
                                 <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                                 <value name="VALUE">
                                   <block type="convert_from_date" id="h^CggrSLC`]{BL}b=BIV">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                     <field name="OPTION">object</field>
                                     <value name="VALUE">
                                       <block type="text_join" id="PHI)-xQjVC[}K0P$4WMi">
                                         <mutation items="2"></mutation>
                                         <value name="ADD0">
                                           <block type="text_getSubstring" id="X3{W|mvT2$5OB]`vn2Eq">
                                             <mutation at1="false" at2="true"></mutation>
                                             <field name="WHERE1">FIRST</field>
                                             <field name="WHERE2">FROM_START</field>
                                             <value name="STRING">
                                               <block type="variables_get" id="VVO]kBR$JYvv$YbuK=;C">
                                                 <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                                               </block>
                                             </value>
                                             <value name="AT2">
                                               <block type="text_indexOf" id="]9WIuP!/kSkCLGE4EOpV">
                                                 <field name="END">FIRST</field>
                                                 <value name="VALUE">
                                                   <block type="variables_get" id="LxPXPb*R+*4i_z6MZP[a">
                                                     <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                                                   </block>
                                                 </value>
                                                 <value name="FIND">
                                                   <shadow type="text" id="}@NDsVJtdwn@8.[JZK{1">
                                                     <field name="TEXT">T</field>
                                                   </shadow>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="ADD1">
                                           <block type="text" id="U*l}yM;e)7yVD8T)MgP^">
                                             <field name="TEXT">00:00</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="Cx*sQRm/Pwt6NuuLMNBb">
                                     <field name="VAR" id=",{yVx}S,?U_1?xsS0IO;">heute</field>
                                     <value name="VALUE">
                                       <block type="convert_from_date" id="-+QkN*;XsDvY3E@X@4,H">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                         <field name="OPTION">object</field>
                                         <value name="VALUE">
                                           <block type="text_join" id="$gEQ)xy{UqB8l/8Yz7|z">
                                             <mutation items="2"></mutation>
                                             <value name="ADD0">
                                               <block type="time_get" id="`Mb?^~n*+3?E#i.4`NC#">
                                                 <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>
                                             <value name="ADD1">
                                               <block type="text" id="RuHYT0/REHu$c*D7pXcL">
                                                 <field name="TEXT">T00:00</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="N7x9UN]:=-5o?6=d4jed">
                                         <field name="VAR" id="VM?rt|mIhKs?tvJ{G6E|">inTagen</field>
                                         <value name="VALUE">
                                           <block type="math_round" id=";A(P7CYQGSfP`4dC]U{|">
                                             <field name="OP">ROUNDDOWN</field>
                                             <value name="NUM">
                                               <shadow type="math_number" id="=dQLmrn_#x}r5a{-B}*W">
                                                 <field name="NUM">3.1</field>
                                               </shadow>
                                               <block type="math_arithmetic" id="?V!+2,apS9_ym.)w%PGU">
                                                 <field name="OP">DIVIDE</field>
                                                 <value name="A">
                                                   <shadow type="math_number" id="AND[V0z/y@H:!`_i@m7A">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="math_arithmetic" id="D)jqxX5=sjt|c^HwBS].">
                                                     <field name="OP">MINUS</field>
                                                     <value name="A">
                                                       <shadow type="math_number" id="}T|ND~@8/)/fE@6GEiub">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="variables_get" id="lm)9)3UC3f4f_]|X,O_3">
                                                         <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <shadow type="math_number" id="n16IlOivfSDyBWa,|V5Y">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="variables_get" id="RPzMF6EVZsL(4[5:NV~{">
                                                         <field name="VAR" id=",{yVx}S,?U_1?xsS0IO;">heute</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <shadow type="math_number" id="98?%-1Edl1xJ?e%m$Ubw">
                                                     <field name="NUM">86400000</field>
                                                   </shadow>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="debug" id="{g9O#GZD`Tp}@k+cZ%u,">
                                             <field name="Severity">log</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="]afAYRl}ohne}GU]uFn:">
                                                 <field name="TEXT">test</field>
                                               </shadow>
                                               <block type="text_join" id=")z^;LBNJASd5?4_t|y;$">
                                                 <mutation items="3"></mutation>
                                                 <value name="ADD0">
                                                   <block type="text" id="8631V=0jJ:ih%f%luf|t">
                                                     <field name="TEXT">Der Termin ist in </field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="variables_get" id="x+Ze-dx!.E!$,*dm}c3!">
                                                     <field name="VAR" id="VM?rt|mIhKs?tvJ{G6E|">inTagen</field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD2">
                                                   <block type="text" id="-c;/Y?1EbU-V!k!-~vuI">
                                                     <field name="TEXT"> Tagen</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                          </xml>
                          

                          Ich hab halt heute und den Termin in Variablen gespeichert. Du musst halt in die Variable Termin Deinen date-String setzen!!

                          So ohne debug und ohne heute Variable kann man das Blockly tatsächlich soweit vereinfachen:

                          baaf8754-530a-45a2-9b99-082e2ac01caa-image.png

                          <xml xmlns="https://developers.google.com/blockly/xml">
                           <variables>
                             <variable id="d1?gZzO#Ee;5nkD=25+p">termin</variable>
                             <variable id="VM?rt|mIhKs?tvJ{G6E|">inTagen</variable>
                           </variables>
                           <block type="variables_set" id="P%BplVP^J:4=RP.Fk06[" x="13" y="-37">
                             <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                             <value name="VALUE">
                               <block type="text" id="z6cycfSj0mKCILp8-OKn">
                                 <field name="TEXT">2021-08-10T20:00:00.000Z</field>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="N7x9UN]:=-5o?6=d4jed">
                                 <field name="VAR" id="VM?rt|mIhKs?tvJ{G6E|">inTagen</field>
                                 <value name="VALUE">
                                   <block type="math_round" id=";A(P7CYQGSfP`4dC]U{|">
                                     <field name="OP">ROUNDDOWN</field>
                                     <value name="NUM">
                                       <shadow type="math_number" id="=dQLmrn_#x}r5a{-B}*W">
                                         <field name="NUM">3.1</field>
                                       </shadow>
                                       <block type="math_arithmetic" id="?V!+2,apS9_ym.)w%PGU">
                                         <field name="OP">DIVIDE</field>
                                         <value name="A">
                                           <shadow type="math_number" id="AND[V0z/y@H:!`_i@m7A">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="math_arithmetic" id="D)jqxX5=sjt|c^HwBS].">
                                             <field name="OP">MINUS</field>
                                             <value name="A">
                                               <shadow type="math_number" id="}T|ND~@8/)/fE@6GEiub">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="convert_from_date" id="h^CggrSLC`]{BL}b=BIV">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                 <field name="OPTION">object</field>
                                                 <value name="VALUE">
                                                   <block type="text_join" id="PHI)-xQjVC[}K0P$4WMi">
                                                     <mutation items="2"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text_getSubstring" id="X3{W|mvT2$5OB]`vn2Eq">
                                                         <mutation at1="false" at2="true"></mutation>
                                                         <field name="WHERE1">FIRST</field>
                                                         <field name="WHERE2">FROM_START</field>
                                                         <value name="STRING">
                                                           <block type="variables_get" id="VVO]kBR$JYvv$YbuK=;C">
                                                             <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                                                           </block>
                                                         </value>
                                                         <value name="AT2">
                                                           <block type="text_indexOf" id="]9WIuP!/kSkCLGE4EOpV">
                                                             <field name="END">FIRST</field>
                                                             <value name="VALUE">
                                                               <block type="variables_get" id="LxPXPb*R+*4i_z6MZP[a">
                                                                 <field name="VAR" id="d1?gZzO#Ee;5nkD=25+p">termin</field>
                                                               </block>
                                                             </value>
                                                             <value name="FIND">
                                                               <shadow type="text" id="}@NDsVJtdwn@8.[JZK{1">
                                                                 <field name="TEXT">T</field>
                                                               </shadow>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="text" id="U*l}yM;e)7yVD8T)MgP^">
                                                         <field name="TEXT">00:00</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <shadow type="math_number" id="n16IlOivfSDyBWa,|V5Y">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="convert_from_date" id="-+QkN*;XsDvY3E@X@4,H">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                 <field name="OPTION">object</field>
                                                 <value name="VALUE">
                                                   <block type="text_join" id="$gEQ)xy{UqB8l/8Yz7|z">
                                                     <mutation items="2"></mutation>
                                                     <value name="ADD0">
                                                       <block type="time_get" id="`Mb?^~n*+3?E#i.4`NC#">
                                                         <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>
                                                     <value name="ADD1">
                                                       <block type="text" id="RuHYT0/REHu$c*D7pXcL">
                                                         <field name="TEXT">T00:00</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number" id="98?%-1Edl1xJ?e%m$Ubw">
                                             <field name="NUM">86400000</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="debug" id="{g9O#GZD`Tp}@k+cZ%u,">
                                     <field name="Severity">log</field>
                                     <value name="TEXT">
                                       <shadow type="text" id="]afAYRl}ohne}GU]uFn:">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="variables_get" id="x+Ze-dx!.E!$,*dm}c3!">
                                         <field name="VAR" id="VM?rt|mIhKs?tvJ{G6E|">inTagen</field>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                          </xml>
                          

                          David G. 2 Replies Last reply Reply Quote 2
                          • David G.
                            David G. @mickym last edited by

                            @mickym

                            Werde ich heute Nachmittag mal testen^^

                            1 Reply Last reply Reply Quote 0
                            • David G.
                              David G. @mickym last edited by David G.

                              @mickym

                              Hab es nachgebaut und läuft.
                              Muss allerdings wie bei meinem Versuch noch 1 drauf rechnen. Der Morgige Tag liefert 0 als Ergebniss.

                              Das ist die generierte Nachricht.
                              Damit ihr auch seht, worum es geht.

                              Screenshot_20210807-095021_Telegram.jpg

                              Alter Screen als ein Geburtstag anstand.
                              Screenshot_20210807-101220_Telegram.jpg

                              Geht wenn die Sonntags verschickt wird dann schön von Mo bis So alle Tage durch.
                              (sind grad noch einige Testtermine hinterlegt. Die Geburtstage werden wie die anderen Termine dargestellt.)

                              @mickym
                              Nicht, dass du noch von node red zu blockly abwanderst 🤪

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @David G. last edited by

                                @david-g Ehrlich gesagt verstehe ich zwar nicht, warum Du eins drauf rechnen musst, weil wenn Du mein Teil da importiert hast und den String als Termin als Ausgang nimmst - funktioniert es so. Aber egal Du hast Dir ja geholfen. 😉

                                @david-g sagte in Wie viel Tage bis Termin:

                                @mickym
                                Nicht, dass du noch von node red zu blockly abwanderst 🤪

                                Da brauchst Du keine Sorge haben - aber will auch nicht mehr diese Diskussion beginnen. 😉

                                David G. 1 Reply Last reply Reply Quote 0
                                • David G.
                                  David G. @mickym last edited by David G.

                                  @mickym

                                  Habe deinen Code nicht importieren können.
                                  Hat immer einen Fehler ausgegeben.
                                  Aber war ja schnell nachzubauen.

                                  Evtl wird das Datum anders gewertet, was er in der Schleife aus dem Datenpunkt holt..... Ka....

                                  Jedenfalls vielen Dank für die Hilfe.

                                  Keine Sorge, die Diskussion müssen wir nicht führen.
                                  Wurde A schon oft genug geführt und B kann jeder machen was ihm besser gefällt.

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  575
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  26
                                  957
                                  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