Skip to content
  • Home
  • 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

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?

Geplant Angeheftet Gesperrt Verschoben Blockly
9 Beiträge 4 Kommentatoren 677 Aufrufe 3 Watching
  • Ä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.
  • E Offline
    E Offline
    enginik
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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 Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antworten Letzte Antwort
          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 Offline
            MartinPM Offline
            MartinP
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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 Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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 Offline
                MartinPM Offline
                MartinP
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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 Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 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

                    662

                    Online

                    32.7k

                    Benutzer

                    82.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
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe