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

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

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.6k

Zeitdifferenz berechnen

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
106 Beiträge 20 Kommentatoren 22.2k Aufrufe 24 Watching
  • Ä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.
  • E erazor86

    @paul53 jetzt wird die Dauer der Lüftung in ss:mm:ss in den Datenpunkt geschrieben.

    Wie kann ich dieses Format jetzt in eine Dezimalzahl konvertieren? Bspw. aus 08:30:00 soll dann 8,5 werden.
    Ich habe es wie folgt probiert, allerdings wird mir nur die 8h ausgegeben..
    dezimal.JPG

    <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="g10!%+,PQcoL^1CtCc1M" x="-162" y="-487">
      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
      <field name="CONDITION">ne</field>
      <field name="ACK_CONDITION"></field>
      <value name="OID0">
        <shadow type="field_oid" id="1^6dn_Y//1Ld.:S1*pg/">
          <field name="oid">0_userdata.0.Datenpunkte.Rechengrößen.Dauer</field>
        </shadow>
      </value>
      <statement name="STATEMENT">
        <block type="update" id="Qg5uQ5,C~h#CP}OXp,n|">
          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
          <field name="OID">0_userdata.0.Datenpunkte.Rechengrößen.Dauer_dezimal</field>
          <field name="WITH_DELAY">FALSE</field>
          <value name="VALUE">
            <block type="convert_tonumber" id="7`9D*4n16D87os~S.wgX">
              <value name="VALUE">
                <block type="on_source" id="6QPqXzV(jXa`:A/Jy*s|">
                  <field name="ATTR">state.val</field>
                </block>
              </value>
            </block>
          </value>
        </block>
      </statement>
    </block>
    
    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #44

    @erazor86 sagte: Format jetzt in eine Dezimalzahl konvertieren?

    Schreibe besser den Wert als Dezimalzahl im ursprünglichen Skript:

    Bild_2021-12-14_214147.png

    Der untere Datenpunkt erhält den Dezimalwert.

    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
    • E erazor86

      @paul53 jetzt wird die Dauer der Lüftung in ss:mm:ss in den Datenpunkt geschrieben.

      Wie kann ich dieses Format jetzt in eine Dezimalzahl konvertieren? Bspw. aus 08:30:00 soll dann 8,5 werden.
      Ich habe es wie folgt probiert, allerdings wird mir nur die 8h ausgegeben..
      dezimal.JPG

      <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="g10!%+,PQcoL^1CtCc1M" x="-162" y="-487">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="1^6dn_Y//1Ld.:S1*pg/">
            <field name="oid">0_userdata.0.Datenpunkte.Rechengrößen.Dauer</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="update" id="Qg5uQ5,C~h#CP}OXp,n|">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">0_userdata.0.Datenpunkte.Rechengrößen.Dauer_dezimal</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="convert_tonumber" id="7`9D*4n16D87os~S.wgX">
                <value name="VALUE">
                  <block type="on_source" id="6QPqXzV(jXa`:A/Jy*s|">
                    <field name="ATTR">state.val</field>
                  </block>
                </value>
              </block>
            </value>
          </block>
        </statement>
      </block>
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #45

      @erazor86
      Die Wandlung des Strings "SS:mm:ss" in eine Dezimalzahl ist etwas aufwändiger.

      Bild_2021-12-14_225151.png

      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

      E 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @erazor86
        Die Wandlung des Strings "SS:mm:ss" in eine Dezimalzahl ist etwas aufwändiger.

        Bild_2021-12-14_225151.png

        E Offline
        E Offline
        erazor86
        schrieb am zuletzt editiert von
        #46

        @paul53 said in Zeitdifferenz berechnen:

        @erazor86
        Die Wandlung des Strings "SS:mm:ss" in eine Dezimalzahl ist etwas aufwändiger.

        Bild_2021-12-14_225151.png

        danke, doch irgendwie gibt es hierbei ein Problem... steige nicht ganz durch, wo das Problem liegt:
        log.JPG

        paul53P 1 Antwort Letzte Antwort
        0
        • E erazor86

          @paul53 said in Zeitdifferenz berechnen:

          @erazor86
          Die Wandlung des Strings "SS:mm:ss" in eine Dezimalzahl ist etwas aufwändiger.

          Bild_2021-12-14_225151.png

          danke, doch irgendwie gibt es hierbei ein Problem... steige nicht ganz durch, wo das Problem liegt:
          log.JPG

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

          @erazor86 sagte: wo das Problem liegt:

          Poste bitte den Javascript-Code ohne die letzte Zeile in Code tags.

          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

          E 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @erazor86 sagte: wo das Problem liegt:

            Poste bitte den Javascript-Code ohne die letzte Zeile in Code tags.

            E Offline
            E Offline
            erazor86
            schrieb am zuletzt editiert von
            #48

            @paul53

            <xml xmlns="https://developers.google.com/blockly/xml">
              <variables>
                <variable id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</variable>
                <variable id="9zZ/z:qt+2ur[Mg(U{^@">Liste</variable>
              </variables>
              <block type="on_ext" id="g10!%+,PQcoL^1CtCc1M" x="-187" y="-487">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="1^6dn_Y//1Ld.:S1*pg/">
                    <field name="oid">0_userdata.0.Datenpunkte.Rechengrößen.Dauer</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="variables_set" id="jmdG%dMd*=ZRFyjN};FO">
                    <field name="VAR" id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</field>
                    <value name="VALUE">
                      <block type="lists_split" id="UrkwL9|$/`pGV6dtQ4=#">
                        <mutation mode="SPLIT"></mutation>
                        <field name="MODE">SPLIT</field>
                        <value name="INPUT">
                          <block type="on_source" id="/tG2*O8M2}DxPJBVce+(">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                        <value name="DELIM">
                          <shadow type="text" id="jddb#N[0ZokH]@uv|$^L">
                            <field name="TEXT">:</field>
                          </shadow>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="variables_set" id="yo,~CC4vFjRQ+!BI[Dj3">
                        <field name="VAR" id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</field>
                        <value name="VALUE">
                          <block type="math_arithmetic" id=";{JdB#Q(L~2pI)@VEq]X" inline="false">
                            <field name="OP">ADD</field>
                            <value name="A">
                              <shadow type="math_number" id="3c9}N}KuPq4SPU`Vi.}0">
                                <field name="NUM">1</field>
                              </shadow>
                              <block type="convert_tonumber" id="6tSv_rtVlamrBt%%sdNk">
                                <value name="VALUE">
                                  <block type="lists_getIndex" id="j;YZ-#|;ymc?7Z!/}m`$">
                                    <mutation statement="false" at="true"></mutation>
                                    <field name="MODE">GET</field>
                                    <field name="WHERE">FROM_START</field>
                                    <value name="VALUE">
                                      <block type="variables_get" id="*zdTBCpC?k.-sQA7_Jd6">
                                        <field name="VAR" id="9zZ/z:qt+2ur[Mg(U{^@">Liste</field>
                                      </block>
                                    </value>
                                    <value name="AT">
                                      <block type="math_number" id="8e{^1DPK0hDM:M;#X-S2">
                                        <field name="NUM">1</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="B">
                              <shadow type="math_number" id="pL0;D`,uYz`_FzqS0iED">
                                <field name="NUM">1</field>
                              </shadow>
                              <block type="math_rndfixed" id="dngO+Sv-~SYJ@nbcCD?}">
                                <field name="n">1</field>
                                <value name="x">
                                  <shadow type="math_number" id="IkY$?m}d-0oo0[1S/kHE">
                                    <field name="NUM">3.1234</field>
                                  </shadow>
                                  <block type="math_arithmetic" id="W{h5)61$s9~M5v9,Fi-O">
                                    <field name="OP">DIVIDE</field>
                                    <value name="A">
                                      <shadow type="math_number" id="]yL|:!R]:vuM,{XmCAR+">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="lists_getIndex" id="}XJb*fL,oH]:}i%XL1@/">
                                        <mutation statement="false" at="true"></mutation>
                                        <field name="MODE">GET</field>
                                        <field name="WHERE">FROM_START</field>
                                        <value name="VALUE">
                                          <block type="variables_get" id="}~3#`VQg2s=7HTPvh~,0">
                                            <field name="VAR" id="9zZ/z:qt+2ur[Mg(U{^@">Liste</field>
                                          </block>
                                        </value>
                                        <value name="AT">
                                          <block type="math_number" id="ge_58=bFeMNGFo7bk8`9">
                                            <field name="NUM">2</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number" id="1mGyZqUY*qCf4zf!K^TZ">
                                        <field name="NUM">60</field>
                                      </shadow>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="update" id="Qg5uQ5,C~h#CP}OXp,n|">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Datenpunkte.Rechengrößen.Dauer_dezimal</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="variables_get" id=";*9U=xcn:`{pl^f5-rs,">
                                <field name="VAR" id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </xml>
            
            paul53P 1 Antwort Letzte Antwort
            0
            • E erazor86

              @paul53

              <xml xmlns="https://developers.google.com/blockly/xml">
                <variables>
                  <variable id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</variable>
                  <variable id="9zZ/z:qt+2ur[Mg(U{^@">Liste</variable>
                </variables>
                <block type="on_ext" id="g10!%+,PQcoL^1CtCc1M" x="-187" y="-487">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                  <field name="CONDITION">ne</field>
                  <field name="ACK_CONDITION"></field>
                  <value name="OID0">
                    <shadow type="field_oid" id="1^6dn_Y//1Ld.:S1*pg/">
                      <field name="oid">0_userdata.0.Datenpunkte.Rechengrößen.Dauer</field>
                    </shadow>
                  </value>
                  <statement name="STATEMENT">
                    <block type="variables_set" id="jmdG%dMd*=ZRFyjN};FO">
                      <field name="VAR" id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</field>
                      <value name="VALUE">
                        <block type="lists_split" id="UrkwL9|$/`pGV6dtQ4=#">
                          <mutation mode="SPLIT"></mutation>
                          <field name="MODE">SPLIT</field>
                          <value name="INPUT">
                            <block type="on_source" id="/tG2*O8M2}DxPJBVce+(">
                              <field name="ATTR">state.val</field>
                            </block>
                          </value>
                          <value name="DELIM">
                            <shadow type="text" id="jddb#N[0ZokH]@uv|$^L">
                              <field name="TEXT">:</field>
                            </shadow>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="variables_set" id="yo,~CC4vFjRQ+!BI[Dj3">
                          <field name="VAR" id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</field>
                          <value name="VALUE">
                            <block type="math_arithmetic" id=";{JdB#Q(L~2pI)@VEq]X" inline="false">
                              <field name="OP">ADD</field>
                              <value name="A">
                                <shadow type="math_number" id="3c9}N}KuPq4SPU`Vi.}0">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="convert_tonumber" id="6tSv_rtVlamrBt%%sdNk">
                                  <value name="VALUE">
                                    <block type="lists_getIndex" id="j;YZ-#|;ymc?7Z!/}m`$">
                                      <mutation statement="false" at="true"></mutation>
                                      <field name="MODE">GET</field>
                                      <field name="WHERE">FROM_START</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="*zdTBCpC?k.-sQA7_Jd6">
                                          <field name="VAR" id="9zZ/z:qt+2ur[Mg(U{^@">Liste</field>
                                        </block>
                                      </value>
                                      <value name="AT">
                                        <block type="math_number" id="8e{^1DPK0hDM:M;#X-S2">
                                          <field name="NUM">1</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <shadow type="math_number" id="pL0;D`,uYz`_FzqS0iED">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="math_rndfixed" id="dngO+Sv-~SYJ@nbcCD?}">
                                  <field name="n">1</field>
                                  <value name="x">
                                    <shadow type="math_number" id="IkY$?m}d-0oo0[1S/kHE">
                                      <field name="NUM">3.1234</field>
                                    </shadow>
                                    <block type="math_arithmetic" id="W{h5)61$s9~M5v9,Fi-O">
                                      <field name="OP">DIVIDE</field>
                                      <value name="A">
                                        <shadow type="math_number" id="]yL|:!R]:vuM,{XmCAR+">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="lists_getIndex" id="}XJb*fL,oH]:}i%XL1@/">
                                          <mutation statement="false" at="true"></mutation>
                                          <field name="MODE">GET</field>
                                          <field name="WHERE">FROM_START</field>
                                          <value name="VALUE">
                                            <block type="variables_get" id="}~3#`VQg2s=7HTPvh~,0">
                                              <field name="VAR" id="9zZ/z:qt+2ur[Mg(U{^@">Liste</field>
                                            </block>
                                          </value>
                                          <value name="AT">
                                            <block type="math_number" id="ge_58=bFeMNGFo7bk8`9">
                                              <field name="NUM">2</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="1mGyZqUY*qCf4zf!K^TZ">
                                          <field name="NUM">60</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="update" id="Qg5uQ5,C~h#CP}OXp,n|">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.Datenpunkte.Rechengrößen.Dauer_dezimal</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="variables_get" id=";*9U=xcn:`{pl^f5-rs,">
                                  <field name="VAR" id="H_b:)/lk~U=V#?2Fm-_6">Einschaltdauer</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </xml>
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #49

              @erazor86
              Tausche an 2 Stellen die Variable Liste gegen Einschaltdauer.

              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

              E B 2 Antworten Letzte Antwort
              0
              • paul53P paul53

                @erazor86
                Tausche an 2 Stellen die Variable Liste gegen Einschaltdauer.

                E Offline
                E Offline
                erazor86
                schrieb am zuletzt editiert von
                #50

                @paul53
                :face_palm: manchmal könnte es so einfach sein.... Vielen Dank.. :)

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @erazor86
                  Tausche an 2 Stellen die Variable Liste gegen Einschaltdauer.

                  B Offline
                  B Offline
                  brofelscher
                  schrieb am zuletzt editiert von
                  #51

                  Hallo zusammen,

                  ich komme mit meiner Differenzzeit in Minuten ebenfalls nicht weiter. Ich versuche die Zeitdifferenz zwischen "Jetzt" und der letzten Aktualisierung eines Datenpunktes in Minuten zu errechnen und diese in den Datenpunkt "AbwesendSeitMinuten" zu schreiben.

                  Das folgende Blockly funktioniert bis 59 Minuten prima, alles darüber hinaus funktioniert jedoch nicht. Es werden also zum Beispiel nicht 67 Minuten Differenz dargestellt, sondern nur "7". Die restlichen 60 Minuten verschwinden.

                  7bbe51c6-f99c-4a96-96c4-53d43d4fe972-image.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <block type="comment" id="vdO3Z/b-^J_@l)?Eq_R+" x="13" y="38">
                      <field name="COMMENT">Abwesenheitszeit berechnen</field>
                      <next>
                        <block type="on" id="-Se3D{`):B`]p/=p_aOI">
                          <field name="OID">fb-checkpresence.0.presentCount</field>
                          <field name="CONDITION">any</field>
                          <field name="ACK_CONDITION"></field>
                          <statement name="STATEMENT">
                            <block type="controls_if" id="g$$Mh+_gT[pE?%~wmOw7">
                              <value name="IF0">
                                <block type="logic_compare" id="B~cGcXi@sZ~Vuxeg9NrH">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value" id="Ra3xND;{0=Gx-[pw@??P">
                                      <field name="ATTR">val</field>
                                      <field name="OID">fb-checkpresence.0.presentCount</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="text" id="|2l5jEGj$arki%U@aI1*">
                                      <field name="TEXT">0</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="update" id="fO*d3{jQ-Q,Muo5?^aHF">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">0_userdata.0.AbwesendSeitMinuten</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="convert_from_date" id="xF2Wqp~s/~y5PUaC_;7^">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                      <field name="OPTION">m</field>
                                      <value name="VALUE">
                                        <block type="math_arithmetic" id="{)*krPx!rRWcV.lMNvs9">
                                          <field name="OP">MINUS</field>
                                          <value name="A">
                                            <shadow type="math_number" id="rD[[`+/pH}Z,=`RaZDKb">
                                              <field name="NUM">1</field>
                                            </shadow>
                                            <block type="time_get" id="{YtxVX%(xd!aZrGPIR%/">
                                              <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" id="U}:)~D1u/;(DT4d+kNZM">
                                              <field name="NUM">1</field>
                                            </shadow>
                                            <block type="get_value" id="}D,-3Ku3mkH){l1UJ|o?">
                                              <field name="ATTR">lc</field>
                                              <field name="OID">fb-checkpresence.0.presentCount</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </statement>
                        </block>
                      </next>
                    </block>
                  </xml>
                  
                  paul53P 1 Antwort Letzte Antwort
                  0
                  • B brofelscher

                    Hallo zusammen,

                    ich komme mit meiner Differenzzeit in Minuten ebenfalls nicht weiter. Ich versuche die Zeitdifferenz zwischen "Jetzt" und der letzten Aktualisierung eines Datenpunktes in Minuten zu errechnen und diese in den Datenpunkt "AbwesendSeitMinuten" zu schreiben.

                    Das folgende Blockly funktioniert bis 59 Minuten prima, alles darüber hinaus funktioniert jedoch nicht. Es werden also zum Beispiel nicht 67 Minuten Differenz dargestellt, sondern nur "7". Die restlichen 60 Minuten verschwinden.

                    7bbe51c6-f99c-4a96-96c4-53d43d4fe972-image.png

                    <xml xmlns="https://developers.google.com/blockly/xml">
                      <block type="comment" id="vdO3Z/b-^J_@l)?Eq_R+" x="13" y="38">
                        <field name="COMMENT">Abwesenheitszeit berechnen</field>
                        <next>
                          <block type="on" id="-Se3D{`):B`]p/=p_aOI">
                            <field name="OID">fb-checkpresence.0.presentCount</field>
                            <field name="CONDITION">any</field>
                            <field name="ACK_CONDITION"></field>
                            <statement name="STATEMENT">
                              <block type="controls_if" id="g$$Mh+_gT[pE?%~wmOw7">
                                <value name="IF0">
                                  <block type="logic_compare" id="B~cGcXi@sZ~Vuxeg9NrH">
                                    <field name="OP">EQ</field>
                                    <value name="A">
                                      <block type="get_value" id="Ra3xND;{0=Gx-[pw@??P">
                                        <field name="ATTR">val</field>
                                        <field name="OID">fb-checkpresence.0.presentCount</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="text" id="|2l5jEGj$arki%U@aI1*">
                                        <field name="TEXT">0</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="DO0">
                                  <block type="update" id="fO*d3{jQ-Q,Muo5?^aHF">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.AbwesendSeitMinuten</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="convert_from_date" id="xF2Wqp~s/~y5PUaC_;7^">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                        <field name="OPTION">m</field>
                                        <value name="VALUE">
                                          <block type="math_arithmetic" id="{)*krPx!rRWcV.lMNvs9">
                                            <field name="OP">MINUS</field>
                                            <value name="A">
                                              <shadow type="math_number" id="rD[[`+/pH}Z,=`RaZDKb">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="time_get" id="{YtxVX%(xd!aZrGPIR%/">
                                                <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" id="U}:)~D1u/;(DT4d+kNZM">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="get_value" id="}D,-3Ku3mkH){l1UJ|o?">
                                                <field name="ATTR">lc</field>
                                                <field name="OID">fb-checkpresence.0.presentCount</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </xml>
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #52

                    @brofelscher sagte: Blockly funktioniert bis 59 Minuten prima

                    Das sind die Minuten der Uhrzeit.
                    Vorschlag:

                    Bild_2021-12-28_224042.png

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <block type="comment" id="vdO3Z/b-^J_@l)?Eq_R+" x="13" y="38">
                       <field name="COMMENT">Abwesenheitszeit berechnen</field>
                       <next>
                         <block type="on" id="-Se3D{`):B`]p/=p_aOI">
                           <field name="OID">fb-checkpresence.0.presentCount</field>
                           <field name="CONDITION">any</field>
                           <field name="ACK_CONDITION"></field>
                           <statement name="STATEMENT">
                             <block type="controls_if" id="g$$Mh+_gT[pE?%~wmOw7">
                               <value name="IF0">
                                 <block type="logic_compare" id="B~cGcXi@sZ~Vuxeg9NrH">
                                   <field name="OP">EQ</field>
                                   <value name="A">
                                     <block type="get_value" id="Ra3xND;{0=Gx-[pw@??P">
                                       <field name="ATTR">val</field>
                                       <field name="OID">fb-checkpresence.0.presentCount</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <block type="text" id="|2l5jEGj$arki%U@aI1*">
                                       <field name="TEXT">0</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="update" id="fO*d3{jQ-Q,Muo5?^aHF">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">0_userdata.0.AbwesendSeitMinuten</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="math_round" id="jh5X6wfE6}koDRuR}h,7">
                                       <field name="OP">ROUND</field>
                                       <value name="NUM">
                                         <shadow type="math_number" id="dsl{1yg*UVLul@F2*}_x">
                                           <field name="NUM">3.1</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="CG|Sg`nEt;fkO/q}:-Eg">
                                           <field name="OP">DIVIDE</field>
                                           <value name="A">
                                             <shadow type="math_number" id="r16alN.iyJ)%|~KKF{p5">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="math_arithmetic" id="{)*krPx!rRWcV.lMNvs9">
                                               <field name="OP">MINUS</field>
                                               <value name="A">
                                                 <shadow type="math_number" id="rD[[`+/pH}Z,=`RaZDKb">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="time_get" id="{YtxVX%(xd!aZrGPIR%/">
                                                   <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" id="U}:)~D1u/;(DT4d+kNZM">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="on_source" id="75tkb;IKslfqIl;1JyN#">
                                                   <field name="ATTR">oldState.lc</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="7o1So,{6-3V~;lGxE-;P">
                                               <field name="NUM">60000</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                    </xml>
                    

                    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

                    B 1 Antwort Letzte Antwort
                    1
                    • paul53P paul53

                      @brofelscher sagte: Blockly funktioniert bis 59 Minuten prima

                      Das sind die Minuten der Uhrzeit.
                      Vorschlag:

                      Bild_2021-12-28_224042.png

                      <xml xmlns="https://developers.google.com/blockly/xml">
                       <block type="comment" id="vdO3Z/b-^J_@l)?Eq_R+" x="13" y="38">
                         <field name="COMMENT">Abwesenheitszeit berechnen</field>
                         <next>
                           <block type="on" id="-Se3D{`):B`]p/=p_aOI">
                             <field name="OID">fb-checkpresence.0.presentCount</field>
                             <field name="CONDITION">any</field>
                             <field name="ACK_CONDITION"></field>
                             <statement name="STATEMENT">
                               <block type="controls_if" id="g$$Mh+_gT[pE?%~wmOw7">
                                 <value name="IF0">
                                   <block type="logic_compare" id="B~cGcXi@sZ~Vuxeg9NrH">
                                     <field name="OP">EQ</field>
                                     <value name="A">
                                       <block type="get_value" id="Ra3xND;{0=Gx-[pw@??P">
                                         <field name="ATTR">val</field>
                                         <field name="OID">fb-checkpresence.0.presentCount</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="text" id="|2l5jEGj$arki%U@aI1*">
                                         <field name="TEXT">0</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <statement name="DO0">
                                   <block type="update" id="fO*d3{jQ-Q,Muo5?^aHF">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">0_userdata.0.AbwesendSeitMinuten</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="math_round" id="jh5X6wfE6}koDRuR}h,7">
                                         <field name="OP">ROUND</field>
                                         <value name="NUM">
                                           <shadow type="math_number" id="dsl{1yg*UVLul@F2*}_x">
                                             <field name="NUM">3.1</field>
                                           </shadow>
                                           <block type="math_arithmetic" id="CG|Sg`nEt;fkO/q}:-Eg">
                                             <field name="OP">DIVIDE</field>
                                             <value name="A">
                                               <shadow type="math_number" id="r16alN.iyJ)%|~KKF{p5">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="math_arithmetic" id="{)*krPx!rRWcV.lMNvs9">
                                                 <field name="OP">MINUS</field>
                                                 <value name="A">
                                                   <shadow type="math_number" id="rD[[`+/pH}Z,=`RaZDKb">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="time_get" id="{YtxVX%(xd!aZrGPIR%/">
                                                     <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" id="U}:)~D1u/;(DT4d+kNZM">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="on_source" id="75tkb;IKslfqIl;1JyN#">
                                                     <field name="ATTR">oldState.lc</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <shadow type="math_number" id="7o1So,{6-3V~;lGxE-;P">
                                                 <field name="NUM">60000</field>
                                               </shadow>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                               </block>
                             </statement>
                           </block>
                         </next>
                       </block>
                      </xml>
                      

                      B Offline
                      B Offline
                      brofelscher
                      schrieb am zuletzt editiert von
                      #53

                      @paul53 said in Zeitdifferenz berechnen:

                      Vorschlag:

                      Bild_2021-12-28_224042.png

                      Hi, dein Vorschlag passt perfekt :) Danke dir.

                      Ich habe wohl die Funktion "Minuten" missverstanden, da ich für die Minuten auch die Formatierung "mm" hätte nutzen können.
                      Und wieder ist man ein wenig schlauer :)

                      1 Antwort Letzte Antwort
                      0
                      • E Offline
                        E Offline
                        erazor86
                        schrieb am zuletzt editiert von
                        #54

                        Ich habe wieder eine neue Aufgabenstellung bzgl. Zeitverrechnung. Diesmal möchte ich die mittlere Außentemperatur der letzten 3h berechnen. Ich habe hierzu mal ein Blockly erstellt. Jedoch ist es nicht ganz korrekt, da die durchschnittliche Temp nur alle 3h neu berechnet wird. Habe es leider nicht hinbekommen wie ich es gerne hätte. Vielleicht hat jemand einen Tip?
                        tempdurchschnitt.JPG

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • E erazor86

                          Ich habe wieder eine neue Aufgabenstellung bzgl. Zeitverrechnung. Diesmal möchte ich die mittlere Außentemperatur der letzten 3h berechnen. Ich habe hierzu mal ein Blockly erstellt. Jedoch ist es nicht ganz korrekt, da die durchschnittliche Temp nur alle 3h neu berechnet wird. Habe es leider nicht hinbekommen wie ich es gerne hätte. Vielleicht hat jemand einen Tip?
                          tempdurchschnitt.JPG

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

                          @erazor86 sagte: Vielleicht hat jemand einen Tip?

                          Suche mal im Forum nach "gleitender Mittelwert".

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

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

                            Bild_2021-11-25_200531.png

                            S Offline
                            S Offline
                            Strobi
                            schrieb am zuletzt editiert von
                            #56

                            @paul53
                            Guten Abend,
                            leider funktioniert die Zeitberechnung so leider nicht.
                            Ich würde gerne immer die Zeitdifferenz bis zum nächsten Sonnenaufgang berechnen.
                            Also 1h vor dem Sonnenaufgang müsste 1h rauskommen, eine Stunde nach dem Sonnenaufgang müsste 23h rauskommen.

                            Mit folgendem Blockly kommt aber leider gar nichts raus:
                            72191ec5-e308-416a-819f-4ce029ed05d6-grafik.png

                            62cbb7ba-6d4e-4dcc-a86e-58aebfb1351d-grafik.png

                            Hat vielleicht jemand eine Idee, wie ich das hinbekommen könnte?

                            Besten Dank!

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • S Strobi

                              @paul53
                              Guten Abend,
                              leider funktioniert die Zeitberechnung so leider nicht.
                              Ich würde gerne immer die Zeitdifferenz bis zum nächsten Sonnenaufgang berechnen.
                              Also 1h vor dem Sonnenaufgang müsste 1h rauskommen, eine Stunde nach dem Sonnenaufgang müsste 23h rauskommen.

                              Mit folgendem Blockly kommt aber leider gar nichts raus:
                              72191ec5-e308-416a-819f-4ce029ed05d6-grafik.png

                              62cbb7ba-6d4e-4dcc-a86e-58aebfb1351d-grafik.png

                              Hat vielleicht jemand eine Idee, wie ich das hinbekommen könnte?

                              Besten Dank!

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

                              @strobi sagte eine Stunde nach dem Sonnenaufgang müsste 23h rauskommen.

                              Nein, dann kommt am gleichen Tag ein negativer Wert raus. Teste die Berechnung erst mal mit dem Debug-Block.

                              Der Datenpunkt scheint keinen Zustand zu haben. Ist es der richtige DP? Das Skript ist aktiv, nicht unter der Gruppe "global" erstellt und der Debug-Modus (rechts oben) ist deaktiviert?

                              Für positive Werte:

                              Bild_2022-01-17_235843.png

                              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

                              S 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @strobi sagte eine Stunde nach dem Sonnenaufgang müsste 23h rauskommen.

                                Nein, dann kommt am gleichen Tag ein negativer Wert raus. Teste die Berechnung erst mal mit dem Debug-Block.

                                Der Datenpunkt scheint keinen Zustand zu haben. Ist es der richtige DP? Das Skript ist aktiv, nicht unter der Gruppe "global" erstellt und der Debug-Modus (rechts oben) ist deaktiviert?

                                Für positive Werte:

                                Bild_2022-01-17_235843.png

                                S Offline
                                S Offline
                                Strobi
                                schrieb am zuletzt editiert von
                                #58

                                @paul53
                                So geht es - falls es noch jemanden interessiert - Zeitspanne bis zum nächsten Sonnenaufgang :-)
                                e87b1c2e-3e72-4fb5-a526-b9fb563ca8f0-grafik.png

                                1 Antwort Letzte Antwort
                                0
                                • JB_SullivanJ Offline
                                  JB_SullivanJ Offline
                                  JB_Sullivan
                                  schrieb am zuletzt editiert von
                                  #59

                                  Auch wenn dieser Thread schon "100 Jahre" alt ist, würde ich mich gerne mit meiner Frage hier anschließen, da es sich ebenfalls um eine "Zeit berechnen" Frage handelt.

                                  Konkrete Problemstellung:
                                  Ich habe zwei Datenpunkte - einmal die Zeit als UTC und dann den Lokalen Korrekturfaktor +2 Std. (CET)

                                  Wie kann ich den vorhandenen DP, welcher so aussieht 2022-10-25T13:23:32Z nun um + 2 Stunden hoch addieren?

                                  Das hier funktioniert jedenfalls nicht :(

                                  178032b4-91c6-4d87-89aa-304ba35c05c0-image.png

                                  ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                                  haus-automatisierungH 1 Antwort Letzte Antwort
                                  0
                                  • JB_SullivanJ JB_Sullivan

                                    Auch wenn dieser Thread schon "100 Jahre" alt ist, würde ich mich gerne mit meiner Frage hier anschließen, da es sich ebenfalls um eine "Zeit berechnen" Frage handelt.

                                    Konkrete Problemstellung:
                                    Ich habe zwei Datenpunkte - einmal die Zeit als UTC und dann den Lokalen Korrekturfaktor +2 Std. (CET)

                                    Wie kann ich den vorhandenen DP, welcher so aussieht 2022-10-25T13:23:32Z nun um + 2 Stunden hoch addieren?

                                    Das hier funktioniert jedenfalls nicht :(

                                    178032b4-91c6-4d87-89aa-304ba35c05c0-image.png

                                    haus-automatisierungH Offline
                                    haus-automatisierungH Offline
                                    haus-automatisierung
                                    Developer Most Active
                                    schrieb am zuletzt editiert von haus-automatisierung
                                    #60

                                    @jb_sullivan sagte in Zeitdifferenz berechnen:

                                    Wie kann ich den vorhandenen DP, welcher so aussieht 2022-10-25T13:23:32Z nun um + 2 Stunden hoch addieren?

                                    Du willst nichts addieren. Du willst den Zeitstempel nur anders formatieren (für unsere Zeitzone). Der Zeitpunkt bleibt ja genau der gleiche. Wäre ja falsch, da nun Stunden drauf zu schlagen.

                                    Das "Z" am Ende deiner Zeitangabe steht für "Zulu". Das heißt, das ist UTC. Wenn Du das nun also in die gängigen Datumsfunktionen gibst, dann wissen die schon damit umzugehen. Wenn man den Zeitpunkt nun also formatiert, dann wird die Zeitzone des Betriebssystems berücksichtigt:

                                    Screenshot 2022-10-26 at 10.47.14.png

                                    Ergibt: 25.10.2022. 15:23:32

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                      <variables>
                                        <variable id=",cJDM_Be,aiY)MRh{R/}">timeStamp</variable>
                                      </variables>
                                      <block type="variables_set" id="#s#G]QUKK_14+DT$P.$@" x="-587" y="262">
                                        <field name="VAR" id=",cJDM_Be,aiY)MRh{R/}">timeStamp</field>
                                        <value name="VALUE">
                                          <block type="convert_to_date" id="k=w+o:B(w6`jJMabP~b[">
                                            <value name="VALUE">
                                              <block type="text" id="r6t?3L$0}/3s`fDw`eh7">
                                                <field name="TEXT">2022-10-25T13:23:32Z</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="debug" id="00=-ftF0Y@P^A7$W/(F?">
                                            <field name="Severity">log</field>
                                            <value name="TEXT">
                                              <shadow type="text" id="#=,ZXQ_{QyO-CuYT@KRn">
                                                <field name="TEXT">test</field>
                                              </shadow>
                                              <block type="convert_from_date" id="Ou5k{iL@;t`k5bxyQ^,S">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                                <field name="OPTION">custom</field>
                                                <field name="FORMAT">TT.MM.JJJJ. SS:mm:ss</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="=OC%5Yj^4Ki#Oc,(S1m/">
                                                    <field name="VAR" id=",cJDM_Be,aiY)MRh{R/}">timeStamp</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </next>
                                      </block>
                                    </xml>
                                    

                                    EDIT: So gehts sogar noch einfacher

                                    Screenshot 2022-10-26 at 10.50.22.png

                                    Aber: Wenn Du ein Datum/Zeitpunkt als Wert in einem Datenpunkt speichern möchtest, dann ist UTC dafür ebenfalls korrekt. In dem Fall setzt Du die Rolle auf date und der Admin stellt den Wert dann "richtig" (heißt: in Deiner Zeitzone formatiert) dar:

                                    Screenshot 2022-10-26 at 11.04.06.png

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

                                    JB_SullivanJ 1 Antwort Letzte Antwort
                                    0
                                    • haus-automatisierungH haus-automatisierung

                                      @jb_sullivan sagte in Zeitdifferenz berechnen:

                                      Wie kann ich den vorhandenen DP, welcher so aussieht 2022-10-25T13:23:32Z nun um + 2 Stunden hoch addieren?

                                      Du willst nichts addieren. Du willst den Zeitstempel nur anders formatieren (für unsere Zeitzone). Der Zeitpunkt bleibt ja genau der gleiche. Wäre ja falsch, da nun Stunden drauf zu schlagen.

                                      Das "Z" am Ende deiner Zeitangabe steht für "Zulu". Das heißt, das ist UTC. Wenn Du das nun also in die gängigen Datumsfunktionen gibst, dann wissen die schon damit umzugehen. Wenn man den Zeitpunkt nun also formatiert, dann wird die Zeitzone des Betriebssystems berücksichtigt:

                                      Screenshot 2022-10-26 at 10.47.14.png

                                      Ergibt: 25.10.2022. 15:23:32

                                      <xml xmlns="https://developers.google.com/blockly/xml">
                                        <variables>
                                          <variable id=",cJDM_Be,aiY)MRh{R/}">timeStamp</variable>
                                        </variables>
                                        <block type="variables_set" id="#s#G]QUKK_14+DT$P.$@" x="-587" y="262">
                                          <field name="VAR" id=",cJDM_Be,aiY)MRh{R/}">timeStamp</field>
                                          <value name="VALUE">
                                            <block type="convert_to_date" id="k=w+o:B(w6`jJMabP~b[">
                                              <value name="VALUE">
                                                <block type="text" id="r6t?3L$0}/3s`fDw`eh7">
                                                  <field name="TEXT">2022-10-25T13:23:32Z</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="debug" id="00=-ftF0Y@P^A7$W/(F?">
                                              <field name="Severity">log</field>
                                              <value name="TEXT">
                                                <shadow type="text" id="#=,ZXQ_{QyO-CuYT@KRn">
                                                  <field name="TEXT">test</field>
                                                </shadow>
                                                <block type="convert_from_date" id="Ou5k{iL@;t`k5bxyQ^,S">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                                  <field name="OPTION">custom</field>
                                                  <field name="FORMAT">TT.MM.JJJJ. SS:mm:ss</field>
                                                  <value name="VALUE">
                                                    <block type="variables_get" id="=OC%5Yj^4Ki#Oc,(S1m/">
                                                      <field name="VAR" id=",cJDM_Be,aiY)MRh{R/}">timeStamp</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </xml>
                                      

                                      EDIT: So gehts sogar noch einfacher

                                      Screenshot 2022-10-26 at 10.50.22.png

                                      Aber: Wenn Du ein Datum/Zeitpunkt als Wert in einem Datenpunkt speichern möchtest, dann ist UTC dafür ebenfalls korrekt. In dem Fall setzt Du die Rolle auf date und der Admin stellt den Wert dann "richtig" (heißt: in Deiner Zeitzone formatiert) dar:

                                      Screenshot 2022-10-26 at 11.04.06.png

                                      JB_SullivanJ Offline
                                      JB_SullivanJ Offline
                                      JB_Sullivan
                                      schrieb am zuletzt editiert von JB_Sullivan
                                      #61

                                      @haus-automatisierung

                                      Naja, den Datenpunkt als UTC gibt es ja. Verstehe ich das richtig, das ich nur die Rolle ändern muss? Also in den Objektdaten von "indicator" in "date", damit nicht UTC sondern die Systemzeit ausgegeben wird?

                                      {
                                        "type": "state",
                                        "common": {
                                          "name": "timeInCar",
                                          "role": "indicator",
                                          "type": "string",
                                          "write": false,
                                          "read": true
                                        },
                                        "native": {},
                                        "from": "system.adapter.vw-connect.0",
                                        "user": "system.user.admin",
                                        "ts": 1665834213369,
                                        "_id": "vw-connect.0.FIN.status.air-conditioning.timers.timeInCar",
                                        "acl": {
                                          "object": 1636,
                                          "state": 1636,
                                          "owner": "system.user.admin",
                                          "ownerGroup": "system.group.administrator"
                                        }
                                      }
                                      

                                      ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                                      haus-automatisierungH 1 Antwort Letzte Antwort
                                      0
                                      • JB_SullivanJ JB_Sullivan

                                        @haus-automatisierung

                                        Naja, den Datenpunkt als UTC gibt es ja. Verstehe ich das richtig, das ich nur die Rolle ändern muss? Also in den Objektdaten von "indicator" in "date", damit nicht UTC sondern die Systemzeit ausgegeben wird?

                                        {
                                          "type": "state",
                                          "common": {
                                            "name": "timeInCar",
                                            "role": "indicator",
                                            "type": "string",
                                            "write": false,
                                            "read": true
                                          },
                                          "native": {},
                                          "from": "system.adapter.vw-connect.0",
                                          "user": "system.user.admin",
                                          "ts": 1665834213369,
                                          "_id": "vw-connect.0.FIN.status.air-conditioning.timers.timeInCar",
                                          "acl": {
                                            "object": 1636,
                                            "state": 1636,
                                            "owner": "system.user.admin",
                                            "ownerGroup": "system.group.administrator"
                                          }
                                        }
                                        
                                        haus-automatisierungH Offline
                                        haus-automatisierungH Offline
                                        haus-automatisierung
                                        Developer Most Active
                                        schrieb am zuletzt editiert von haus-automatisierung
                                        #62

                                        @jb_sullivan sagte in Zeitdifferenz berechnen:

                                        Verstehe ich das richtig, das ich nur die Rolle ändern muss?

                                        Theoretisch ja, laut Dokumentation wird die Rolle date für number und string unterstützt: https://www.iobroker.net/#en/documentation/dev/stateroles.md

                                        • date (common.type = string - parsable by "new Date(ddd)" string
                                        • date (common.type = number - epoch seconds * 1000

                                        Aber ersteres funktioniert im Admin aktuell nicht. Habe einen Issue aufgemacht:

                                        https://github.com/ioBroker/ioBroker.admin/issues/1770

                                        Und: Ich würde davon abraten, die Rollen von Datenpunkten anzupassen, welche man nicht selbst erstellt hat!

                                        Ein Alias wäre hier eine gute Lösung. Type number, role date und beim Lesen einfach die Funktion einfügen: new Date(val).getTime()

                                        {
                                          "common": {
                                            "name": "test",
                                            "desc": "Manuell erzeugt",
                                            "role": "date",
                                            "type": "number",
                                            "read": true,
                                            "write": true,
                                            "def": 0,
                                            "alias": {
                                              "id": "vw-connect.0.FIN.status.air-conditioning.timers.timeInCar",
                                              "read": "new Date(val).getTime()"
                                            }
                                          },
                                          "type": "state",
                                          "native": {},
                                          "_id": "alias.0.test",
                                          "acl": {
                                            "object": 1632,
                                            "state": 1636,
                                            "owner": "system.user.admin",
                                            "ownerGroup": "system.group.administrator"
                                          },
                                          "from": "system.adapter.admin.0",
                                          "user": "system.user.admin",
                                          "ts": 1666775968588
                                        }
                                        

                                        Die Frage ist nach wie vor: Was hast Du denn vor? Es ändert sich im Admin ja nur die Anzeige, wenn man die Rolle setzt. Der gespeicherte Wert bleibt genau der gleiche...

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

                                        JB_SullivanJ 1 Antwort Letzte Antwort
                                        0
                                        • haus-automatisierungH haus-automatisierung

                                          @jb_sullivan sagte in Zeitdifferenz berechnen:

                                          Verstehe ich das richtig, das ich nur die Rolle ändern muss?

                                          Theoretisch ja, laut Dokumentation wird die Rolle date für number und string unterstützt: https://www.iobroker.net/#en/documentation/dev/stateroles.md

                                          • date (common.type = string - parsable by "new Date(ddd)" string
                                          • date (common.type = number - epoch seconds * 1000

                                          Aber ersteres funktioniert im Admin aktuell nicht. Habe einen Issue aufgemacht:

                                          https://github.com/ioBroker/ioBroker.admin/issues/1770

                                          Und: Ich würde davon abraten, die Rollen von Datenpunkten anzupassen, welche man nicht selbst erstellt hat!

                                          Ein Alias wäre hier eine gute Lösung. Type number, role date und beim Lesen einfach die Funktion einfügen: new Date(val).getTime()

                                          {
                                            "common": {
                                              "name": "test",
                                              "desc": "Manuell erzeugt",
                                              "role": "date",
                                              "type": "number",
                                              "read": true,
                                              "write": true,
                                              "def": 0,
                                              "alias": {
                                                "id": "vw-connect.0.FIN.status.air-conditioning.timers.timeInCar",
                                                "read": "new Date(val).getTime()"
                                              }
                                            },
                                            "type": "state",
                                            "native": {},
                                            "_id": "alias.0.test",
                                            "acl": {
                                              "object": 1632,
                                              "state": 1636,
                                              "owner": "system.user.admin",
                                              "ownerGroup": "system.group.administrator"
                                            },
                                            "from": "system.adapter.admin.0",
                                            "user": "system.user.admin",
                                            "ts": 1666775968588
                                          }
                                          

                                          Die Frage ist nach wie vor: Was hast Du denn vor? Es ändert sich im Admin ja nur die Anzeige, wenn man die Rolle setzt. Der gespeicherte Wert bleibt genau der gleiche...

                                          JB_SullivanJ Offline
                                          JB_SullivanJ Offline
                                          JB_Sullivan
                                          schrieb am zuletzt editiert von
                                          #63

                                          @haus-automatisierung sagte in Zeitdifferenz berechnen:

                                          Die Frage ist nach wie vor: Was hast Du denn vor?

                                          Der Adapter liefert die Uhrzeit des Fahrzeugs in UTC und zusätzlich den lokalen (CET) Anpassungsfaktor +2

                                          Das Fahrzeug gibt die Geoposition aus und damit ich in der VIS sehe wie aktuell diese Geoposition ist, blende ich mir den diesen "Zeitstempel" Datenpunkt mit in die VIS ein. Klar kann ICH auch jedesmal im Kopf die 2 Stunden dazu rechnen.

                                          Damit ist aber dem WAF-Faktor leider nicht genüge getan ;) Darum wollte ich den Datenpunkt so umwandeln das ein neuer, zeitlich korrekter DP entsteht, den ich dann in die VIS verknüpfe.

                                          8ad2f5ae-da4d-47c9-8421-aa839907da88-image.png

                                          ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                                          haus-automatisierungH 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          329

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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