Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst]Last Change eines Datenpunktes

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    [gelöst]Last Change eines Datenpunktes

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dominik F.
      Dominik F. last edited by Dominik F.

      Hallo zusammen,

      ich möchte die Zeit die vergangen ist in einen Datenpunkt schreiben, seit der ein anderer Datenpunkt true war.

      Das einzige was ich bisher geschafft habe ist, ist mein Log mit Warnungen voll zu knallen, daher macht es denke ich wenig Sinn meine Versuche hier zu posten.

      Hier ist ein Beispielbild, wie die Zeiten danach aussehen sollen:

      Unbenannt.PNG

      Könnte mir da jemand bei helfen?

      paul53 liv-in-sky 3 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Dominik F. last edited by

        @dominik-f sagte: seit der ein anderer Datenpunkt true war.

        Zeitspanne, seitdem der Datenpunkt von true auf false wechselte?

        1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @Dominik F. last edited by

          @dominik-f

          evtl kannst du das gebrauchen - zum testen einfach einen deiner dp ins script eintragen und script speichern - dann kommt im log eine ausgabe

          Image 6.png

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id="Oh3NFDa$+}fc=DO~Jf-#">ddd</variable>
             <variable id="FKA?ewX!1bb+EWc(eB6d">lastSichtbarWarTrue</variable>
           </variables>
           <block type="procedures_defcustomreturn" id="?nkS;i7K8*OeCvhw1@4#" x="562" y="1088">
             <mutation statements="false">
               <arg name="ddd" varid="Oh3NFDa$+}fc=DO~Jf-#"></arg>
             </mutation>
             <field name="NAME">etwas tun</field>
             <field name="SCRIPT">DQoNCg0KDQpsb2coTWF0aC5mbG9vcigoZGRkKS8xMDAwLzYwLzYwLzI0KSsiZCAiK01hdGguZmxvb3IoKGRkZCkvMTAwMC82MC82MCAlMjQpKyJoICIrTWF0aC5mbG9vcigoZGRkKS8xMDAwLzYwICU2MCkrIm0gIitNYXRoLmZsb29yKChkZGQpLzEwMDAgJTYwKSsicyAiKQ0KbGV0IG15U3dpdGNoOw0KbGV0IG15UmV0dXJuDQpsZXQgZGQ9TWF0aC5mbG9vcigoZGRkKS8xMDAwLzYwLzYwLzI0KQ0KbGV0IGhoPU1hdGguZmxvb3IoKGRkZCkvMTAwMC82MC82MCAlMjQpDQpsZXQgbW09TWF0aC5mbG9vcigoZGRkKS8xMDAwLzYwICU2MCkNCmxldCBzcz1NYXRoLmZsb29yKChkZGQpLzEwMDAgJTYwKQ0KDQppZiAoZGQ+MCkge215U3dpdGNoPTB9DQogICBlbHNlIGlmIChoaD4wKSB7bXlTd2l0Y2g9MX0NCiAgICAgICBlbHNlIGlmIChtbT4wKSB7bXlTd2l0Y2g9Mn0NCiAgICAgICAgICBlbHNlIGlmIChzcz4wKSB7bXlTd2l0Y2g9M30NCg0KDQogIHN3aXRjaCAobXlTd2l0Y2gpIHsgDQoNCiAgICBjYXNlIDA6IGRkPT0xID8gbXlSZXR1cm49InZvciBldHdhIGVpbmVtIFRhZyIgOiBteVJldHVybj0idm9yIGV0d2EgIitkZCsiIFRhZ2VuIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIGNhc2UgMTogaGg9PTEgPyBteVJldHVybj0idm9yIGV0d2EgZWluZXIgU3R1bmRlIiA6IG15UmV0dXJuPSJ2b3IgZXR3YSAiK2hoKyIgU3R1bmRlbiI7DQogICAgICAgICAgICBicmVhazsgICAgDQogICAgY2FzZSAyOiBtbT09MSA/IG15UmV0dXJuPSJ2b3IgZXR3YSBlaW5lciBNaW51dGUiIDpteVJldHVybj0idm9yIGV0d2EgIittbSsiIE1pbnV0ZW4iOw0KICAgICAgICAgICAgYnJlYWs7ICAgDQogICAgY2FzZSAzOiBzcz09MSA/IG15UmV0dXJuPSJ2b3IgZWluZXIgU2VrdW5kZSIgOm15UmV0dXJuPSJ2b3IgIitzcysiIFNla3VuZGVuIjsNCiAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICANCiAgICANCiAgICANCiAgfQ0KDQpyZXR1cm4gbXlSZXR1cm47</field>
             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           </block>
           <block type="variables_set" id="BH]Im-z4d0L,+)gs$WZ!" x="238" y="1138">
             <field name="VAR" id="FKA?ewX!1bb+EWc(eB6d">lastSichtbarWarTrue</field>
             <value name="VALUE">
               <block type="math_arithmetic" id="?[D@:Y~[MZbh{OE.7GU_">
                 <field name="OP">MINUS</field>
                 <value name="A">
                   <shadow type="math_number">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="time_get" id="D@KHQy`B^RD,?$x_4x7F">
                     <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="k$Ku+96oD$FJ,n7mK%$K">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="get_value" id="YP$6`-59w`dc_finrumc">
                     <field name="ATTR">lc</field>
                     <field name="OID">0_userdata.0.Alarm-MaterialDesign.PostitSichtbarkeit</field>
                   </block>
                 </value>
               </block>
             </value>
             <next>
               <block type="debug" id="X$+{xd^U4-M(q+#r0c72">
                 <field name="Severity">log</field>
                 <value name="TEXT">
                   <shadow type="text" id="ZHv]mJ*Q|%fDPRXmfCSl">
                     <field name="TEXT">test</field>
                   </shadow>
                   <block type="procedures_callcustomreturn" id="8P%%ft@oeVusNI@x!AlS">
                     <mutation name="etwas tun">
                       <arg name="ddd"></arg>
                     </mutation>
                     <value name="ARG0">
                       <block type="variables_get" id="jjvHV2C~TPEJtN)n~#*^">
                         <field name="VAR" id="FKA?ewX!1bb+EWc(eB6d">lastSichtbarWarTrue</field>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </next>
           </block>
          </xml>
          

          es fehlt natürlich noch die abfrage, wann der dp das letzte mal auf true war - aber damit kannst du die zeiten definieren

          du musst dir einen trigger auf wahr einrichten vom dp und diesen wert dann in einem extra eigenen dp speichern (die "aktuelle Zeit als Datum-Objekt") - ansonsten verlierst du die letzte änderung bei einem server neustart

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Dominik F. last edited by paul53

            @dominik-f
            Das folgende Blockly zeigt an, wie lange der angezeigte Zustand besteht.

            Bild_2022-02-27_103215.png

            Für die Bearbeitung mehrerer Datenpunkte sollte man eine Funktion verwenden.

            Bild_2022-02-27_104033.png

            liv-in-sky Dominik F. 2 Replies Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @paul53 last edited by

              @paul53

              wenn der datenpunkt öfters mit false aktuallisiert wird, bevor er wieder auf true geht, stimmen doch die werte nicht mehr - oder übersehe ich bei dir was ?

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @liv-in-sky last edited by

                @liv-in-sky sagte: übersehe ich bei dir was ?

                Es wird nicht der Zeitstempel, sondern die letzte Änderung ausgewertet. Es wird also angezeigt wie lange der Datenpunkt schon true bzw. false ist.

                1 Reply Last reply Reply Quote 1
                • Dominik F.
                  Dominik F. @paul53 last edited by

                  @paul53

                  Ich bin gerade am Übertragen und habe eine Frage dazu.

                  Sind die Bedingungen in der Funktion dauer nicht immer erfüllt?
                  Also wenn die es jetzt sagen wir mal um 30 Sek geht. Die 30 Sekunden sind doch in jedem der Blöcke < als 60, 3600 etc?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Dominik F. last edited by

                    @dominik-f sagte: Die 30 Sekunden sind doch in jedem der Blöcke < als 60, 3600 etc?

                    "sonst (falls)" wird nur ausgeführt, wenn die vorherige "(sonst) falls" Bedingung nicht erfüllt ist.

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

                      @paul53

                      Ah okay, danke für deine Erklärung und für deine Mühe. Ich war da komplett in der falschen Richtung unterwegs mit meinen Versuchen^^

                      1 Reply Last reply Reply Quote 0
                      • Dominik F.
                        Dominik F. @paul53 last edited by

                        @paul53

                        Das Blockly funktioniert super. Wie müsste man das Blockly verändern, damit nur die Zeitspanne angezeigt wird, wann der Datenpunkt true war?

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Dominik F. last edited by paul53

                          @dominik-f sagte: nur die Zeitspanne angezeigt wird, wann der Datenpunkt true war?

                          Die Zeitspanne während true oder die Zeitspanne danach?
                          Für die Zeitspanne danach (während false) :

                          Bild_2022-02-27_132651.png

                          Dominik F. 2 Replies Last reply Reply Quote 1
                          • Dominik F.
                            Dominik F. @paul53 last edited by

                            @paul53

                            Genau, die Zeitspanne nach true meinte ich.

                            1 Reply Last reply Reply Quote 0
                            • Dominik F.
                              Dominik F. @paul53 last edited by

                              @paul53

                              Vielen Dank für deine ganze Hilfe und deine Mühe. Ich hoffe, dass ich es irgendwann mal schaffe, sowas selber zu machen.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              906
                              Online

                              32.1k
                              Users

                              80.6k
                              Topics

                              1.3m
                              Posts

                              blockly
                              3
                              13
                              452
                              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