Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @MyzerAT last edited by

      @MyzerAT sagte:

      wie bekomme ich bei den zwei x was rein ?

      Einfach rein klicken.
      Blockly_Funktionsparameter.JPG

      Alexa und Telegram in die Funktion Meldung(name, onoff) einbauen !

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

        schaffs leider nicht, kenn den Baustein Meldung noch nicht, eventuell kann mir jemand den zusamenstoppeln, bitte, thx

        <xml xmlns="http://www.w3.org/1999/xhtml">
          <block type="procedures_defnoreturn" id="QcHn*};`aes=*M[62[T_" x="-287" y="-737">
            <mutation>
              <arg name="name"></arg>
              <arg name="onoff"></arg>
            </mutation>
            <field name="NAME">Meldung</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="on" id="wN;UvwDV@#P(A[|y2/s." x="-287" y="-637">
            <field name="OID">ping.1.RDJL_Home.192_168_0_64</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="@ec_w*anU[C5_:,q!@u6">
                <mutation else="1"></mutation>
                <value name="IF0">
                  <block type="on_source" id="}}|XsyQ@;d%*`Qa*P8MP">
                    <field name="ATTR">state.val</field>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="timeouts_cleartimeout" id="A{9nUa,_OgF[Kk%e1?=]">
                    <field name="NAME">timeout</field>
                    <next>
                      <block type="procedures_callnoreturn" id="V#,#{?LCEl=]otxJ:bR?" inline="false">
                        <mutation name="Meldung">
                          <arg name="name"></arg>
                          <arg name="onoff"></arg>
                        </mutation>
                        <value name="ARG0">
                          <block type="on_source" id="}?{-v*u;R@:1CN2rC1Xj">
                            <field name="ATTR">common.name</field>
                          </block>
                        </value>
                        <value name="ARG1">
                          <block type="text" id="?m;9gH%m`,/WoimPO):w">
                            <field name="TEXT">wieder online</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
                <statement name="ELSE">
                  <block type="timeouts_settimeout" id=".7u4Jf,98)qr,a7{wnQ!">
                    <field name="NAME">timeout</field>
                    <field name="DELAY">120</field>
                    <field name="UNIT">sec</field>
                    <statement name="STATEMENT">
                      <block type="procedures_callnoreturn" id="%cW2F!J99yEG-GB,y2p-">
                        <mutation name="Meldung">
                          <arg name="name"></arg>
                          <arg name="onoff"></arg>
                        </mutation>
                        <value name="ARG0">
                          <block type="on_source" id="C^c@O*hX=FfH5JVUwY+w">
                            <field name="ATTR">common.name</field>
                          </block>
                        </value>
                        <value name="ARG1">
                          <block type="text" id="G;p)5ufI}S0vLSaQ/%@R">
                            <field name="TEXT">offline</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
          <block type="control" id="Do1*(d;FPVdH~`jRHrS{" x="112" y="-612">
            <mutation delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.G090U61084851BG7.Commands.speak</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="text_join" id="F*lKSls!iLkoww%{/oGK">
                <mutation items="2"></mutation>
                <value name="ADD0">
                  <block type="text" id="QhdzP|.,qK;9WW=ntGe:">
                    <field name="TEXT">Achtung, Achtung</field>
                  </block>
                </value>
                <value name="ADD1">
                  <block type="text_join" id="yxj=D(V8-%`{-#R[f}n@">
                    <mutation items="2"></mutation>
                    <value name="ADD0">
                      <block type="on_source" id="(u)KQ`c0}#hjgB#:1=Q8">
                        <field name="ATTR">common.name</field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="text" id="(na[4nbf:VY3wdj#k(s|">
                        <field name="TEXT">  ist Offline und nicht mehr Erreichbar!</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="telegram" id="dZ`NtV^dV-qDs6eotVJJ">
                <field name="INSTANCE">.0</field>
                <field name="LOG">log</field>
                <field name="SILENT">FALSE</field>
                <field name="PARSEMODE">default</field>
                <value name="MESSAGE">
                  <shadow type="text" id="c`J_.dZ/@?4%P(]3=`)]">
                    <field name="TEXT">text</field>
                  </shadow>
                  <block type="text_join" id="o.6x{#j+oDiK_78Ko-.*">
                    <mutation items="2"></mutation>
                    <value name="ADD0">
                      <block type="on_source" id="g8?Bc*R%JK;Md-=qGk`5">
                        <field name="ATTR">common.name</field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="text" id="MV0rG#7UV!D!|hhEo|Y=">
                        <field name="TEXT">  ist Offline und nicht mehr Erreichbar!</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </next>
          </block>
          <block type="control" id="V(Y@289(@J(E+1/0EzSp" x="-188" y="-188">
            <mutation delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.G090U61084851BG7.Commands.speak</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="text_join" id="A8.SkLP#n-RrWsB+btl#">
                <mutation items="2"></mutation>
                <value name="ADD0">
                  <block type="text" id="cA8jZ;,.Omp[1+/suq%]">
                    <field name="TEXT">Achtung, Achtung</field>
                  </block>
                </value>
                <value name="ADD1">
                  <block type="text_join" id="3HqC)]gq0iXtK%*[p3hQ">
                    <mutation items="2"></mutation>
                    <value name="ADD0">
                      <block type="on_source" id="PG:W-rk=a5]ZuvHl}VE,">
                        <field name="ATTR">common.name</field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="text" id="Y[(cQLz?0|*6U*0f=tp]">
                        <field name="TEXT">  ist wieder Online!</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="telegram" id="L,8yMe,dS8:R8|pT6_}N">
                <field name="INSTANCE">.0</field>
                <field name="LOG">log</field>
                <field name="SILENT">FALSE</field>
                <field name="PARSEMODE">default</field>
                <value name="MESSAGE">
                  <shadow type="text" id="c`J_.dZ/@?4%P(]3=`)]">
                    <field name="TEXT">text</field>
                  </shadow>
                  <block type="text_join" id="%-:a5R8;,|80W4V3lgRw">
                    <mutation items="2"></mutation>
                    <value name="ADD0">
                      <block type="on_source" id="7gvj54ZeLKjOW1JqBvlM">
                        <field name="ATTR">common.name</field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="text" id="f17}4~e+wfLf5x{*1zF5">
                        <field name="TEXT">  ist wieder Online!</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </xml>
        
        1 Reply Last reply Reply Quote 0
        • MyzerAT
          MyzerAT last edited by MyzerAT

          meinst du so?

          dd1df459-d19e-4439-b105-50b8598d2287-grafik.png

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

            nee da kommen fehler im log

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

              @MyzerAT
              Nein, so:

              ```
              <xml xmlns="http://www.w3.org/1999/xhtml">
              <block type="procedures_defnoreturn" id="QcHn*};aes=*M[62[T_" x="-287" y="-912"> <mutation> <arg name="name"></arg> <arg name="onoff"></arg> </mutation> <field name="NAME">Meldung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="Do1*(d;FPVdH~jRHrS{">
              <mutation delay_input="false"></mutation>
              <field name="OID">alexa2.0.Echo-Devices.G090U61084851BG7.Commands.speak</field>
              <field name="WITH_DELAY">FALSE</field>
              <value name="VALUE">
              <block type="text_join" id="FlKSls!iLkoww%{/oGK">
              <mutation items="2"></mutation>
              <value name="ADD0">
              <block type="variables_get" id="p-zuzzRM0dn;3q6]ZXUt">
              <field name="VAR">name</field>
              </block>
              </value>
              <value name="ADD1">
              <block type="variables_get" id="avU1Hb)TNf@#D~#iC?h-">
              <field name="VAR">onoff</field>
              </block>
              </value>
              </block>
              </value>
              <next>
              <block type="telegram" id="dZNtV^dV-qDs6eotVJJ"> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <value name="MESSAGE"> <shadow type="text" id="cJ_.dZ/@?4%P(]3=)]"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="o.6x{#j+oDiK_78Ko-.*"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="LLD9mGN)Su%b@r#6.Tqs"> <field name="VAR">name</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="?:%CEN8{}h/wX)sV;y%">
              <field name="VAR">onoff</field>
              </block>
              </value>
              </block>
              </value>
              </block>
              </next>
              </block>
              </statement>
              </block>
              <block type="on" id="wN;UvwDV@#P(A[|y2/s." x="-287" y="-637">
              <field name="OID">ping.1.RDJL_Home.192_168_0_64</field>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <statement name="STATEMENT">
              <block type="controls_if" id="@ec_w
              anU[C5_:,q!@u6">
              <mutation else="1"></mutation>
              <value name="IF0">
              <block type="on_source" id="}}|XsyQ@;d%Qa*P8MP"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="A{9nUa,_OgF[Kk%e1?=]"> <field name="NAME">timeout</field> <next> <block type="procedures_callnoreturn" id="V#,#{?LCEl=]otxJ:bR?" inline="false"> <mutation name="Meldung"> <arg name="name"></arg> <arg name="onoff"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="}?{-v*u;R@:1CN2rC1Xj"> <field name="ATTR">common.name</field> </block> </value> <value name="ARG1"> <block type="text" id="?m;9gH%m,/WoimPO):w">
              <field name="TEXT"> ist wieder online</field>
              </block>
              </value>
              </block>
              </next>
              </block>
              </statement>
              <statement name="ELSE">
              <block type="timeouts_settimeout" id=".7u4Jf,98)qr,a7{wnQ!">
              <field name="NAME">timeout</field>
              <field name="DELAY">120</field>
              <field name="UNIT">sec</field>
              <statement name="STATEMENT">
              <block type="procedures_callnoreturn" id="%cW2F!J99yEG-GB,y2p-">
              <mutation name="Meldung">
              <arg name="name"></arg>
              <arg name="onoff"></arg>
              </mutation>
              <value name="ARG0">
              <block type="on_source" id="C^c@O
              hX=FfH5JVUwY+w">
              <field name="ATTR">common.name</field>
              </block>
              </value>
              <value name="ARG1">
              <block type="text" id="G;p)5ufI}S0vLSaQ/%@R">
              <field name="TEXT"> ist offline</field>
              </block>
              </value>
              </block>
              </statement>
              </block>
              </statement>
              </block>
              </statement>
              </block>
              </xml>

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

                @Asgothian Die Varible "timeout" hat nichts mit dem Timer "timeout" zutun.
                Probiere das mal und beobachte das Log.
                timer.png

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

                  ich muss kurz weg zum arzt, mach dann weiter, thx an alle einstwelien!

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

                    @rantanplan sagte:

                    Die Varible "timeout" hat nichts mit dem Timer "timeout" zutun.

                    Doch: Wenn die Variable timeout auf null gesetzt wird, kann der Timer nicht mehr mit clearTimeout(timeout) gestoppt werden, denn die Variable timeout "addressiert" den Timer.

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

                      @paul53 sagte in Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!:

                      @rantanplan sagte:

                      Die Varible "timeout" hat nichts mit dem Timer "timeout" zutun.

                      Doch: Wenn die Variable timeout auf null gesetzt wird, kann der Timer nicht mehr mit clearTimeout(timeout) gestoppt werden, denn die Variable timeout "addressiert" den Timer.

                      ??? Und warum läuft mein Beispiel durch?

                      Asgothian 1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @rantanplan last edited by

                        @rantanplan sagte in Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!:

                        ??? Und warum läuft mein Beispiel durch?

                        Steht da doch. Wenn du die Variable timeout auf null setzt, dann macht das clear timeout nichts, sprich der Timer läuft durch.
                        Fehler gibt es (zumindest bei mir) keine. Dein Log sollte also die Meldungen in der folgenden Reihenfolge liefern:
                        Timer gestartet
                        Variable auf NULL gesetzt
                        Ups, ich bin trotzdem da

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

                          @Asgothian sagte in Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!:

                          Steht da doch. Wenn du die Variable timeout auf null setzt, dann macht das clear timeout nichts, sprich der Timer läuft durch.

                          Hmmm, der Sinn des Ganzen bleibt mir bleibt mir momentan noch verschlossen🙄

                          Asgothian 1 Reply Last reply Reply Quote 0
                          • Asgothian
                            Asgothian Developer @rantanplan last edited by

                            @rantanplan sagte in Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!:

                            Hmmm, der Sinn des Ganzen bleibt mir bleibt mir momentan noch verschlossen

                            Jo.. mir auch. In dieser Reihenfolge macht es keinen Sinn.

                            Wenn Du dir aber das Scriptbeispiel von mir oben anschaust, dann setze ich die Variable auf NULL in genau 3 Fällen

                            • am Anfang
                            • wenn der Timeout sauber durchgelaufen ist
                            • wenn der Timeout gelöscht wurde.

                            Und all das mit dem Ziel das ich über if timeout == NULL sicher prüfen kann ob der Timeout noch läuft, ohne eine Hilfsvariable zu spendieren.

                            A.

                            paul53 rantanplan 2 Replies Last reply Reply Quote 0
                            • paul53
                              paul53 @Asgothian last edited by paul53

                              @Asgothian sagte in:

                              wenn der Timeout sauber durchgelaufen ist

                              Das ist die einzige Stelle, wo es sinnvoll ist, denn den Rest macht die Blockly-Funktion stop timeout bereits:

                              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                              
                              Asgothian rantanplan 2 Replies Last reply Reply Quote 1
                              • rantanplan
                                rantanplan @Asgothian last edited by

                                @Asgothian sagte in Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!:

                                Und all das mit dem Ziel das ich über if timeout == NULL sicher prüfen kann ob der Timeout noch läuft, ohne eine Hilfsvariable zu spendieren.

                                Das muss ich mal verinnerlichen. Grundsätzlich gefällt mir die Idee Hilfsvariablen zu sparen.
                                Ich bin allerdings auch nicht so der Optimierungs-Freak, wenn es auf Kosten der Lesbarkeit geht. Werde es aber auf jeden Fall mal ausprobieren.

                                1 Reply Last reply Reply Quote 0
                                • Asgothian
                                  Asgothian Developer @paul53 last edited by

                                  @paul53 sagte in Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!:

                                  Das ist die einzige Stelle, wo es sinnvoll ist, denn den Rest macht die Blockly-Funktion stop timeout bereits:

                                  Und da zeigt sich das ich Blockly schlecht kenne. Ich baue alle meine Scripte direkt inJS. Deswegen hab ich zur Sicherheit den Punkt mal mit eingebaut. Um so besser (und lesbarer) wenn es gar nicht notwendig ist.

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

                                    @paul53 sagte in Ausfal IP erst melden wenn mehr als 2 Minuten nicht erreichbar!:

                                    Das ist die einzige Stelle, wo es sinnvoll ist, denn den Rest macht die Blockly-Funktion stop timeout bereits:

                                    (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                                    

                                    Danke!
                                    Jetzt wird ein Schuh daraus☺
                                    timer2.png

                                    1 Reply Last reply Reply Quote 1
                                    • MyzerAT
                                      MyzerAT last edited by

                                      so wieder da bin und dank @rantanplan, weiß ich jetzt auch wie man Debug Bausteine einsetzt 👍

                                      so ich mahc mich mal wieder an script, mal sehen ob ich das jetzt zusammen bekomme!

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      492
                                      Online

                                      31.7k
                                      Users

                                      79.7k
                                      Topics

                                      1.3m
                                      Posts

                                      4
                                      32
                                      1687
                                      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