Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Mehrere Trigger fuer eine bestimmte Zeit abfangen (z.B. Sturmklingeln) (Blockly)

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Mehrere Trigger fuer eine bestimmte Zeit abfangen (z.B. Sturmklingeln) (Blockly)

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      RappiRN Most Active last edited by

      Was noch fehlt, ist der Screenshot von deinem Blockly!

      Enrico

      1 Reply Last reply Reply Quote 0
      • N
        nibblerrick last edited by

        Ja, nein, ich habe da keinen Screenshot. Mir fehlt ja irgendwo der richtige Ansatz.

        Ich kann zwar jetzt n Trigger mit nem leeren Timeout zusammenklicken, aber das scheint mir ja nicht sinnvoll, weil dann ja immer ein neuer Timeout getriggert wird, was ja irgendwie zu nix fuehrt, glaube ich.

        Mir fehlt da so der Grundansatz was wirklich gebraucht wird und und wo hinkommt…

        Ich meine im JS-Beispiel da oben wird ja eine Funktion genutzt. Habe ich bisher noch nichts mit gemacht, hoert sich auf der anderen Seite nicht unlogisch an.

        Ich schlafe da mal drueber, vielleicht bekomme ich mit dem Ansatz morgen doch was zusammengeklickt.

        Falls einer trotzdem noch gute Tipps hat in der Zwischenzeit nehme ich die auch gerne an 🙂

        1 Reply Last reply Reply Quote 0
        • R
          RappiRN Most Active last edited by

          @nibblerrick:

          ich habe in Blockly einen Trigger auf einen Schalter (Klingel) woraufhin Sachen ausgefuehrt werden. `

          Du hast doch aber geschrieben, dass du schon ein Blockly hast, wo die Klingel schon was auslöst. Und da würde ich dir gern den Zusatz zur Verhinderung des Sturmklingelns einarbeiten!

          Enrico

          1 Reply Last reply Reply Quote 0
          • N
            nibblerrick last edited by

            Achso, ja klar, das ist kein Problem!

            Machen wir mal gerade zwei Sachen an dieser Stelle, ich hatte heute noch so eine Idee das mit einer Hilfsvariable im Script zu machen.

            Ich habe das noch nicht probiert, aber theoretisch muesste das doch so funktionieren, da die Variable ja innerhalb des Scriptes besteht und wenn der Trigger erneut ausloest durchlaeuft er nur die Bedingung mit was drin, wenn die Zeit noch nicht abgelaufen ist. D.h. alle zwei Sekunden darf jemand ein Klingeln ausloesen.

            Wenn das grundsaetzlich richtig ist bin ich a) froh und b) frage ich mich, ob es noch elegantere Wege gibt oder einfach bessere das zu schreiben.

            So, dass ist das eine…
            3803_firefox_2017-11-23_16-41-37.png

            1 Reply Last reply Reply Quote 0
            • N
              nibblerrick last edited by

              …das andere, wenn du das aktuelle moechtest, dann geht das natuerlich, das sieht so aus:

              ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
              ! <block type="on_ext" id="9vjVtq}Y4ZYV.#jTK2S" x="763" y="-612"><mutation items="1"></mutation>
              ! <field name="CONDITION">any</field>
              ! <value name="OID0"><shadow type="field_oid" id="kJ@M^!Cu%Wpje~=5g?Xn"><field name="oid">hm-rpc.0.LEQ0176404.3.INSTALL_TEST</field></shadow></value>
              ! <statement name="STATEMENT"><block type="control" id="8Zu3F(pQ}?hc0f[^VMq2"><mutation delay_input="false"></mutation>
              ! <field name="OID">hm-rpc.0.LEQ1433763.2.STATE</field>
              ! <field name="WITH_DELAY">FALSE</field>
              ! <value name="VALUE"><block type="logic_boolean" id="-,]oX|543Vnn#q8-%AQ^"><field name="BOOL">TRUE</field></block></value>
              ! <next><block type="pushover" id="RCVrT5LAYCAas9P@a64"><field name="SOUND">incoming</field>
              ! <field name="PRIORITY">0</field>
              ! <value name="MESSAGE"><shadow type="text" id="}W^80lZ
              }-I/4aHL%I}="><field name="TEXT">Klingel Nico</field></shadow></value>
              ! <value name="TITLE"><block type="text" id="RZLbJrnBxzwf8QN,1}~O"><field name="TEXT">Ein Tuerereignis ist eingetreten</field></block></value>
              ! <next><block type="telegram" id="OGm4bts2;CZDBe.Pk9R?"><value name="MESSAGE"><shadow type="text" id="mSLJ%kPe~2Np{W5`Xk5b"><field name="TEXT">Klingel Nico</field></shadow></value>
              ! <next><block type="sayit" id=":tX1E8)H~N(stQ2
              vuMD"><field name="INSTANCE">.2</field>
              ! <field name="LANGUAGE">en-GB_AP_Male</field>
              ! <value name="VOLUME"><block type="math_number" id="Vv(4u]5|saH=-Uac?B)("><field name="NUM">75</field></block></value>
              ! <value name="MESSAGE"><shadow type="text" id="8^}DvffG~)/}x4G~lvt("><field name="TEXT">Doorbell Nico</field></shadow></value>
              ! <next><block type="control" id="%=wyoyrNVN;u/ogR5-Na"><mutation delay_input="false"></mutation>
              ! <field name="OID">hm-rpc.0.LEQ1433763.1.SUBMIT</field>
              ! <field name="WITH_DELAY">FALSE</field>
              ! <value name="VALUE"><block type="text" id="_yR:QOZR2NrsHHqMutl2"><field name="TEXT">1,1,108000,34,2,34,2,34,2,34,2,34,2</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></xml>
              3803_firefox_2017-11-23_16-47-58.png

              1 Reply Last reply Reply Quote 0
              • R
                RappiRN Most Active last edited by

                @nibblerrick:

                Ich habe das noch nicht probiert, aber theoretisch muesste das doch so funktionieren, da die Variable ja innerhalb des Scriptes besteht und wenn der Trigger erneut ausloest durchlaeuft er nur die Bedingung mit was drin, wenn die Zeit noch nicht abgelaufen ist. D.h. alle zwei Sekunden darf jemand ein Klingeln ausloesen. `

                Das mit der Variable sollte so stimmen. Es fehlt aber noch die eigentliche Aktion unter "Klingelaktion ausführen".

                Wenn ich die ganzen Profis hier richtig verstanden habe, wäre es auch noch gut, wenn du den Timeout noch beendest, also in den Timeout noch den Baustein "stop Timeout"!

                Was dein zweites Blockly angeht, verstehe ich nicht so recht auf was du da triggerst. Was ist das für ein HM-Gerät, wo man "Install_Test" triggert?

                Enrico

                1 Reply Last reply Reply Quote 0
                • rantanplan
                  rantanplan last edited by

                  @RappiRN:

                  Wenn ich die ganzen Profis hier richtig verstanden habe, wäre es auch noch gut, wenn du den Timeout noch beendest, also in den Timeout noch den Baustein "stop Timeout"! `
                  Einen Timeout sollte man beenden bevor man ihn erneut aufruft. Da hast Du vollkommen Recht.

                  In dem Beispiel kann der Timeout aber nicht mehrmals aufgerufen werden.

                  Aber eine sinnvolle Aktion sehe ich da auch nicht.

                  Grüße

                  1 Reply Last reply Reply Quote 0
                  • N
                    nibblerrick last edited by

                    Ich sehe, ich stifte Verwirrung…

                    Da ich keine CCU habe triggert der Homematictaster immer nur INSTALL_TEST statt PRESS_SHORT. Daher nehme ich das als Trigger. Funktioniert auch soweit, kein Problem.

                    Das eine ist das aktuelle Klingelscript wo RappiRN gerne die Funktion reinbauen wollte, daher habe ich das gepostet. Das ist auch das, was aktuell bei mir laeuft.

                    Das andere wo nur der Kommentar "Klingelaktion ausfuehren" drinsteht ist die Idee, die ich habe, um mehrere Trigger in kurzer Zeit anzufangen. Das hinterher an die Kommentarstelle "Klingelaktion ausfuehren" der ganze Kram der ausgefuehrt werden soll rein muss, also das, was in meinem aktuellen Script ausgefuehrt wird, ist klar. Das ist nur gerade ein Platzhalter um die Sache mit den Triggern abfangen an sich zu diskutieren, ich wollte da nicht meinen fetten Block jetzt schon reinhauen der so unuebersichtlich ist.

                    Wenn das mit dem Timeout und dem if richtig ist muss ich das ja nur hinterher in das aktuelle Script einfuegen.

                    Und den Timeout, wenn ich das jetzt richtig durchdenke, will ich ja gerade NICHT beenden, zumindest nicht, bevor er abgelaufen ist, sonst kann ich ja wieder durchgehend klingeln.

                    Wenn der Timeout abgelaufen ist, also innerhalb des if, nach dem timeout, muss ich den doch nicht extra beenden, weil er dann ja sowieso abgelaufen ist, oder muss man abgelaufene Timeouts auch noch extra beenden?

                    Kann man das jetzt verstehen, was ich bezwecke?

                    1 Reply Last reply Reply Quote 0
                    • rantanplan
                      rantanplan last edited by

                      @nibblerrick:

                      Und den Timeout, wenn ich das jetzt richtig durchdenke, will ich ja gerade NICHT beenden, zumindest nicht, bevor er abgelaufen ist, sonst kann ich ja wieder durchgehend klingeln.

                      Wenn der Timeout abgelaufen ist, also innerhalb des if, nach dem timeout, muss ich den doch nicht extra beenden, weil er dann ja sowieso abgelaufen ist, oder muss man abgelaufene Timeouts auch noch extra beenden? `
                      Hatte ich doch geschrieben. In Deiner Konstellation muss der Timer nicht beendet werden.

                      Dein Timer kann ja nur wieder gestartet werden wenn er beendet ist.

                      Grüße

                      1 Reply Last reply Reply Quote 0
                      • N
                        nibblerrick last edited by

                        Danke, ich wollte auch nur sicher sein. Nur nicht, dass es Grundsaetzlich anders sein soll, ich gewoehne mir das an, und hinterher wundere ich mich, warum die Haelfte nicht funktioniert oder sowas. Administration ist mir nicht fremd, aber Programmieren ist einfach doch sehr neu fuer mich, da will ich nicht gleich bei den grundsaetzlichen Sachen mir Fehler angewoehnen…

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        801
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        4
                        14
                        2225
                        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