Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Timeout in Blockly funktioniert nicht

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Timeout in Blockly funktioniert nicht

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
17 Beiträge 5 Kommentatoren 2.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    smueller
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich bin dabei mich mit dem ioBroker auseinanderzusetzen um eine Haussteuerung zu realisieren.

    Da meine Javascript Kenntnisse eher gering sind setze ich bei den Skripten auf Blockly und habe begonnen einfache Skripte (Lampe an, Fernseher aus) zu schreiben.

    Um der Fernseher auszuschalten benötige ich erstmal ein Infrarotsignal, dann eine Pause und zum Abschluss ein 433Mhz Kommando. Die Pause lässt sich mit einem Timeout jedoch nicht schalten, die Befehle rattern direkt durch.

    Hier der Code:

    timeout = setTimeout(function () {

    }, 10000);

    Dieser soll eine 10 Sekundenpause bewirken, macht aber scheinbar garnichts. Kann mir da bitte jemand weiterhelfen?

    Kleine Anmerkung noch, es funktioniert auch nicht, wenn ich den "Falls Objekt"-Block in den Timeout Block ziehe.

    Vielen Dank schonmal.

    LG

    Steffen
    4846_timeout.jpg

    1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      RappiRN
      Most Active
      schrieb am zuletzt editiert von
      #2

      Du hast leider nur einen kleinen Ausschnitt aus deinem Blockly gezeigt.

      Alles, was du über den Timeout verzögern willst, muss in den Timeout! Und auch aufpassen, dass der Timeout nicht mehrfach gestartet werden kann, bzw. darauf achten, bei bestimmten Bedingungen den Timeout sicherheitshalber stoppen.

      Enrico

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        smueller
        schrieb am zuletzt editiert von
        #3

        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 Antwort Letzte Antwort
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #4

          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 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            smueller
            schrieb am zuletzt editiert von
            #5

            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 Antwort Letzte Antwort
            0
            • DutchmanD Offline
              DutchmanD Offline
              Dutchman
              Developer Most Active Administrators
              schrieb am zuletzt editiert von
              #6

              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 Antwort Letzte Antwort
              0
              • rantanplanR Offline
                rantanplanR Offline
                rantanplan
                schrieb am zuletzt editiert von
                #7

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

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  smueller
                  schrieb am zuletzt editiert von
                  #8

                  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 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    smueller
                    schrieb am zuletzt editiert von
                    #9

                    Hello,

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

                    SG

                    Steffen

                    1 Antwort Letzte Antwort
                    0
                    • DutchmanD Offline
                      DutchmanD Offline
                      Dutchman
                      Developer Most Active Administrators
                      schrieb am zuletzt editiert von
                      #10

                      @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 Antwort Letzte Antwort
                      0
                      • rantanplanR Offline
                        rantanplanR Offline
                        rantanplan
                        schrieb am zuletzt editiert von
                        #11

                        @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)

                        Rantanplan

                        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                        1 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          smueller
                          schrieb am zuletzt editiert von
                          #12

                          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 Antwort Letzte Antwort
                          0
                          • rantanplanR Offline
                            rantanplanR Offline
                            rantanplan
                            schrieb am zuletzt editiert von
                            #13

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

                            Rantanplan

                            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                            1 Antwort Letzte Antwort
                            0
                            • BBTownB Offline
                              BBTownB Offline
                              BBTown
                              schrieb am zuletzt editiert von
                              #14

                              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

                              ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                              1 Antwort Letzte Antwort
                              0
                              • rantanplanR Offline
                                rantanplanR Offline
                                rantanplan
                                schrieb am zuletzt editiert von
                                #15

                                @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

                                Rantanplan

                                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                1 Antwort Letzte Antwort
                                0
                                • BBTownB Offline
                                  BBTownB Offline
                                  BBTown
                                  schrieb am zuletzt editiert von
                                  #16

                                  @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 😉

                                  ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                  1 Antwort Letzte Antwort
                                  0
                                  • rantanplanR Offline
                                    rantanplanR Offline
                                    rantanplan
                                    schrieb am zuletzt editiert von
                                    #17

                                    @BBTown:

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

                                    Rantanplan

                                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                    1 Antwort Letzte Antwort
                                    0
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    744

                                    Online

                                    32.4k

                                    Benutzer

                                    81.4k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe