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] Zeitanzeige für geöffnetes Garagentor

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Zeitanzeige für geöffnetes Garagentor

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

      Hallo zusammen,

      ich möchte mir die Zeit, die das Garagentor geöffnet ist anzeigen lassen.
      Hierzu habe ich folgende DPs in meinem Blockly verwendet.

      • PROCESS : STABLE(0) / NOT_STABLE(1)
      • DOOR_STATE : CLOSES(0) / OPEN(1) / VENTILATION_POSITION(2) / POSITION_UNKNOWN(3)

      Folgende Probleme habe ich.

      Der Timer reagiert nur auf den DOOR_STATE = 1.
      DOOR_STATE = 2 oder 3 werden ignoriert.
      Wenn DOOR_STATE = 1 ist, dann zählt er zwar die Zeit jede Sekunde um 1 hoch, das Konvertieren in SS:MM:ss funktioniert aber nicht und es wird mir im Protokoll immer nur 01:00:00 angezeigt.

      c6fae82a-0779-4ccf-89eb-07cb1a91751f-image.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="@Y[`U]x.[-R}OO*Z1F)/">Zeit</variable>
          <variable type="interval" id="Timer">Timer</variable>
        </variables>
        <block type="on_ext" id="3V-5]5,8V.YQ)/~;)+XL" x="63" y="-12">
          <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="YGs/7sL@tljazDyww7hj">
              <field name="oid">alias.0.Homematic.Garagentor.PROCESS</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="debug" id="OoUsEWvvhE+LK37q@JIQ">
              <field name="Severity">log</field>
              <value name="TEXT">
                <shadow type="text" id="vF.@Ws*,,wGey[bs;kor">
                  <field name="TEXT">test</field>
                </shadow>
                <block type="text_join" id="EfLRpy-2/R_:=d40ATn2">
                  <mutation items="2"></mutation>
                  <value name="ADD0">
                    <block type="text" id="DX3,mSoyobZG:Bw2$HTm">
                      <field name="TEXT">PROCESS : </field>
                    </block>
                  </value>
                  <value name="ADD1">
                    <block type="on_source" id="V*vPL^3P^aoJPP:GA{+?">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="timeouts_clearinterval" id="=E^6HXf1w0EkPNy,NZgS">
                  <field name="NAME">Timer</field>
                  <next>
                    <block type="variables_set" id="b,%FstzP.Hv97i1qUioV">
                      <field name="VAR" id="@Y[`U]x.[-R}OO*Z1F)/">Zeit</field>
                      <value name="VALUE">
                        <block type="math_number" id="_]qJp+j%cSa8DSDl?!o`">
                          <field name="NUM">0</field>
                        </block>
                      </value>
                      <next>
                        <block type="timeouts_wait" id="VEU0V,yMS]@lLJk^ZJwx">
                          <field name="DELAY">5000</field>
                          <field name="UNIT">ms</field>
                          <next>
                            <block type="controls_if" id="LijszT++oO1(C[,V.c4-">
                              <value name="IF0">
                                <block type="logic_compare" id="s4S]@H;*HTtdg6y{mwVS">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="on_source" id="[4LLtrs9LO[,|nLcnz!4">
                                      <field name="ATTR">state.val</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id=".}|i~$`7Xbu?c1kP9TPK">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="controls_if" id="T-6/]kW0.yjC5!P=RaGv">
                                  <mutation elseif="1"></mutation>
                                  <value name="IF0">
                                    <block type="logic_compare" id=",YpDqJHAR(Px`a,dFo3)">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="get_value" id="Jcmkx3iWU4*U`@AGwgu9">
                                          <field name="ATTR">val</field>
                                          <field name="OID">alias.0.Homematic.Garagentor.DOOR_STATE</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="math_number" id="wyYItj4C{(_ofS/N$tuV">
                                          <field name="NUM">0</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="update" id="a$z9,:Ust,h/k@].YB#7">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">0_userdata.0.Eigene_Datenpunkte.Sonstiges.Tuer/Tor_-_Garagentor_01_-_Timer</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="convert_from_date" id="t,OabU:.X3$oZ*Ap0eTL">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                          <field name="OPTION">hh:mm:ss</field>
                                          <value name="VALUE">
                                            <block type="variables_get" id="xf*|PE5gbv)Zz0W|2ow*">
                                              <field name="VAR" id="@Y[`U]x.[-R}OO*Z1F)/">Zeit</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="debug" id=":%MbDo^Fi(?7FYxuc}9j">
                                          <field name="Severity">log</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="vF.@Ws*,,wGey[bs;kor">
                                              <field name="TEXT">test</field>
                                            </shadow>
                                            <block type="text_join" id="h}=sGf4sEj8i(.df*/wC">
                                              <mutation items="3"></mutation>
                                              <value name="ADD0">
                                                <block type="text" id="tT,X@ZSXFR@xbZt})HzP">
                                                  <field name="TEXT">DOOR_STATE : </field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="get_value" id="(pp;08g.`g0!MctpT_1I">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">alias.0.Homematic.Garagentor.DOOR_STATE</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                  <value name="IF1">
                                    <block type="logic_compare" id="6Ian}B+UX:-+t4T+WnBv">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="get_value" id="5^LWFO8e,n`D1xZt9eB,">
                                          <field name="ATTR">val</field>
                                          <field name="OID">alias.0.Homematic.Garagentor.DOOR_STATE</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_multi_or" id="P@HvICp]Tst6L}I6O{l*">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                                          <value name="OR0">
                                            <block type="math_number" id="}qCeF5RvvsFd])V]H$x;">
                                              <field name="NUM">1</field>
                                            </block>
                                          </value>
                                          <value name="OR1">
                                            <block type="math_number" id="O9onH|C/v[r2r|hYzSU8">
                                              <field name="NUM">2</field>
                                            </block>
                                          </value>
                                          <value name="OR2">
                                            <block type="math_number" id="aAX5qraD(4CYd`f|*p(4">
                                              <field name="NUM">3</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO1">
                                    <block type="debug" id="ZRSv17bQv{^sl~43?hK#">
                                      <field name="Severity">log</field>
                                      <value name="TEXT">
                                        <shadow type="text" id="vF.@Ws*,,wGey[bs;kor">
                                          <field name="TEXT">test</field>
                                        </shadow>
                                        <block type="text_join" id="IjxY%D8l[Htkp6oCoaoE">
                                          <mutation items="3"></mutation>
                                          <value name="ADD0">
                                            <block type="text" id="ugKoX7-nJr-,){0dw{x|">
                                              <field name="TEXT">DOOR_STATE : </field>
                                            </block>
                                          </value>
                                          <value name="ADD1">
                                            <block type="get_value" id="P_0ul!f,lU7%GVtt0sHT">
                                              <field name="ATTR">val</field>
                                              <field name="OID">alias.0.Homematic.Garagentor.DOOR_STATE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="timeouts_setinterval" id="q,RWxbXA5xgJ`jjf)z?M">
                                          <field name="NAME">Timer</field>
                                          <field name="INTERVAL">1000</field>
                                          <field name="UNIT">ms</field>
                                          <statement name="STATEMENT">
                                            <block type="math_change" id="nNJm%Y{I{CN8D2NB:CF%">
                                              <field name="VAR" id="@Y[`U]x.[-R}OO*Z1F)/">Zeit</field>
                                              <value name="DELTA">
                                                <shadow type="math_number" id=";`NeXDGS5DB+pR2@+E37">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                              </value>
                                              <next>
                                                <block type="update" id="+n94xv/Q1%iK*6OMLoc]">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                  <field name="OID">0_userdata.0.Eigene_Datenpunkte.Sonstiges.Tuer/Tor_-_Garagentor_01_-_Timer</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="convert_from_date" id="UD|H`2@.S.eGv.x]+~cW">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                      <field name="OPTION">hh:mm:ss</field>
                                                      <value name="VALUE">
                                                        <block type="variables_get" id="p%}cmJX9H$QIJuH)H2W1">
                                                          <field name="VAR" id="@Y[`U]x.[-R}OO*Z1F)/">Zeit</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="debug" id="!1z#uoeTW-[t~qn(7v;`">
                                                      <field name="Severity">log</field>
                                                      <value name="TEXT">
                                                        <shadow type="text" id="vF.@Ws*,,wGey[bs;kor">
                                                          <field name="TEXT">test</field>
                                                        </shadow>
                                                        <block type="text_join" id="c]jX~(.1/_aGDKJ.3ScG">
                                                          <mutation items="3"></mutation>
                                                          <value name="ADD0">
                                                            <block type="text" id="Y=OjGvjT)v]`m5A_Rw;Q">
                                                              <field name="TEXT">Timer : </field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="get_value" id="rB{|Bhscg!pvt:iO~Hpm">
                                                              <field name="ATTR">val</field>
                                                              <field name="OID">0_userdata.0.Eigene_Datenpunkte.Sonstiges.Tuer/Tor_-_Garagentor_01_-_Timer</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
        <block type="math_number" id="#f-EsV85FcZM~,4SUX(+" x="414" y="351">
          <field name="NUM">0</field>
        </block>
      </xml>
      
      T paul53 2 Replies Last reply Reply Quote 0
      • T
        TT-Tom @TripleX last edited by

        @triplex

        dein oder müsste so aus sehen.

        8269cf61-1379-461c-90ae-28117846c244-image.png

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

          @triplex sagte: DOOR_STATE = 2 oder 3 werden ignoriert.

          Es genügt die Prüfung auf DOOR_STATE == 0.

          @triplex sagte in Zeitanzeige für geöffnetes Garagentor:

          das Konvertieren in SS:MM:ss funktioniert aber nicht und es wird mir im Protokoll immer nur 01:00:00 angezeigt.

          Es muss der Block für Zeitdifferenz verwendet werden, an den die Dauer in ms übergeben werden muss.

          Blockly_temp.JPG

          T 2 Replies Last reply Reply Quote 0
          • T
            TripleX @TT-Tom last edited by

            @tt-tom said in Zeitanzeige für geöffnetes Garagentor:

            @triplex

            dein oder müsste so aus sehen.

            8269cf61-1379-461c-90ae-28117846c244-image.png

            Danke für den Hinweis, hätte ich auch selbst drauf kommen können.
            Jetzt läuft es.

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

              @paul53 said in Zeitanzeige für geöffnetes Garagentor:

              @triplex sagte: DOOR_STATE = 2 oder 3 werden ignoriert.

              Es genügt die Prüfung auf DOOR_STATE == 0.

              @triplex sagte in Zeitanzeige für geöffnetes Garagentor:

              das Konvertieren in SS:MM:ss funktioniert aber nicht und es wird mir im Protokoll immer nur 01:00:00 angezeigt.

              Es muss der Block für Zeitdifferenz verwendet werden, an den die Dauer in ms übergeben werden muss.

              Blockly_temp.JPG

              Danke Dir!
              "Zeitdifferenz formatieren" hätte ich jetzt nicht dran gedacht weil ich ja keine Zeitdifferenz habe sondern nur einen Wert formatieren möchte.
              Jetzt läufts.

              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • T
                TripleX @paul53 last edited by

                @paul53

                Eine Frage hätte ich noch.
                Der Timer hat ja folgendes Format : SS:MM:ss
                Ich wollte jetzt über einen weiteren Datenpunkt eine Zeit festlegen, nach der ich eine Erinnerung erhalte, z.B. dass das Tor noch offen ist.
                Die Zeit im Datenpunkt wollte ich z.B. so angeben 00:15:00.

                Kann man die beiden Werte dann ganz einfach vergleichen mit "Falls Timer = 00:15:00" oder muss man das alles noch irgendwie umrechnen?
                Meine Versuche habe bisher nicht funktioniert.
                Hier mal meine 2 Versuche in einem Programm.
                Habe einmal versucht 00:15:00 in eine Zeit zu konvertieren und das andere Mal den Timer in einen String.

                b5b1cbfa-ed81-4b45-b0d9-d1cc4e64c998-image.png

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

                  @triplex sagte: Kann man die beiden Werte dann ganz einfach vergleichen mit "Falls Timer = 00:15:00"

                  Ja, ein einfacher String-Vergleich sollte genügen.

                  Blockly_temp.JPG

                  1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @TripleX last edited by

                    @triplex sagte in [[Gelöst] Zeitanzeige für

                    "Zeitdifferenz formatieren" hätte ich jetzt nicht dran gedacht weil ich ja keine Zeitdifferenz habe sondern nur einen Wert formatieren möchte.

                    Mh ja gut, aber der andere Block ist ja dafür da ein Datum zu formatieren. Deswegen hattest auch ein Problem mit der Zeitzone. Erklärung findest Du hier:

                    https://youtu.be/sxkz3O6nfFQ

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      TripleX last edited by

                      @paul53 said in [Gelöst] Zeitanzeige für geöffnetes Garagentor:

                      @triplex sagte: Kann man die beiden Werte dann ganz einfach vergleichen mit "Falls Timer = 00:15:00"

                      Ja, ein einfacher String-Vergleich sollte genügen.

                      Blockly_temp.JPG

                      Danke Dir!
                      Jetzt funktioniert es auch bei mir.
                      Ob ich "Wert" angebe oder nochmal den getriggerten Datenpunkt einsetzte, sollte doch eigentlich keinen Unterschied machen oder?
                      Hatte zuvor nämlich anstatt "Wert" nochmal den DP angegeben und da hat es, warum auch immer, nicht funktioniert.

                      DJMarc75 1 Reply Last reply Reply Quote 0
                      • DJMarc75
                        DJMarc75 @TripleX last edited by

                        @triplex sagte in [Gelöst] Zeitanzeige für geöffnetes Garagentor:

                        Hatte zuvor nämlich anstatt "Wert" nochmal den DP angegeben

                        Nein, Du hast den falschen Block gewählt:

                        Screenshot 2024-04-06 190914.png

                        Dieser wäre korrekt gewesen 😉

                        Screenshot 2024-04-06 191019.png

                        T 1 Reply Last reply Reply Quote 1
                        • T
                          TripleX @DJMarc75 last edited by

                          @djmarc75 said in [Gelöst] Zeitanzeige für geöffnetes Garagentor:

                          @triplex sagte in [Gelöst] Zeitanzeige für geöffnetes Garagentor:

                          Hatte zuvor nämlich anstatt "Wert" nochmal den DP angegeben

                          Nein, Du hast den falschen Block gewählt:

                          Screenshot 2024-04-06 190914.png

                          Dieser wäre korrekt gewesen 😉

                          Screenshot 2024-04-06 191019.png

                          Autsch!!!
                          Manchmal sieht man echt den Wald vor lauter Bäumen nicht.

                          1 Reply Last reply Reply Quote 0
                          • T
                            TripleX @haus-automatisierung last edited by

                            @haus-automatisierung said in [Gelöst] Zeitanzeige für geöffnetes Garagentor:

                            @triplex sagte in [[Gelöst] Zeitanzeige für

                            "Zeitdifferenz formatieren" hätte ich jetzt nicht dran gedacht weil ich ja keine Zeitdifferenz habe sondern nur einen Wert formatieren möchte.

                            Mh ja gut, aber der andere Block ist ja dafür da ein Datum zu formatieren. Deswegen hattest auch ein Problem mit der Zeitzone. Erklärung findest Du hier:

                            https://youtu.be/sxkz3O6nfFQ

                            Danke für den Tipp.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            847
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            5
                            12
                            382
                            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