Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Timeout Funktioniert nicht Denkfehler?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Timeout Funktioniert nicht Denkfehler?

Scheduled Pinned Locked Moved Blockly
9 Posts 4 Posters 677 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    enginik
    wrote on last edited by
    #1

    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>
    
    paul53P CodierknechtC 2 Replies Last reply
    0
    • E enginik

      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>
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @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

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      E 1 Reply Last reply
      0
      • E enginik

        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>
        
        CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        wrote on last edited by
        #3

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

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        1 Reply Last reply
        0
        • paul53P paul53

          @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 Offline
          E Offline
          enginik
          wrote on last edited by
          #4

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

          MartinPM paul53P 2 Replies Last reply
          0
          • E enginik

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

            MartinPM Online
            MartinPM Online
            MartinP
            wrote on last edited by MartinP
            #5

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

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
            Linux pve 6.17.9-1-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            CodierknechtC 1 Reply Last reply
            0
            • MartinPM 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 ...

              CodierknechtC Offline
              CodierknechtC Offline
              Codierknecht
              Developer Most Active
              wrote on last edited by Codierknecht
              #6

              @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 :grin:

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              MartinPM 1 Reply Last reply
              0
              • CodierknechtC 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 :grin:

                MartinPM Online
                MartinPM Online
                MartinP
                wrote on last edited by
                #7

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

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                Linux pve 6.17.9-1-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                CodierknechtC 1 Reply Last reply
                0
                • MartinPM MartinP

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

                  CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  wrote on last edited by
                  #8

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

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  1 Reply Last reply
                  0
                  • E enginik

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

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

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

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    444

                    Online

                    32.7k

                    Users

                    82.4k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe