Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [blockly] Datum und Zeit

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    672

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

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

[blockly] Datum und Zeit

Geplant Angeheftet Gesperrt Verschoben Blockly
13 Beiträge 8 Kommentatoren 5.3k Aufrufe 6 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Tim12

    Hallo zusammen,

    ich hole das Thema mal aus der Versenkung, da ich über den gleichen Effekt gestolpert bin und noch keine Erklärung dazu auf den einschlägigen Seiten auftreiben konnte.
    Wenn ich die Differenz z.B. der "letzten Änderung" und "vorletzten Änderung" eines Objekt bilde, berechnet blockly die ms korrekt. Nach der Interpretation des Konvertierungsblocks zeigt blockly aber unabhängig des gewählten Formats immer exakt 1h zu viel, solange Stunden lt. Format angezeigt werden sollen.
    Stellt man das Format auf mm:ss statt SS:mm:ss werden allerdings keine 60 min zu viel angezeigt sondern der korrekte Zeitraum.
    Welche Logik steckt hinter dieser "Phantomstunde"?

    Vielen Dank für ein paar Einsichten

    Tim

    Thomas BraunT Online
    Thomas BraunT Online
    Thomas Braun
    Most Active
    schrieb am zuletzt editiert von
    #3

    @Tim12
    Richtige Zeit/Zeitzone im Betriebssystem eingestellt?

    date && date -u
    

    prüfen (unter Linux).

    Linux-Werkzeugkasten:
    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
    NodeJS Fixer Skript:
    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

    1 Antwort Letzte Antwort
    0
    • T Tim12

      Hallo zusammen,

      ich hole das Thema mal aus der Versenkung, da ich über den gleichen Effekt gestolpert bin und noch keine Erklärung dazu auf den einschlägigen Seiten auftreiben konnte.
      Wenn ich die Differenz z.B. der "letzten Änderung" und "vorletzten Änderung" eines Objekt bilde, berechnet blockly die ms korrekt. Nach der Interpretation des Konvertierungsblocks zeigt blockly aber unabhängig des gewählten Formats immer exakt 1h zu viel, solange Stunden lt. Format angezeigt werden sollen.
      Stellt man das Format auf mm:ss statt SS:mm:ss werden allerdings keine 60 min zu viel angezeigt sondern der korrekte Zeitraum.
      Welche Logik steckt hinter dieser "Phantomstunde"?

      Vielen Dank für ein paar Einsichten

      Tim

      F Offline
      F Offline
      fastfoot
      schrieb am zuletzt editiert von
      #4

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

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      T 1 Antwort Letzte Antwort
      1
      • F fastfoot

        @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 Offline
        T Offline
        Tim12
        schrieb am zuletzt editiert von
        #5

        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.

        paul53P F 2 Antworten Letzte Antwort
        0
        • T Tim12

          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.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #6

          @Tim12 sagte:

          Dann nehme ich gerne noch Tipps an

          Siehe hier

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • T Tim12

            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.

            F Offline
            F Offline
            fastfoot
            schrieb am zuletzt editiert von
            #7

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

            iobroker läuft unter Docker auf QNAP TS-451+
            SkriptRecovery: https://forum.iobroker.net/post/930558

            T 1 Antwort Letzte Antwort
            0
            • F fastfoot

              @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 Offline
              T Offline
              Tim12
              schrieb am zuletzt editiert von
              #8

              @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 Antwort Letzte Antwort
              0
              • T Tim12

                @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 Offline
                S Offline
                Sushibomba
                schrieb am zuletzt editiert von Sushibomba
                #9

                @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? 😧

                CodierknechtC 1 Antwort Letzte Antwort
                0
                • S 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? 😧

                  CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #10

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

                  "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

                  S 2 Antworten Letzte Antwort
                  1
                  • CodierknechtC Codierknecht

                    @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 Offline
                    S Offline
                    Sushibomba
                    schrieb am zuletzt editiert von Sushibomba
                    #11

                    @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? :D 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?

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • S 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? :D 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?

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von Homoran
                      #12

                      @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

                      kein Support per PN! - Fragen im Forum stellen -
                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      1
                      • CodierknechtC Codierknecht

                        @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 Offline
                        S Offline
                        Sushibomba
                        schrieb am zuletzt editiert von Sushibomba
                        #13

                        @codierknecht

                        So? Sorry bin mit Json und Variablen noch nicht so firm :-/

                        json-variablen.png

                        1 Antwort Letzte Antwort
                        0

                        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                        Registrieren Anmelden
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        548

                        Online

                        32.7k

                        Benutzer

                        82.6k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe