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

                          731
                          Online

                          32.1k
                          Users

                          80.6k
                          Topics

                          1.3m
                          Posts

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