Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Eingestellt]: Differenz zweier Datums-DP

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Eingestellt]: Differenz zweier Datums-DP

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User @CruziX last edited by

      @CruziX Sehr gerne. Ich vermute, dass der Datentyp falsch ist. Nur habe ich keine Auswahl zur Einstellung eines Zeit-DP gefunden.

      {
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1580367586937,
        "common": {
          "name": "ErfassterWasserstandDatum",
          "role": "",
          "type": "string",
          "desc": "Manuell erzeugt",
          "def": "",
          "read": true,
          "write": true
        },
        "native": {},
        "acl": {
          "object": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1636
        },
        "_id": "0_userdata.0.ErfassterWasserstandDatum",
        "type": "state"
      }
      
      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Guest last edited by

        @HeinrichB sagte in Differenz zweier Datums-DP:

        Hier einer der beiden. Angelegt beide als Zeichenkette, was vermutlich schon der Fehler ist

        gut erkannt!

        Also umwandeln in Zahl - mit Texten lässt sich schlecht rechnen

        ? 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @Homoran last edited by

          @Homoran und da habe wir die Frage. Wo umwandeln. im Skript oder bei der Anlage des DP? Das mit den Texten rechnen war mir schon klar, aber es wäre ja möglich gewesen, dass der Compiler ein typecast macht 😉

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

            @HeinrichB sagte in Differenz zweier Datums-DP:

            wäre ja möglich gewesen, dass der Compiler ein typecast macht

            Dann müsste der ja Gedanken lesen können.

            @HeinrichB sagte in Differenz zweier Datums-DP:

            Wo umwandeln. im Skript oder bei der Anlage des DP?

            Egal - aber im DP ist entscheidend wie der Wert ankommt

            ? 1 Reply Last reply Reply Quote 0
            • ?
              A Former User @Homoran last edited by

              @Homoran said in Differenz zweier Datums-DP:

              Dann müsste der ja Gedanken lesen können.

              Naja, da du der erfahrene ioBroker-Mann bist, lass ich das mal so stehen. Es gibt dynamische Typisierungen etc. Aber das ist eine andere Sache und nicht relevant.

              Was mich natürlich dann interessiert, wie man ein Datum in der Form dd.mm.yy als Zahl anlegt.
              Ich versuche es mal im Blockly selbst 😄

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

                @HeinrichB sagte in Differenz zweier Datums-DP:

                Es gibt dynamische Typisierungen etc.

                korrekt - aber bei Konkatenation von zwei verschiedenen (Zahl und Text) - was dann?

                Erst einmal:
                Wo kommen die Werte deiner Datenpunkte her?
                in welchem Format?

                ? 1 Reply Last reply Reply Quote 0
                • ?
                  A Former User @Homoran last edited by

                  @Homoran said in Differenz zweier Datums-DP:

                  korrekt - aber bei Konkatenation von zwei verschiedenen (Zahl und Text) - was dann?

                  Wie ich schrieb, habe ich eh den Verdacht gehabt, dass der Typ nicht stimmt. Es fehlt einfach in der Anlage der DP das Typ "datetime". Aber auch da keine Kritik an dem Admin, es ist nur eine Feststellung.

                  Die Punkte habe ich manuell angelegt, aber ich habe das Gefühl, dass es schon wieder so grundsätzlich wird. Darf ich das überhaupt alles machen, macht es auch Sinn, ...

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

                    @HeinrichB
                    Alles gut!

                    Nur um dir hier speziell korrekt weiterzuhelfen (und in Zukunft die Probleme auszuräumen) brauche ich diese Infos.
                    Es gibt eine dynamische Typzuordnung - und da machst du gerade eine Rechnung indem du von einem Text ein Datum abziehst

                    Also müssen wir das geradebiegen

                    @HeinrichB sagte in Differenz zweier Datums-DP:

                    Die Punkte habe ich manuell angelegt

                    aber die Werte kommen irgendwo her - und da muss dann der DP richtig für eingestellt sein

                    ? 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Guest last edited by

                      @HeinrichB
                      In welcher Masseinheit soll die Zeitdifferenz ausgegeben werden ?

                      ? 1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @Homoran last edited by A Former User

                        @Homoran

                        Ich erkläre mal meine Ansatz, dann verstehst du mein Anliegen. Ich habe einen alten analogen Wasserzähler, dessen Daten ich hin und wieder manuell ablese und in Excel eintrage und dann auch eine Jahresprognose bei gleichbleibenden Verhalten mache. Das will ich in den ioBroker umziehen.
                        Also Ausgangswert und Datum ist die letzte Ablesung für die Jahresrechnung. Dazu habe ich zwei Datenpunkte manuell angelegt und die Daten eingetragen. Vebrauchsdifferenz und Zeitdifferenz werden linear auf 365 Tage extrapoliert (und auch hier: ich weiss, es ist eine Abschätzung und im Sommer ist alles anders und ja, die Differentiale aufintegriert wäre das genauere, aber es ist die einfachste machbare numerische Approximation und reicht mir aus; geht nicht an dich @Homoran, aber ich kenne die ganzen anderen Kameraden bei dem Thema zu gut).

                        Mit den Basisdaten will ich dann die aktuellen Werte, eingegeben über die VIS, dann zur Prognose heranziehen. D.h. ich habe dazu aktuell die vier DP angelegt:

                        • zweimal numerische Werte: Ausgangs- und aktueller Wert
                        • zweimal die Daten (pl., Datum) als String (da habe ich ein DateTime gesucht o.ä.)

                        Das ich ein typ-mixing hatte, sah ich selbst, nur fand ich nix auf Anhieb, dass mir die Chance habe eine DateTime-DP anzulegen.

                        Danke

                        Homoran 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @paul53 last edited by

                          @paul53 Ist mir egal, da ich es dann auf Tage umrechne.

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

                            @HeinrichB
                            Das mit den Datenpunkten habe ich schon lange verstanden - deine Genauigkeit ist mir piep egal.

                            Ich muss nur wissen wie die WERTE in den Datenpunkt kommen.
                            trägst du die auch manuell ein?

                            Date-Time als Text ist ok, dann wandeln in Datum

                            ? 1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User @Homoran last edited by

                              @Homoran said in Differenz zweier Datums-DP:

                              Das mit den Datenpunkten habe ich schon lange verstanden - deine Genauigkeit ist mir piep egal.

                              So mag ich das; soll jeder für sich wissen;-)

                              Ich muss nur wissen wie die WERTE in den Datenpunkt kommen.
                              trägst du die auch manuell ein?

                              Ja, so hatte ich es gemacht: Direkt über die Objekt-Maske.

                              Date-Time als Text ist ok, dann wandeln in Datum

                              Wo ginge das bei Blockly?

                              Danke

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

                                @HeinrichB sagte in Differenz zweier Datums-DP:

                                Ja, so hatte ich es gemacht: Direkt über die Objekt-Maske.

                                Schwere Geburt - Danke
                                Dann bitte die Typen der Datenpunkte anpassen

                                @HeinrichB sagte in Differenz zweier Datums-DP:

                                Wo ginge das bei Blockly?

                                Da bin ich jetzt nicht ganz so fit.
                                Es gibt Konvertierungs-Blöcke, da ist auch ein "Nach Datum/Zeit" bei.

                                Außerdem ein weiterer Schritt "Datum/Zeit nach Datumsobjekt"
                                Ein Datumsobjekt müssten die Millisekunden in Linuxtime sein, ebenso sollten so die Timestamps von ioBroker in diesem Format ankommen.

                                Sehr viele Konjunktiva, da ich mir da nicht sicher bin

                                ? 1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @Homoran last edited by

                                  @Homoran Danke für die Hilfe. Ansonsten lasse ich es einfach so, wie es ist. Ich hatte es mir als eine einfache Sache vorgestellt und im Sinne der privaten Systemzusammenführung. Aber dann bleibe ich bei der XLS und danke für Support 🙂

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

                                    @HeinrichB sagte in [Eingestellt]: Differenz zweier Datums-DP:

                                    Ich hatte es mir als eine einfache Sache vorgestellt

                                    Was ist denn jetzt nicht einfach??

                                    Nur weil ich, der nicht skripten kann, es nicht weiß?

                                    ? 1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User @Homoran last edited by

                                      @Homoran Nein, es ist zuviel Aufwand für euch alle.

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @Guest last edited by

                                        @HeinrichB sagte:

                                        es ist zuviel Aufwand für euch alle.

                                        Ist es nicht. Ein Datum im Format dd.mm.yyyy muss umgewandelt werden in ein Format yyyy-mm-dd, damit es konvertiert werden kann.

                                        Blockly_temp.JPG

                                        <xml xmlns="http://www.w3.org/1999/xhtml">
                                         <variables>
                                           <variable type="" id="gL!a815B-lSOIZwGTf5~">datum</variable>
                                           <variable type="" id="xqWuWy*##]f:{aNWj|0k">Zeitdifferenz</variable>
                                         </variables>
                                         <block type="procedures_defreturn" id="%d.Lx10#X98K{nh@Q)O[" x="37" y="-63">
                                           <mutation>
                                             <arg name="datum" varid="gL!a815B-lSOIZwGTf5~"></arg>
                                           </mutation>
                                           <field name="NAME">Datum2ms</field>
                                           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                           <statement name="STACK">
                                             <block type="variables_set" id="~lU1i?q89DoJ~.!0EHHo">
                                               <field name="VAR" id="gL!a815B-lSOIZwGTf5~" variabletype="">datum</field>
                                               <value name="VALUE">
                                                 <block type="lists_split" id="l=mI77^xeS.P4d.01q5E">
                                                   <mutation mode="SPLIT"></mutation>
                                                   <field name="MODE">SPLIT</field>
                                                   <value name="INPUT">
                                                     <block type="variables_get" id="tCRDDd:RR2gWxEU`iqzf">
                                                       <field name="VAR" id="gL!a815B-lSOIZwGTf5~" variabletype="">datum</field>
                                                     </block>
                                                   </value>
                                                   <value name="DELIM">
                                                     <shadow type="text" id="J+MV42tSJPSrcI%(MAg*">
                                                       <field name="TEXT">.</field>
                                                     </shadow>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="variables_set" id="y3eG5o.L|g,4ef6*2X53">
                                                   <field name="VAR" id="gL!a815B-lSOIZwGTf5~" variabletype="">datum</field>
                                                   <value name="VALUE">
                                                     <block type="text_join" id="z8fwV+}GIQwpb^}-RI}g">
                                                       <mutation items="5"></mutation>
                                                       <value name="ADD0">
                                                         <block type="lists_getIndex" id="WP[JReg?+~+LPQxG_@M2">
                                                           <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="%,-[6x8o4aRE|PZ,nR5E">
                                                               <field name="VAR" id="gL!a815B-lSOIZwGTf5~" variabletype="">datum</field>
                                                             </block>
                                                           </value>
                                                           <value name="AT">
                                                             <block type="math_number" id="(dI9@FOg_C|)E%F/AorD">
                                                               <field name="NUM">3</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <value name="ADD1">
                                                         <block type="text" id="OY2Yua:$AY,t+]Lc)Z8I">
                                                           <field name="TEXT">-</field>
                                                         </block>
                                                       </value>
                                                       <value name="ADD2">
                                                         <block type="lists_getIndex" id="5NSC@1{C#cYT/aUW3:+~">
                                                           <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="+tLaz)}KqVWarSb?(q%G">
                                                               <field name="VAR" id="gL!a815B-lSOIZwGTf5~" variabletype="">datum</field>
                                                             </block>
                                                           </value>
                                                           <value name="AT">
                                                             <block type="math_number" id="KK@|_2Nm|j=9@_)wI8hu">
                                                               <field name="NUM">2</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <value name="ADD3">
                                                         <block type="text" id="ke/6GufbVzq;c43`TDL?">
                                                           <field name="TEXT">-</field>
                                                         </block>
                                                       </value>
                                                       <value name="ADD4">
                                                         <block type="lists_getIndex" id="XNlpu$^GR/+Nq.??5wwg">
                                                           <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="fpE*2H2(A1g8yDUQKhT-">
                                                               <field name="VAR" id="gL!a815B-lSOIZwGTf5~" variabletype="">datum</field>
                                                             </block>
                                                           </value>
                                                           <value name="AT">
                                                             <block type="math_number" id="hA:?b!N9Y_:no1oVnzyS">
                                                               <field name="NUM">1</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </next>
                                             </block>
                                           </statement>
                                           <value name="RETURN">
                                             <block type="convert_from_date" id="Oe(q.AD)hV0*J`ve*^CN">
                                               <mutation format="false" language="false"></mutation>
                                               <field name="OPTION">object</field>
                                               <value name="VALUE">
                                                 <block type="variables_get" id="gHmH!qA*/]SkJuqD=@+p">
                                                   <field name="VAR" id="gL!a815B-lSOIZwGTf5~" variabletype="">datum</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                         <block type="on_ext" id="iaBLIinyq,K=hAV*;k%f" x="38" y="213">
                                           <mutation items="1"></mutation>
                                           <field name="CONDITION">ne</field>
                                           <field name="ACK_CONDITION"></field>
                                           <value name="OID0">
                                             <shadow type="field_oid" id="j%v-elP`*f5]tkjlxrns">
                                               <field name="oid">default</field>
                                             </shadow>
                                           </value>
                                           <statement name="STATEMENT">
                                             <block type="variables_set" id="/:)C.{I!fB3z%X]%Au_i">
                                               <field name="VAR" id="xqWuWy*##]f:{aNWj|0k" variabletype="">Zeitdifferenz</field>
                                               <value name="VALUE">
                                                 <block type="math_arithmetic" id="zP-LvQ]qfHYht=H]25NV" inline="false">
                                                   <field name="OP">MINUS</field>
                                                   <value name="A">
                                                     <shadow type="math_number" id="F;)q:+Z=_$vKj3$iTWR;">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="time_get" id="u`R9-cfB:qz*3R;Dq~ap">
                                                       <mutation format="false" language="false"></mutation>
                                                       <field name="OPTION">object</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <shadow type="math_number" id="PAg*1M%tyNbF{(pbsWnk">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="procedures_callreturn" id="WzsL$_xM;SvdzA[4CUmT">
                                                       <mutation name="Datum2ms">
                                                         <arg name="datum"></arg>
                                                       </mutation>
                                                       <value name="ARG0">
                                                         <block type="get_value" id=")[1PLS3Xo%yTAOjAh[`v">
                                                           <field name="ATTR">val</field>
                                                           <field name="OID">ID auswählen</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="update" id=")^y++_%S/^fIU8tKL|Ka">
                                                   <mutation delay_input="false"></mutation>
                                                   <field name="OID">Object ID</field>
                                                   <field name="WITH_DELAY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="math_round" id="tP}@DK.iPY`z#|!la5rV">
                                                       <field name="OP">ROUNDDOWN</field>
                                                       <value name="NUM">
                                                         <shadow type="math_number" id="XQ|R*FY}-kcXscPZ8p{[">
                                                           <field name="NUM">3.1</field>
                                                         </shadow>
                                                         <block type="math_arithmetic" id="!GFLijUhd-E/uImbe)-D">
                                                           <field name="OP">DIVIDE</field>
                                                           <value name="A">
                                                             <shadow type="math_number" id="}!W0Si}sMIz5.hpDj_t@">
                                                               <field name="NUM">1</field>
                                                             </shadow>
                                                             <block type="variables_get" id="lp-`qW:xvX$AH`;H:6:m">
                                                               <field name="VAR" id="xqWuWy*##]f:{aNWj|0k" variabletype="">Zeitdifferenz</field>
                                                             </block>
                                                           </value>
                                                           <value name="B">
                                                             <shadow type="math_number" id="k(b?|li^/=,~a5i4n{q_">
                                                               <field name="NUM">86400000</field>
                                                             </shadow>
                                                           </value>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="update" id="9JinxiH`x_B}.Iai]|lf">
                                                       <mutation delay_input="false"></mutation>
                                                       <field name="OID">Object ID</field>
                                                       <field name="WITH_DELAY">FALSE</field>
                                                       <value name="VALUE">
                                                         <block type="time_get" id="7ZI{o,-RCI9cjUQhktx~">
                                                           <mutation format="false" language="false"></mutation>
                                                           <field name="OPTION">DD.MM.YYYY</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </statement>
                                         </block>
                                        </xml>
                                        

                                        ? 2 Replies Last reply Reply Quote 0
                                        • ?
                                          A Former User @paul53 last edited by

                                          @paul53 Danke; ich probiere mich mal dran 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • ?
                                            A Former User @paul53 last edited by

                                            @paul53 said in [Eingestellt]: Differenz zweier Datums-DP:

                                            Ein Datum im Format dd.mm.yyyy muss umgewandelt werden in ein Format yyyy-mm-dd

                                            Das war der Knackpunkt. Vielen Dank dafür. ich habe Deine Skripts lesen können und damit mein Skript aufgebaut. Nicht so generisch wie das Deinige aber es tut es 🙂

                                            Danke

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            568
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            24
                                            1042
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo