Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Anfänger] Blockly Timeout

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Anfänger] Blockly Timeout

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

      Moin moin,

      ich habe mein erstes Blockly-Skript geschrieben. Es werden zwei Pings auf Handys überwacht. Danach sollen die Sicherheitskameras umgeschaltet werden. Das funktionierte auch soweit ganz gut. Allerdings hatte ich heute Nacht das Problem, dass meine Fritzbox auf dem 5Ghz-WLAN eine "RADAR"-Abfrage gemacht und deswegen einen Kanalwechsel durchgeführt hat (so stehts im Protokoll der Fritz.box). Daraufhin hatte ich kurzfristig kein WLAN, sodass die Kameras in den Überwachen-Modus umgesprungen sind. Das sollte so nicht sein - deswegen habe ich mir gedacht, dass ich einen Timeout einbaue, damit er prüft, ob es nicht doch nur ein kurzfristiger WLAN-Ausfall ist. Allerdings funktioniert nun der Code nicht mehr ... was mache ich falsch?

      Danke und Gruß

      Screenshot 2023-08-10 143108.png

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

        @easytj sagte in [Anfänger] Blockly Timeout:

        so stehts im Protokoll der Fritz.box

        zeigen

        Vorschlag:

        Screenshot 2023-08-10 144246.png

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

          zeigen

          Protokoll:
          Screenshot 2023-08-10 145433.png

          Erklärung dazu:
          Screenshot 2023-08-10 145504.png

          Ja ich war auch irritiert - war mir so nicht bewusst. Weiß auch nicht, wer hier wichtiges aufm 5GHz WLAN-Netz unterwegs ist 😄

          Kannst du mir dein Script vielleicht in Worten erklären, wo der Unterschied zu meinem ist und wieso du das so baust? Ich lerne noch 🙂
          Wieso stoppst du den Timeout obwohl gar keiner läuft?
          Dein Timeout startet ja nachdem gecheckt wurde, ob beide Handys noch im WLAN sind ... aber genau da soll ja in meinem Verständnis zunächst gewartet werden.

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

            @easytj sagte in [Anfänger] Blockly Timeout:

            Wieso stoppst du den Timeout obwohl gar keiner läuft?

            Es wird der Timeout gestoppt falls er läuft.

            @easytj sagte in [Anfänger] Blockly Timeout:

            nachdem gecheckt wurde, ob beide Handys noch im WLAN sind

            ah, sorry...

            Screenshot 2023-08-10 150333.png

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

              @djmarc75

              sieht mir identisch aus 🙂 ... falsches Bild ausgewählt oder ich bin blind 😉

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

                @easytj siehe die NICHT-Blöcke 😉

                Screenshot 2023-08-10 150333.png

                E 1 Reply Last reply Reply Quote 1
                • E
                  EasyTJ @DJMarc75 last edited by

                  @djmarc75

                  OK - ich bin blind 😄

                  Wieso baust du den Code andersherum auf? Was bewirkt das? Und wieso ist der Timeout nach der State-Prüfung?
                  Kannst du mir das kurz erklären, damit ich das verstehe?

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

                    @easytj sagte in [Anfänger] Blockly Timeout:

                    wieso ist der Timeout nach der State-Prüfung

                    na weil es sonst nicht funktioniert. Erst wenn beide States auf false stehen soll ja der Timeout starten.
                    Vorher macht das ja wenig Sinn.
                    Sobald sich nur ein Status auf true ändert wird der Timeout gestoppt - unabhängig ob der Timeout läuft oder nicht.

                    Falls ein Status auf true wechselt wird der "sonst" Block ausgeführt.

                    Das nennt man eine Logikmaschine 😉

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

                      @djmarc75

                      Vielleicht habe ich einen Denkfehler aber folgendes möchte ich umsetzen:

                      Sobald sich ein Status der Handys ändert, soll er 30 Sekunden warten und dann prüfen, ob immer noch beide Handys auf false stehen. Erst dann soll das Makro laufen und Status 0 schalten. Falls zwischenzeitlich doch wieder eine Verbindung hergestellt werden konnte, soll er im Status 1 bleiben.

                      Wenn du mir sagst, dass dein Skript exakt das macht, versuche ich es mal damit und versuche es auch, es genau zu verstehen...

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

                        @easytj sagte in [Anfänger] Blockly Timeout:

                        versuche ich es mal damit und versuche es auch

                        @easytj sagte in [Anfänger] Blockly Timeout:

                        Erst dann soll das Makro laufen und Status 0 schalten. Falls zwischenzeitlich doch wieder eine Verbindung hergestellt werden konnte, soll er im Status 1 bleiben.

                        na mach doch einfach - weil genau DAS macht das Skript durch den STOP des Timeouts wenn sich einer der 2 Trigger ändert.

                        Mehr helfen kann ich jetzt leider nicht.

                        E 2 Replies Last reply Reply Quote 0
                        • E
                          EasyTJ @DJMarc75 last edited by

                          @djmarc75

                          Du hast mir sehr geholfen DANKE! Aber leider auch für Verwirrung meinerseits gesorgt, aber das soll nicht dein Problem sein :).
                          Ich bewege mich erst seit kurzem in der Welt von iobroker und Blockly

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

                            @djmarc75

                            Screenshot 2023-08-10 155806.png

                            So hats leider gerade nicht funktioniert... der hat umgehend beide Modi hin- und hergeschaltet

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

                              @easytj

                              Nimm bei dir mal bitte „= falsch“ raus oder vorne das nicht. Und teste dann nochmal.

                              1 Reply Last reply Reply Quote 1
                              • DJMarc75
                                DJMarc75 @EasyTJ last edited by

                                @easytj sagte in [Anfänger] Blockly Timeout:

                                So hats leider gerade nicht funktioniert

                                Ist ja klar warum.... jetzt importier mal den folgenden Code und passe NUR die Datenpunkte an

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <variables>
                                   <variable type="timeout" id="timeout">timeout</variable>
                                 </variables>
                                 <block type="on_ext" id="6i9aDrpxfr6{P5}#]Gd3" x="-980" y="-192">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                   <field name="CONDITION">ne</field>
                                   <field name="ACK_CONDITION"></field>
                                   <value name="OID0">
                                     <shadow type="field_oid" id="Ep]pzf-TW[6rwK0pKV3X">
                                       <field name="oid">default</field>
                                     </shadow>
                                   </value>
                                   <value name="OID1">
                                     <shadow type="field_oid" id="ce(+;p@]WiU#V5^y`I+r">
                                       <field name="oid">default</field>
                                     </shadow>
                                   </value>
                                   <statement name="STATEMENT">
                                     <block type="timeouts_cleartimeout" id="pxqt=XjxD|6%?^M*eixY">
                                       <field name="NAME">timeout</field>
                                       <next>
                                         <block type="controls_if" id="BIL*UIrl@GsM~vK3n]00">
                                           <mutation else="1"></mutation>
                                           <value name="IF0">
                                             <block type="logic_operation" id="+kgZY{lAQqB2f8L+^uRW" inline="false">
                                               <field name="OP">AND</field>
                                               <value name="A">
                                                 <block type="logic_negate" id="oG$jgJNqS]]2Y*PdTZmw">
                                                   <value name="BOOL">
                                                     <block type="get_value" id="_K2T8#tZn*s#QU[Y..rG">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">ID auswählen</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="logic_negate" id="8jC)J`KfV9uRZ+mm||DK">
                                                   <value name="BOOL">
                                                     <block type="get_value" id="h5;b)+(a5K2T;b(lnDRA">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">ID auswählen</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <statement name="DO0">
                                             <block type="timeouts_settimeout" id="ZnYr6-i^:Ak7Ma6:q?|F">
                                               <field name="NAME">timeout</field>
                                               <field name="DELAY">30</field>
                                               <field name="UNIT">sec</field>
                                               <statement name="STATEMENT">
                                                 <block type="control" id=".s,/EG^/hue`%e;nE(QR">
                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                   <field name="OID">Object ID</field>
                                                   <field name="WITH_DELAY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="math_number" id="k_hF./AYrL]RcmIjg)~4">
                                                       <field name="NUM">0</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </statement>
                                             </block>
                                           </statement>
                                           <statement name="ELSE">
                                             <block type="control" id=")J$K3TIq[Q.foC:bt^uS">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">Object ID</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="math_number" id="[QTzOF$K=*?3eU}|#L9(">
                                                   <field name="NUM">1</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </statement>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                                </xml>
                                

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

                                  @djmarc75
                                  @TT-Tom

                                  Also das "nicht" weglassen führte nicht zum Ergebnis. Das =false" löschen allerdings schon - damit scheint es zu klappen... Sehr gut danke
                                  Und sorry, dass ich so unaufmerksam den Code gelesen habe

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

                                    @easytj zeig nochmal Dein Blockly bitte

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

                                      @djmarc75 Screenshot 2023-08-11 214741.png

                                      sorry, jetzt erst gesehen ... so siehts aus und funktioniert auch 🙂

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      857
                                      Online

                                      32.0k
                                      Users

                                      80.4k
                                      Topics

                                      1.3m
                                      Posts

                                      3
                                      17
                                      521
                                      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