Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. "Wait" in blockly?

    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

    "Wait" in blockly?

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

      Gbits einen Wait-block ? Ich kann nichts finden…

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

        In JavaScript gibts kein "Wait". Das macht man mit Delays bzw es gibt ein "setTimeout" dann wird bestimmte Logik nach der definierten Zeit ausgeführt

        1 Reply Last reply Reply Quote 0
        • M
          mrMuppet last edited by

          ok. Dann versuche ich das mal. Danke!

          1 Reply Last reply Reply Quote 0
          • Z
            Zipkart last edited by

            Da möchte ich noch kurz eine Frage anhängen.

            Ich habe bereits timeout und Delay ausprobiert. Ich habe allerdings noch nicht genau verstanden wann die Pause eingelegt wird. Vor oder nach Ausführung des Befehls?

            Gruß Stefan

            Gesendet von iPhone mit Tapatalk

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

              Das was Du "in" das "setTimeout" reinpackst wird zeitverzögert ausgeführt. Der Restliche Code läuft weiter

              1 Reply Last reply Reply Quote 0
              • blauholsten
                blauholsten Developer last edited by

                @apollon77:

                Das was Du "in" das "setTimeout" reinpackst wird zeitverzögert ausgeführt. Der Restliche Code läuft weiter `
                bloß zu Vollständigkeit, bei setStateDelay ist es genau so.

                1 Reply Last reply Reply Quote 0
                • Z
                  Zipkart last edited by

                  Danke für den Hinweis. Jetzt bin ich wieder einmal etwas schlauer.

                  Gesendet von iPhone mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • D
                    Desa last edited by

                    Ok, nur zum Verständnis , gibt es auch das gegenteil ? also wird 1 min ausgeführt und hört dann auf ?

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

                      @Desa:

                      also wird 1 min ausgeführt und hört dann auf ? `
                      Was soll den 1 min lang ausgeführt werden ? Eine Endlosschleife, die die CPU blockiert, oder ein Programm in definiertem Abstand (setInterval) ? Im zweiten Fall kann man die Ausführung mittels clearInterval nach einer Minute beenden.

                      1 Reply Last reply Reply Quote 0
                      • D
                        Desa last edited by

                        In diesem falle zum beispiel eine Say it aussage alarm alarm alarm z.b.

                        1 Reply Last reply Reply Quote 0
                        • Dutchman
                          Dutchman Developer Most Active Administrators last edited by

                          @Desa:

                          In diesem falle zum beispiel eine Say it aussage alarm alarm alarm z.b. `

                          fuer ein beispiel mit alarm sowas ?:

                          979_alarm.jpg

                          damit kommt alle drei sekunden eine alarm bis die variable wieder ausgeschaltet ist, oder nur 3 mal:
                          979_alarmrepeat.jpg

                          1 Reply Last reply Reply Quote 0
                          • D
                            Desa last edited by

                            Danke für die schnelle Antwort aber iwie klappt das bei mir nicht. er sagt immer der Block ist nicht mit den anderen verbunden. habe leider dazu auch das Problem, das der alarm nicht ausgelöst wird. Beide Bolsche sind wahr, aber das script registriert es nicht und macht nichts. hab ich da was übersehen ? weil es geht auch nicht wenn ich den teil raus löse. Hoffe du kannst mir helfen

                            Lg Desa

                            ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
                            ! <block type="on" id="#r=D9]p_Zs~7c4ZFT([j" x="-312" y="38"><field name="OID">admin.0.Alarmeingeschaltet</field>
                            ! <field name="CONDITION">true</field>
                            ! <statement name="STATEMENT"><block type="controls_if" id="2xXL()KA7!?4Sva6e:P"><value name="IF0"><block type="get_value" id="3|rHY{rV4YeYYwsEbH?J"><field name="ATTR">val</field>
                            ! <field name="OID">admin.0.AlarmBewegung</field></block></value>
                            ! <statement name="DO0"><block type="controls_if" id="Ub!MG:Cjmy_x06wL,-R"><value name="IF0"><block type="get_value" id="s-vI0udD+Kcd9i_78Uf5"><field name="ATTR">val</field> ! <field name="OID">admin.0.AlarmSensorEg</field></block></value> ! <statement name="DO0"><block type="controls_whileUntil" id="{rOP]+-]OYvW+maU;a+:"><field name="MODE">WHILE</field> ! <statement name="DO"><block type="timeouts_settimeout" id="xgJlvv!-fcnnyc3K6!hY"><field name="NAME">timeout</field> ! <field name="DELAY">3000</field> ! <statement name="STATEMENT"><block type="sayit" id="m0+]s?CKZ;Kk0_B;DBG"><field name="INSTANCE">.0</field>
                            ! <field name="LANGUAGE">de</field>
                            ! <field name="LOG">warn</field>
                            ! <value name="MESSAGE"><shadow type="text" id="[@CG`*IFZLA,)HVQ]WRR"><field name="TEXT">Alarm</field></shadow></value></block></statement></block></statement>
                            ! <next><block type="control" id="WHAoT1HVK(uW/?i?:
                            -l"><mutation delay_input="false"></mutation>
                            ! <field name="OID">zwave.0.NODE4.SWITCH_BINARY.Switch_1</field>
                            ! <field name="WITH_DELAY">FALSE</field>
                            ! <value name="VALUE"><block type="logic_boolean" id="t1O|_y)@–-P(n{WpJ=("><field name="BOOL">TRUE</field></block></value></block></next></block></statement></block></statement></block></statement></block></xml>

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

                              Hallo Desa
                              @Desa:

                              Danke für die schnelle Antwort aber iwie klappt das bei mir nicht. er sagt immer der Block ist nicht mit den anderen verbunden. `
                              Ist er ja auch nicht.

                              Da steht "wiederhole solange"…...????

                              Da fehlt eine Bedingung. Wie lange soll er denn wiederholen?

                              Nimm doch einfach den Baustein "wiederhole xx mal".

                              Da trägst Du z.B. eine 3 rein und dann wird das 3 mal ausgeführt.

                              @Desa:

                              habe leider dazu auch das Problem, das der alarm nicht ausgelöst wird. Beide Bolsche sind wahr, aber das script registriert es nicht und macht nichts. hab ich da was übersehen ? `
                              Nun Du triggerst "Alarmeingeschaltet" und das Script wird nur ausgeführt wenn diese auf wahr gesetzt wird. Und NUR dann.

                              Also wahrscheinlich nur wenn Du den Alarm einschaltest.

                              Danach können sich "AlarmBewegung" und "AlarmSensorEg" ändern wie sie wollen. Da passiert nichts.

                              NUR wenn sich die Bedingung eines Triggers erfüllt wird ein Script ausgeführt.

                              Dann werden die Bausteine innerhalb des Triggers, einmalig, ausgeführt.

                              Du müsstest also "AlarmBewegung" und "AlarmSensorEg" triggern.

                              Grüße

                              1 Reply Last reply Reply Quote 0
                              • D
                                Desa last edited by

                                Ok, denke hab das Grob verstanden. Daher vorerst einmal vielen Dank. Aber das wird wohl nicht das letzte mal sein das ich ne frage habe ^^

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

                                  @UweRLP:

                                  Ist es auch irgendwie möglich die Zeit des Timeouts per Variable zu setzten? `

                                  Hallo UweRLP

                                  Das steht auch noch auf meiner Blockly-Wunschliste.

                                  [EDIT] Stand 18.10.17 Das Folgende funktioniert NICHT mehr*****

                                  Z.Z. geht das nur "vom-Rücken-durch-die-Brust-ins-Auge" 😉

                                  Lege eine eine lokale Variable an. (z.B. MyTimeout).

                                  Geht NUR mit lokalen Variablen!!!

                                  Dieser Variable kannst Du Werte zuweisen.

                                  In dem Timeout-Baustein kann man auch Text eingeben.

                                  Also anstatt 1000 den Namen der lokalen Variable dort eintragen.

                                  Achtung! Genaue Schreibweise beachten.
                                  147_dynamisches_timeout.png

                                  Grüße

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

                                    @UweRLP:

                                    Vielen Dank nochmals! `
                                    Immer wieder gerne 😉

                                    Was mir noch aufgefallen ist.

                                    Der Timer wird immer ausgeführt wenn der Trigger auslöst!

                                    Jedesmal wenn ein Timer gestartet wird, wird eine "Timer-Instanz" gestartet.

                                    Wenn der 10x gestartet wird, laufen auch 10 Timer, die dann nacheinander abgearbeitet werden.

                                    Bau doch den Timer in eine Funktion oder setze den Stop-Baustein ein.

                                    Grüße

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

                                      @UweRLP:

                                      @rantanplan:

                                      Die Alternative die du mir Vorschlägst, als Funktion, verstehe ich leider nicht, würdest du mir das bitte erklären. Danke!

                                      In einer Funktion kannst Du, in einem Blockly, Programmschritte die sich wiederholen reinpacken.

                                      Wenn eine Funktion aufgerufen wird, springt das Programm dort hin, führt die Befehle aus und kehrt zurück und arbeitet das restliche Programm ab.

                                      Funktionen machen Scripte/Blocklys lesbarer und bieten enorme Möglichkeiten.

                                      Deinen Timer könntest Du in eine Funktion mit Parameter setzen.
                                      147_beispiel_timer.png

                                      Hier noch einige Beispiele.
                                      147_beispiel_funktionen.png

                                      Hier der Export von den Beispielen.

                                      ! ````
                                      <xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_callnoreturn" id="m)kSOt)?Fr[Q-h)XJIqQ" x="-313" y="-262"><mutation name="MeineZeitFunktion"><arg name="WertTimer"></arg></mutation>
                                      <value name="ARG0"><block type="math_number" id="koxWb-^aDM5Ht#OKML3"><field name="NUM">27000</field></block></value></block> <block type="procedures_defnoreturn" id="EtS,RT{KKRrmrBA}O3Ll" x="-313" y="-187"><mutation><arg name="WertTimer"></arg></mutation> <field name="NAME">MeineZeitFunktion</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="timeouts_cleartimeout" id="t-V)M^(eCCwahAED)H4["><field name="NAME">Zeit</field> <next><block type="timeouts_settimeout" id=";zgdd[sqQtZ-zG;R(m6*"><field name="NAME">Zeit</field> <field name="DELAY">WertTimer</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="control" id="t;HV7ZMy#pR=U4X/Jkbz"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field></block></statement></block></next></block></statement></block> <block type="procedures_callnoreturn" id="l;ds2j/VU+.;s=Rwk*17" x="-687" y="-87"><mutation name="MyFuntion"></mutation> <next><block type="procedures_callnoreturn" id="T0)djLb+iYaML7Xl,D}"><mutation name="MyFunction2"><arg name="x"></arg></mutation>
                                      <value name="ARG0"><block type="math_number" id="ga5}CTdo1gM!22DhdJw0"><field name="NUM">1000</field></block></value>
                                      <next><block type="debug" id="+D[1QLr)!Y),ft4r6eMQ"><field name="Severity">log</field>
                                      <value name="TEXT"><shadow type="text" id="+8N-a*vr.]7=+^{BKW5K"><field name="TEXT">test</field></shadow>
                                      <block type="text_join" id="lE!A=3ET?tOc?4u%O/=!"><mutation items="2"></mutation>
                                      <value name="ADD0"><block type="text" id="b}:-)i8Us!E/*w/8_ul"><field name="TEXT">***MyFunction3 mit Ergebniss</field></block></value>
                                      <value name="ADD1"><block type="procedures_callreturn" id="4dS.LW7@:Ub8]lE^Sy.6"><mutation name="MyFunktion3"><arg name="A"></arg>
                                      <arg name="B"></arg></mutation>
                                      <value name="ARG0"><block type="math_number" id="i{8gE!F}C-jl{whetj/"><field name="NUM">10</field></block></value> <value name="ARG1"><block type="math_number" id="vDbtx?[RIh^t69W+!ndC"><field name="NUM">20</field></block></value></block></value></block></value></block></next></block></next></block> <block type="procedures_defnoreturn" id="fci;KBqgZ)7Dd#Eg{^w@" x="-688" y="137"><field name="NAME">MyFuntion</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="debug" id="UThPyQuQPKWRtw7E~??"><field name="Severity">log</field>
                                      <value name="TEXT"><shadow type="text" id="u0vGR/dV=3PlyZ[7=+P"><field name="TEXT">***MyFunktion ausgeführt</field></shadow></value></block></statement></block> <block type="procedures_defnoreturn" id="O9nP#)+zqlt9Fq{YT0rq" x="-687" y="238"><mutation><arg name="x"></arg></mutation> <field name="NAME">MyFunction2</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="debug" id="spDsr],GvdZW)Bz^[HOB"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="[wQ1wey?YXXAsRc{qD{1"><field name="TEXT">test</field></shadow> <block type="text_join" id="4hpxTJi#S,@q*M|XMR(-"><mutation items="2"></mutation> <value name="ADD0"><block type="text" id="4OENq~@=g5nzUo,6Q3BX"><field name="TEXT">**MyFuntion2 ausgeführt mit Übergabe von</field></block></value> <value name="ADD1"><block type="variables_get" id="PAts^s-Ex]f/1fJ]T_z"><field name="VAR">x</field></block></value></block></value></block></statement></block>
                                      <block type="procedures_defreturn" id="gL:inEgPcEwA-S|^TA3" x="-688" y="362"><mutation><arg name="A"></arg>
                                      <arg name="B"></arg></mutation>
                                      <field name="NAME">MyFunktion3</field>
                                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                      <statement name="STACK"><block type="variables_set" id="6UJRE{XLXlKofpnxp!6g"><field name="VAR">C</field>
                                      <value name="VALUE"><block type="math_arithmetic" id="{aq~Tzv(PfMoYSKV2f;U"><field name="OP">ADD</field>
                                      <value name="A"><shadow type="math_number" id="}|m2/3#K!Y-m+}[s5}("><field name="NUM">1</field></shadow>
                                      <block type="variables_get" id="~kGc8}t0BH!sPCf7iVg{"><field name="VAR">A</field></block></value>
                                      <value name="B"><shadow type="math_number" id="9STkOqU7q^b2
                                      fqt^B
                                      +"><field name="NUM">1</field></shadow>
                                      <block type="variables_get" id="FuFM1ySG(@CE]RPO(jrM"><field name="VAR">B</field></block></value></block></value></block></statement>
                                      <value name="RETURN"><block type="variables_get" id="}B==
                                      ?4Jt!1sd+{pGL,r"><field name="VAR">C</field></block></value></block></xml>

                                      
                                      Grüße
                                      1 Reply Last reply Reply Quote 0
                                      • rantanplan
                                        rantanplan last edited by

                                        @UweRLP:

                                        Sind die Funktionen auch Global anwendbar oder nur innerhalb des einen Blockly's? `
                                        Nur innerhalb des Blocklys.

                                        Grüße

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

                                          Moin zusammen,

                                          ich versuche grade den Wert von "timeout" über VIS einzustellen. Ich habe die vorherigen beispiele ausprobiert, aber es will nicht klappen :?: :?
                                          1736_1.jpg
                                          1736_2.jpg
                                          1736_3.jpg
                                          1736_4.jpg

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

                                            @NUCChris:

                                            ich versuche grade den Wert von "timeout" über VIS einzustellen. Ich habe die vorherigen beispiele ausprobiert, aber es will nicht klappen :?: :? `

                                            Der undokumentierte "Trick" mit der Variablen funktioniert nicht mehr.

                                            Grüße

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            771
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            14
                                            48
                                            18414
                                            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