Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Timeout in Blockly funktioniert nicht

    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

    Timeout in Blockly funktioniert nicht

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

      Hallo und vielen Dank für die Antwort.

      D.h. mein erster Ansatz die Bedingung innerhalb des Timeouts zu platzieren war doch richtig (sah auch logischer aus).

      Wobei dieser Aufbau die Problematik nicht behebt, anbei der ganze Block für meinen Fernseher. Die Befehle werden nahezu gleichzeitig ausgegeben.

      LG

      Steffen
      4846_timeout2.jpg

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

        mach mal bitten einen export von deinem block das ist einfacher 😉

        Dein blockly stimme nicht, die timeouts sind auserhalb der trigger machen also ueberhaupt garnichts

        Wozu ist die variable/object Fernseh switch ?

        die timeouts gehoren in die "mache" deines falls blocks und die bloecke "steuere" innerhalb dieses timeouts

        1 Reply Last reply Reply Quote 0
        • S
          smueller last edited by

          Hallo,

          danke für die Antwort, ich hoffe ich habe das mit dem Export richtig verstanden:

          var timeout3, timeout, timeout2;

          timeout3 = setTimeout(function () {

          setState("broadlink.0.learnedSignals.FernsehSwitch"/FernsehSwitch/, true);

          }, 15000);

          timeout = setTimeout(function () {

          on({id: 'broadlink.0.learnedSignals..Fernseher', change: "ne"}, function (obj) {

          var value = obj.state.val;

          var oldValue = obj.oldState.val;

          if (getState("broadlink.0.learnedSignals..Fernseher").val == true) {

          setState("broadlink.0.learnedSignals.FernseherAn"/FernseherAn/, true);

          } else if (getState("broadlink.0.learnedSignals..Fernseher").val == false) {

          setState("broadlink.0.learnedSignals.FernseherAus"/FernseherAus/, true);

          }

          });

          }, 10000);

          timeout2 = setTimeout(function () {

          setState("broadlink.0.learnedSignals.FernsehSwitch"/FernsehSwitch/, true);

          }, 15000);

          Der Fernsehswitch emuliert einmal den Ein/Aus Schalter der Fernbedienung, vom Gedanken her, Fernseher in Standby…warten und Steckerleiste aus. Bzw. Steckerleiste an...warten und Fernseher vom Standby auf an.

          Ich verstehe leider nicht ganz wie ich die Timeouts "in" die Trigger einbauen kann.

          LG

          Steffen

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

            Fast richtig ich brauche den blockly Export nicht das generierte Script, geh Mal auf die Pfeiltasten und dann exportiere blockly 🙂

            –-----------------------

            Send from mobile device

            Das schöne ios hat Auto Korrektur zum k****

            Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

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

              @smueller:

              Wobei dieser Aufbau die Problematik nicht behebt, anbei der ganze Block für meinen Fernseher. Die Befehle werden nahezu gleichzeitig ausgegeben. ` Hallo

              Timeouts machen KEINE Programmpause!

              Die nachfolgenden Befehle werden direkt danach ausgeführt.

              Die Befehle INNERHALB des Timers werden NACH der abgelaufenen Zeit des Timers ausgeführt.

              Die Anweisungen IN "Timerout" werden 10 Sek. nach Scriptstart,

              "timeout2" UND "timeout3" werden 15 Sek nach Scriptstart ausgeführt.

              Grüße

              PS.

              Du hast keinen Blockly Export gemacht sondern das Script kopiert.

              Einen Export macht man hier.
              147_blocklyimport.png

              Den Export dann immer in den Tags "spoiler" und "code" in den Beitrag einfügen.

              1 Reply Last reply Reply Quote 0
              • S
                smueller last edited by

                Hello,

                oha, ich sehe schon, hab noch viel zu lernen!

                Wobei die Ausführung des Skripts nicht abläuft wie Rantanplan aufgezeigt hat, das Ding rattert ohne Verzögerung direkt beim Start los und sendet scheinbar alle drei Befehle auf einmal?!

                Hier der Blockly-Export:

                 <xml xmlns="http://www.w3.org/1999/xhtml"><block type="timeouts_settimeout" id=":R19h()#3b:wj+MHuOrO" x="162" y="13"><field name="NAME">timeout3</field>
                    <field name="DELAY">15</field>
                    <field name="UNIT">sec</field>
                    <statement name="STATEMENT"><block type="control" id="FwGXK}r@Mad]|mB]A~8@"><mutation delay_input="false"></mutation>
                        <field name="OID">broadlink.0.learnedSignals.FernsehSwitch</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE"><block type="logic_boolean" id="#iWGR}~b^s@HWOEg,Aqd"><field name="BOOL">TRUE</field></block></value></block></statement> 
                    <next><block type="timeouts_settimeout" id="*L8vt+g*idPqggl-]ini"><field name="NAME">timeout</field>
                        <field name="DELAY">10</field>
                        <field name="UNIT">sec</field>
                        <statement name="STATEMENT"><block type="on_ext" id="z9%E+s(WEefq(I3*FP*0"><mutation items="1"></mutation>
                            <field name="CONDITION">ne</field>
                
                            <value name="OID0"><shadow type="field_oid" id="*%Ed+(aG1MTyqOC)R-wq"><field name="oid">broadlink.0.learnedSignals..Fernseher</field></shadow></value> 
                            <statement name="STATEMENT"><block type="controls_if" id="c]7K4Hu%{Ow8mYr:dwyF"><mutation elseif="1"></mutation>
                                <value name="IF0"><block type="logic_compare" id="@B|3xRB2^T1nF{ma]T]Y"><field name="OP">EQ</field>
                                    <value name="A"><block type="get_value" id="5.iuLn0srwVI@`Vl^yzS"><field name="ATTR">val</field>
                                        <field name="OID">broadlink.0.learnedSignals..Fernseher</field></block></value> 
                                    <value name="B"><block type="logic_boolean" id="-m=[JUAf.=+Iy)M/j#-]"><field name="BOOL">TRUE</field></block></value></block></value> 
                                <statement name="DO0"><block type="control" id="LVN;Pn`pmn[YUk3-5@V."><mutation delay_input="false"></mutation>
                                    <field name="OID">broadlink.0.learnedSignals.FernseherAn</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE"><block type="logic_boolean" id="?QK|/o`Tzsj!*?4tItQQ"><field name="BOOL">TRUE</field></block></value></block></statement> 
                                <value name="IF1"><block type="logic_compare" id="^i`GDbk)D2(:X.}r13#I"><field name="OP">EQ</field>
                                    <value name="A"><block type="get_value" id="#+xZJuJZ*.vI:1n}Zm|X"><field name="ATTR">val</field>
                                        <field name="OID">broadlink.0.learnedSignals..Fernseher</field></block></value> 
                                    <value name="B"><block type="logic_boolean" id=";7LeNZ5Q]n:aRGS4)Edf"><field name="BOOL">FALSE</field></block></value></block></value> 
                                <statement name="DO1"><block type="control" id="w(3Q?()kE/Hr/Beue]/a"><mutation delay_input="false"></mutation>
                                    <field name="OID">broadlink.0.learnedSignals.FernseherAus</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE"><block type="logic_boolean" id="Gx{@]eO6RfavN5kx^Wvm"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></statement> 
                        <next><block type="timeouts_settimeout" id="4bpRe8;_IZc;}3##;U0p"><field name="NAME">timeout2</field>
                            <field name="DELAY">15</field>
                            <field name="UNIT">sec</field>
                            <statement name="STATEMENT"><block type="control" id="}vT7xTp|^a+|x?1yHF=D"><mutation delay_input="false"></mutation>
                                <field name="OID">broadlink.0.learnedSignals.FernsehSwitch</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE"><block type="logic_boolean" id="~H1*PJ59;)5d)F{%a?`G"><field name="BOOL">TRUE</field></block></value></block></statement></block></next></block></next></block></xml> 
                
                

                LG

                Steffen

                1 Reply Last reply Reply Quote 0
                • S
                  smueller last edited by

                  Hello,

                  hat keiner mehr ne Idee oder übersehe ich etwas offensichtliches? :?:

                  SG

                  Steffen

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

                    @smueller:

                    Hello,

                    hat keiner mehr ne Idee oder übersehe ich etwas offensichtliches? [emoji780]

                    SG

                    Steffen `

                    Könntest du mal bitte einen Screenshot deiner Blöcke Posten?

                    Bin um ehrlich zu sein zu faul um von tapatalk nach pc zu gehen und einen Import machen um zu sehen was du gebastelt hast 😉

                    –-----------------------

                    Send from mobile device

                    Das schöne ios hat Auto Korrektur zum k****

                    Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

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

                      @smueller:

                      hat keiner mehr ne Idee oder übersehe ich etwas offensichtliches? :?: `
                      Offensichtlich machst Du alles falsch was man nur falsch machen kannst.

                      Sorry, aber liest Du hier auch mal, hier im Forum, einige Beiträge zu Blockly?

                      Heute ist es schon etwas spät.

                      Ich weis auch nicht richtig was Du machen willst.

                      Kannst Du das mal etwas näher beschreiben?

                      Wenn wir wissen was Du machen willst, kriegen wir das schon hin.

                      Grüße

                      PS.

                      Export in SPOILER UND code

                      (Erst "spoiler" und dann "code" klicken)

                      1 Reply Last reply Reply Quote 0
                      • S
                        smueller last edited by

                        Hallo zusammen,

                        Schritt 1 war natürlich die Forensuche, in älteren Versionen gab es sogar einen wait-Block, der in der aktuellen Version leider nicht mehr vorkommt.

                        Ich versuche mittels io.Broker ein Skript für Amazon Alexa zu erstellen, welches den Fernseher in den Standby versetzt und dann die Steckerleiste ca. 10 Sekunden später ausmacht (Sender ist ein Broadlink).

                        Problem ist, dass die Kommandos nahezu parallel gesendet werden und der Fernseher keine Zeit hat in den Standby zu gehen.

                        Anbei der Screenshot des Codes. Danke für eure Hilfe.

                        SG

                        Steffen
                        4846_timeout2.jpg

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

                          @smueller:

                          Hallo zusammen,

                          Schritt 1 war natürlich die Forensuche, in älteren Versionen gab es sogar einen wait-Block, der in der aktuellen Version leider nicht mehr vorkommt.

                          Ich versuche mittels io.Broker ein Skript für Amazon Alexa zu erstellen, welches den Fernseher in den Standby versetzt und dann die Steckerleiste ca. 10 Sekunden später ausmacht (Sender ist ein Broadlink).

                          Problem ist, dass die Kommandos nahezu parallel gesendet werden und der Fernseher keine Zeit hat in den Standby zu gehen.

                          Anbei der Screenshot des Codes. Danke für eure Hilfe. `
                          Schritt 1 kann ich fast nicht glauben.

                          In jedem gefühlten zweiten Thread zu Blockly geht es um "Trigger" und "Timeouts"

                          Und sehr häufig steht da "…alles was außerhalb eines Triggers steht, wird EINMALIG bei Scriptstart ausgeführt."

                          "...Timeouts unterbrechen NICHT den Programmablauf." usw. usw....

                          (einen wait-Block habe ich in Blockly noch nie gesehen)

                          Doch nun zu Deinem Blockly.

                          "FernsehSwitch" ist die Steckerleiste?

                          Was ist/macht "Fernseher", "FernseherAn" und "FernseherAus" ?

                          Ein bisschen mehr Infos wäre schön.

                          Dann kriegen wir das auch hin.

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

                            Wenn ich es richtig verstehe wird FernsehSwitch getoggled (an-aus-an-aus)

                            Es gibt keine Unterscheidung von "wahr" oder "unwahr" beim FernsehSwitch - korrekt?

                            Und wenn ich weiterhin deine Aufgabe richtig verstanden habe, dann lautet diese:

                            1.) Wenn Fernsehen = wahr dann schalte die Steckdose für den Fernseher ein und 15 Sekunden später den Fernseher selber (damit die Steckdose bereit ist)

                            2.) Wenn Fernseher = unwahr, dann schalte erst den Fernseher aus und 10 Sekunden später die Steckdose (damit der Fernseher auch wirklich aus ist)

                            [Nachtrag]

                            Ich sehe gerade, dass Du alles was ich bis hier geschrieben habe ja beinahe wortwörtlich so in deinem ersten Post steht 8-)

                            Das würde ich dann sehr simpel "mit Verzögerung" so wie im Screenshot lösen.
                            1917_tv_mit_verzoergung.png

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

                              @BBTown:

                              Wenn ich es richtig verstehe ….. `
                              Wenn der Fragende mal antworten würde und ein wenig Infos liefert, müsste man nicht raten.

                              Liebe Grüße @BBTown

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

                                @rantanplan:

                                Wenn der Fragende mal antworten würde und ein wenig Infos liefert, müsste man nicht raten. ` Er ist ja noch neu an Bord, helfen wir ihm sich zurecht zu finden 😉

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

                                  @BBTown:

                                  Er ist ja noch neu an Bord, helfen wir ihm sich zurecht zu finden 😉 `
                                  Hmmm….Von Dir kann ich noch was lernen 😉

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  784
                                  Online

                                  31.7k
                                  Users

                                  79.8k
                                  Topics

                                  1.3m
                                  Posts

                                  5
                                  17
                                  2563
                                  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