Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [blockly] Datum und Zeit

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [blockly] Datum und Zeit

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active @Tim12 last edited by

      @Tim12
      Richtige Zeit/Zeitzone im Betriebssystem eingestellt?

      date && date -u
      

      prüfen (unter Linux).

      1 Reply Last reply Reply Quote 0
      • F
        fastfoot @Tim12 last edited by

        @Tim12 sagte in [blockly] Datum und Zeit:

        Welche Logik steckt hinter dieser "Phantomstunde"?

        Vielen Dank für ein paar Einsichten

        Tim

        Die Konvertierung berücksichtigt immer die Zeitzone des Systems. Da die ms aber die Zeit in ms ab 01.01.1970UTC angibt, ergibt 0ms bereits 01:00:00 unserer Zeitzone(CET).
        Hiermit kannst du es erkennen
        Uhrzeit1.PNG

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="J~)$%LPlIxOSBP!4i]]{">utc</variable>
           <variable id=")EYmxUGT?w616639q8:;">de</variable>
         </variables>
         <block type="variables_set" id="bbOoaF7a~ddJGG]y6N_5" x="138" y="13">
           <field name="VAR" id="J~)$%LPlIxOSBP!4i]]{">utc</field>
           <value name="VALUE">
             <block type="convert_from_date" id="58sgrZ{.pXoAwB@70`xC">
               <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
               <field name="OPTION">hh:mm:ss.sss</field>
               <value name="VALUE">
                 <block type="math_number" id="]i0.c6_V[j_yQ$?[}/?U">
                   <field name="NUM">0</field>
                 </block>
               </value>
             </block>
           </value>
           <next>
             <block type="debug" id=",KcRQvt0H!a73`XI*sTN">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="+a)KFtrTkk:|t_|~wE32">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="variables_get" id="jpdOo~g%~PwBWWMbjYAd">
                   <field name="VAR" id="J~)$%LPlIxOSBP!4i]]{">utc</field>
                 </block>
               </value>
               <next>
                 <block type="variables_set" id="a0LE;gr%|fa;UXzaGHPD">
                   <field name="VAR" id="J~)$%LPlIxOSBP!4i]]{">utc</field>
                   <value name="VALUE">
                     <block type="convert_from_date" id=")O,AKryr$n6ijU[-[[#G">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                       <field name="OPTION">object</field>
                       <value name="VALUE">
                         <block type="math_number" id="c^66sFphv?GN=O_Zw,3S">
                           <field name="NUM">0</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <next>
                     <block type="debug" id="y4KVcXJdM?IdR6cX+RM0">
                       <field name="Severity">log</field>
                       <value name="TEXT">
                         <shadow type="text">
                           <field name="TEXT">test</field>
                         </shadow>
                         <block type="variables_get" id=".R{9fDH`lt-tNa03;{!(">
                           <field name="VAR" id="J~)$%LPlIxOSBP!4i]]{">utc</field>
                         </block>
                       </value>
                       <next>
                         <block type="variables_set" id="n*@F}R-T,?(0kVg{pqes">
                           <field name="VAR" id=")EYmxUGT?w616639q8:;">de</field>
                           <value name="VALUE">
                             <block type="convert_from_date" id="0b*Nlx2bQaguWuc4jpZ#">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                               <field name="OPTION">hh:mm:ss.sss</field>
                               <value name="VALUE">
                                 <block type="text" id="tj6p$Kfr7)}[J3QqwMH:">
                                   <field name="TEXT">01.01.1970</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="debug" id="qvJ=z]J1Mh9UvEyQ[xKl">
                               <field name="Severity">log</field>
                               <value name="TEXT">
                                 <shadow type="text" id="nE+S)9u?,d,_,IFJYuZ;">
                                   <field name="TEXT">test</field>
                                 </shadow>
                                 <block type="variables_get" id="s4rDC?B|v/NUkMz,{2!G">
                                   <field name="VAR" id=")EYmxUGT?w616639q8:;">de</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="variables_set" id="%KR,7Z51bZP4$oMVXte]">
                                   <field name="VAR" id=")EYmxUGT?w616639q8:;">de</field>
                                   <value name="VALUE">
                                     <block type="convert_from_date" id="cQG1%N^1mEO+|52[=EWu">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                       <field name="OPTION">object</field>
                                       <value name="VALUE">
                                         <block type="text" id="-n[%0]y|XI:vT!6cT#h)">
                                           <field name="TEXT">01.01.1970</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="debug" id="dg[hH]vG!af@$7s6rzzU">
                                       <field name="Severity">log</field>
                                       <value name="TEXT">
                                         <shadow type="text">
                                           <field name="TEXT">test</field>
                                         </shadow>
                                         <block type="variables_get" id="xcj|FLm+wy6i-,it5,Er">
                                           <field name="VAR" id=")EYmxUGT?w616639q8:;">de</field>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        T 1 Reply Last reply Reply Quote 1
        • T
          Tim12 @fastfoot last edited by

          Danke, auf einen Zusammenhang mit der Zeitzone hätte ich auch noch selbst kommen können/sollen 😳 - ja, bin in wie üblich in CET statt UTC unterwegs.

          Das bedeutet aber auch, dass der folgende Konvertierungsblock, um eine Zeitdauer in nutzerfreundlichem Format darzustellen, mit dem Wechsel zur Sommerzeit an Charme verliert:

          ff126489-c668-475c-bac9-c972a1f9f4c4-image.png

          Gibt's eine Möglichkeit unter "anwenderformatiert" dem Block eine alternative Zeitzone (sprich UTC) zu übergeben?
          Oder bin mit einem Block wie
          6eaa9245-8742-408c-b371-c07b824cd94b-image.png
          schon ganz gut davor?
          Dann nehme ich gerne noch Tipps an, wie das schlanker und eleganter geht.

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

            @Tim12 sagte:

            Dann nehme ich gerne noch Tipps an

            Siehe hier

            1 Reply Last reply Reply Quote 0
            • F
              fastfoot @Tim12 last edited by

              @Tim12 sagte in [blockly] Datum und Zeit:

              Das bedeutet aber auch, dass der folgende Konvertierungsblock, um eine Zeitdauer in nutzerfreundlichem Format darzustellen, mit dem Wechsel zur Sommerzeit an Charme verliert:

              Das stimmt so nicht, die Korrektur um eine Stunde(-3600000) bezieht sich immer auf den 01.01.1970, da gab es noch keine Sommerzeit. Lasse dir das Ergebnis einfach mal als TT.MM.JJJJ hh:mm:ss anzeigen, dann siehst du dass du dir die korrigierte Zeit des 1.1.1970 anzeigen lässt. Gleichzeitig kann man daran erkennen dass diese Art eine Zeitdifferenz anzuzeigen nur innerhalb 24Std funktioniert.

              T 1 Reply Last reply Reply Quote 0
              • T
                Tim12 @fastfoot last edited by

                @fastfoot, Danke. Wurde mir klar, als ich deine Antwort gelesen habe.
                Dann kombiniere ich mal beide Antworten zu:
                e808d862-03f2-4691-b6db-3b525b101e20-grafik.png
                Jetzt brauche ich nur noch einen Anwendungsfall, bei dem mich Intervalle von Sekunden/Minuten bis zu Tagen interessieren. 😜

                S 1 Reply Last reply Reply Quote 0
                • S
                  Sushibomba @Tim12 last edited by Sushibomba

                  @tim12
                  Grabe das Thema noch mal aus.
                  Irgendwie funktioniert mein Skript zwecks Anwesenheitserkennung nicht wie ich es möchte.
                  Ich habe einen "Sonst falls" Baustein und in diesem folgendes Blockly.
                  Es funktioniert aber nicht wie es soll. Er schreibt einfach kein False in den Datenpunkt obwohl er schon lange keinen aktuellen Zeitstempel mehr bekommen hat:

                  <block xmlns="https://developers.google.com/blockly/xml" type="on" id="l~[ph4G6:g)}Y^ayO`G*" x="162" y="89">
                    <field name="OID">mqtt.0.espresense.devices.mifit:d8f6e73318d5.kinderzimmer</field>
                    <field name="CONDITION">ne</field>
                    <field name="ACK_CONDITION"></field>
                    <statement name="STATEMENT">
                      <block type="variables_set" id="C6_$1P+_~SW_4QEBM?R0">
                        <field name="VAR" id="u2{`z:l*V}A=~=/b|;jS">ergebnisalsobjekt</field>
                        <value name="VALUE">
                          <block type="convert_json2object" id="iW6@-Y@r.$*fvVcAJ.:1">
                            <value name="VALUE">
                              <block type="on_source" id="-!QNBc+]i!DS8w?~l4xk">
                                <field name="ATTR">state.val</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="update" id="{[O*K4$bVQ?Q8~jljb!b">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Räume.Kinderzimmer.Anwesenheit.Entfernung_Amazfit_GTR4_im_Kinderzimmer</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="get_attr" id="uhHZk?Xp5Vff+w@c^v|:">
                                <value name="PATH">
                                  <shadow type="text" id="VXEPt2].`Mys%ZFteu2r">
                                    <field name="TEXT">distance</field>
                                  </shadow>
                                </value>
                                <value name="OBJECT">
                                  <block type="variables_get" id="MzQW+M2oNs)yed7;bG+R">
                                    <field name="VAR" id="u2{`z:l*V}A=~=/b|;jS">ergebnisalsobjekt</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="controls_if" id="Tq33v1UqTkuZb-|#vB~9">
                                <mutation elseif="1"></mutation>
                                <value name="IF0">
                                  <block type="logic_compare" id="Q5IMiee1u8eSgxl$6ne`">
                                    <field name="OP">LT</field>
                                    <value name="A">
                                      <block type="get_value" id=",$5#JWe.8O3w%M2_~/N@">
                                        <field name="ATTR">val</field>
                                        <field name="OID">0_userdata.0.Räume.Kinderzimmer.Anwesenheit.Entfernung_Amazfit_GTR4_im_Kinderzimmer</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="math_number" id="|BAl1w{n^L^z+rV}.[on">
                                        <field name="NUM">2</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="DO0">
                                  <block type="update" id="^#{*_r?8VKc%l8hy^k(b">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.Räume.Kinderzimmer.Anwesenheit.Amazfit_GTR4_im_Kinderzimmer</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="u=Ct0S3@o]G:OS+:N2w6">
                                        <field name="BOOL">TRUE</field>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                                <value name="IF1">
                                  <block type="logic_compare" id="9tc]xpQ0TY7ZTqYCr!}4">
                                    <field name="OP">LT</field>
                                    <value name="A">
                                      <block type="get_value" id="KT.Y2th2gYS(RhZ/VZ-b">
                                        <field name="ATTR">ts</field>
                                        <field name="OID">0_userdata.0.Räume.Kinderzimmer.Anwesenheit.Amazfit_GTR4_im_Kinderzimmer</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="math_arithmetic" id="L(yg|d(ksxthX7M.[/2K">
                                        <field name="OP">MINUS</field>
                                        <value name="A">
                                          <shadow type="math_number">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="time_get" id="lEDTgh?TF2XSO5w5}vq(">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                            <field name="OPTION">object</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="math_number" id="Gpg2.vt?!H..Z@[H=#)?">
                                            <field name="NUM">10000</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="DO1">
                                  <block type="update" id="_G~0N}KdBBPYOXt-lqe*">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.Räume.Kinderzimmer.Anwesenheit.Amazfit_GTR4_im_Kinderzimmer</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id=".4}`|.(,0eg;nFn%n0HN">
                                        <field name="BOOL">FALSE</field>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                  

                  Was mache ich bei der Zeitstempel Berechnung falsch? 😧

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

                    @sushibomba

                    4ce08afd-6e5c-4da6-a8e8-12817845699c-image.png

                    1. Blockly immer primär als Screenshot und nur optional (in Spoiler) als Export posten.
                      Wer Dir helfen möchte hat nicht unbedingt Lust, das Ganze erst in ein Testscript zu prömpeln.

                    2. Du schreibst einen Wert in einen DP und liest ihn dann gleich wieder.
                      Wird der DP da tatsächlich benötigt? Du solltest den Wert zunächst in eine Variable schreiben und mit dieser weiterarbeiten. Wenn der Wert tatsächlich als DP benötigt wird, kannst Du ihn mit der Variablen beschreiben.
                      Merke: Datenpunkte sind keine Zwischenspeicher für Scripte!

                    3. Bau an den neuralgischen Stellen mal Debug-Blöcke ein, um zu sehen mit welchen Werten da überhaupt gearbeitet wird.

                    S 2 Replies Last reply Reply Quote 1
                    • S
                      Sushibomba @Codierknecht last edited by Sushibomba

                      @codierknecht sagte in [blockly] Datum und Zeit:

                      @sushibomba

                      4ce08afd-6e5c-4da6-a8e8-12817845699c-image.png

                      1. Blockly immer primär als Screenshot und nur optional (in Spoiler) als Export posten.
                        Wer Dir helfen möchte hat nicht unbedingt Lust, das Ganze erst in ein Testscript zu prömpeln.

                      Ja da gebe ich dir recht. War blöd von mir nur den Ausschnitt aus dem Script also Blockly zu posten.

                      1. Du schreibst einen Wert in einen DP und liest ihn dann gleich wieder.
                        Wird der DP da tatsächlich benötigt? Du solltest den Wert zunächst in eine Variable schreiben und mit dieser weiterarbeiten. Wenn der Wert tatsächlich als DP benötigt wird, kannst Du ihn mit der Variablen beschreiben.
                        Merke: Datenpunkte sind keine Zwischenspeicher für Scripte!
                        Also eigentlich möchte ich ja nur wissen in welchem Raum die Uhren am Handgelenk sind. Somit muss ich nur wissen ob in dem Raum die Presense der jeweiligen Uhr also GTR4 ich oder GTR2e meiner Lebensgefährtin im Raum XY ist. Und halt einen Datenpunkt, in den immer der aktuelle Raum in dem man sicher gerade befindet geschrieben wird.

                      2. Bau an den neuralgischen Stellen mal Debug-Blöcke ein, um zu sehen mit welchen Werten da überhaupt gearbeitet wird.

                      Was soll diese Wort heißen? 😄 Höre ich zum ersten mal "neuralgischen"

                      Und muss ich dann pro Raum und pro Uhr jeweils eine Variable erstellen?
                      Also bei 8 Räumen und 2 Uhren 16 Variablen in Summe?

                      Und könntest du mir vielleicht grob ein Blockly Beispiel basteln damit ich mich daran orientieren kann?

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Sushibomba last edited by Homoran

                        @sushibomba sagte in [blockly] Datum und Zeit:

                        Was soll diese Wort heißen?

                        da wo was passiert, sich etwas entscheidet, anfällig für Störungen

                        1 Reply Last reply Reply Quote 1
                        • S
                          Sushibomba @Codierknecht last edited by Sushibomba

                          @codierknecht

                          So? Sorry bin mit Json und Variablen noch nicht so firm 😕

                          json-variablen.png

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          867
                          Online

                          32.0k
                          Users

                          80.4k
                          Topics

                          1.3m
                          Posts

                          8
                          13
                          4455
                          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