Navigation

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

    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 Funktioniert nicht Denkfehler?

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

      Hallo ich brauche bitte eure Hilfe ich habe ein Blockly für die Überwachung ob meine Sensoren alle erreichbar sind. Nur sind Sensoren ab und an kurzfristig immer mal Offline.
      darum habe ich ein Timeout eingearbeitet nur der tut es nicht wenn ich mal ein Sensor kurzfristig Off nehme. Habe ich ein Denkfehler bitte um Hilfe.

      Bildschirmfoto 2023-11-21 um 22.04.06.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable type="timeout" id="timeout">timeout</variable>
        </variables>
        <block type="on_ext" id=",gn9f^DE6hN9n_6%3cep" x="-337" y="-237">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">lt</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="BWia]K1-|N9/83.2cPGJ">
              <field name="oid">default</field>
            </shadow>
            <block type="selector" id="`xIKVJ,?2PF`Iu_JZ}=H">
              <field name="TEXT">state[id=*](functions=Erreichbar)</field>
            </block>
          </value>
          <statement name="STATEMENT">
            <block type="timeouts_cleartimeout" id="9#GRW3D4:.i`nIki|y%(">
              <field name="NAME">timeout</field>
              <next>
                <block type="timeouts_settimeout" id="8K~_K8.uU4Y?oVTu#enM">
                  <field name="NAME">timeout</field>
                  <field name="DELAY">10</field>
                  <field name="UNIT">sec</field>
                  <statement name="STATEMENT">
                    <block type="controls_if" id="nBc!ay]WzcNES`o94MIV">
                      <value name="IF0">
                        <block type="on_source" id="V,$2A4_8djn`Pm=bh^O)">
                          <field name="ATTR">id</field>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="telegram" id="Q.Crw~U=57NE!8WV7o+u">
                          <field name="INSTANCE"></field>
                          <field name="LOG">log</field>
                          <field name="SILENT">FALSE</field>
                          <field name="PARSEMODE">default</field>
                          <field name="ESCAPING">FALSE</field>
                          <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                          <value name="MESSAGE">
                            <shadow type="text" id="$::~EeY.H:)A^XehUztJ">
                              <field name="TEXT">text</field>
                            </shadow>
                            <block type="text_join" id="m?AD$ce,e~6t-0k4abNp">
                              <mutation items="2"></mutation>
                              <value name="ADD0">
                                <block type="on_source" id="ga4s#a`ZQ#}UBdPg1*kT">
                                  <field name="ATTR">channelName</field>
                                </block>
                              </value>
                              <value name="ADD1">
                                <block type="text" id="Db,_h/G(J{o$Ca`JU|p2">
                                  <field name="TEXT">   ist NICHT Erreichbar </field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </statement>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      paul53 Codierknecht 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @enginik last edited by

        @enginik sagte: wenn ich mal ein Sensor kurzfristig Off nehme.

        So wird nicht festgestellt, ob der Sensor innerhalb der Timeout-Dauer wieder erreichbar ist. Versuche es mal so:

        Blockly_temp.JPG

        E 1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @enginik last edited by

          @enginik
          Du triggerst auf "kleiner als letztes". Damit feuert der Trigger nicht, wenn ein Gerät wieder online und und löscht somit auch nicht den Timeout.

          Triggere auf "wurde geändert" und frage per "Falls" ab, ob nicht erreichbar.

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

            @paul53 danke ich habe das jetzt so gelöst
            Bildschirmfoto 2023-11-22 um 09.43.07.png

            erste Blockly funktioniert jetzt einwandfrei aber der zweite soll erst auslösen wenn der erste einen offline gemeldet hatte das habe ich noch nicht hinbekommen. der meldet online auch wenn er nur kurzzeitig Off war und nun seit mehr als 5 min online ist.

            MartinP paul53 2 Replies Last reply Reply Quote 0
            • MartinP
              MartinP @enginik last edited by MartinP

              @enginik Im zweiten Skript steht noch "ist kleiner als ..."

              Ich habe die "erreichbar" und "nicht erreichbar (timeout)" Logik bei einem ähnlichen Problem in einen Block gepackt:

              6b8a0929-efca-446c-b01e-eab42e331111-grafik.png

              Ich frage mich nur, wieso Du das "Erreichbar" selber auf Timeout setzt? Willst Du nur Mitteilungen über "ernsthafte" Nicht-Erreichbarkeit über längere Zeiträume von mehr als 30 Minuten per Telegram bekommen?
              Ich finde, wenn man kürzere Nicht-Erreichbarkeiten toleriert und sogar von ihnen nicht belästigt werden will, hat man die Kontrolle über sein Smart-Home verloren .....

              Wenn 30 Minuten der Temperatursensor in einen Zimmer nicht erreichbar ist, und über diesen Sensor getriggert Iobroker auch das Heizkörperventil steuert, kann das Zimmer schon brüllend heiß, oder eiskalt sein, bis der Sensor wieder eine aktuelle Temperatur meldet, und man kriegt von dem Grund dafür erstmal nichts mit ...

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @MartinP last edited by Codierknecht

                @martinp sagte in Timeout Funktioniert nicht Denkfehler?:

                Wenn 30 Minuten der Temperatursensor in einen Zimmer nicht erreichbar ist, und über diesen Sensor getriggert Iobroker auch das Heizkörperventil steuert, kann das Zimmer schon brüllend heiß, oder eiskalt sein, bis der Sensor wieder eine aktuelle Temperatur meldet, und man kriegt von dem Grund dafür erstmal nichts mit ...

                @enginik
                Damit geht der WAF gegen 0 und die Dame des Hauses (in aller Regel) steigt Dir aufs Dach,
                Ohne WAF kannste das SmartHome in die Tonnen treten 😁

                MartinP 1 Reply Last reply Reply Quote 0
                • MartinP
                  MartinP @Codierknecht last edited by

                  @codierknecht Du meinst, bevor die Telegram-Nachricht eintrudelt, steht die Frau schon auf der Matte.... sicherlich wahr, wenn es denn ein von ihr frequentierter Raum ist.

                  Jedenfalls würde ich "unsichere" Sensoren nie zum Teil einer Regelschleife über Iobroker machen ... wobei @enginik nichts darüber gesagt hat, inwieweit das bei seinen Sensoren der Fall ist ...

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @MartinP last edited by

                    @martinp sagte in Timeout Funktioniert nicht Denkfehler?:

                    steht die Frau schon auf der Matte

                    Un die ist dann meist nicht mehr gut auf SH zu sprechen 😉

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

                      @enginik sagte: erste Blockly funktioniert jetzt einwandfrei

                      Das bezweifle ich (Prüfung von Objekt ID anstelle von Wert).
                      Das funktioniert so nicht mit dem Selektor, da jeder Sensor seine eigenen Timer bräuchte: Innerhalb von 30 Minuten kann ein zweiter Sensor ausfallen.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      686
                      Online

                      31.9k
                      Users

                      80.2k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      377
                      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