NEWS
Timeout Funktioniert nicht Denkfehler?
-
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.<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>
-
@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:
-
@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.
-
@paul53 danke ich habe das jetzt so gelöst
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.
-
@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:
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 ...
-
@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 -
@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 ...
-
@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
-
@enginik sagte: erste Blockly funktioniert jetzt einwandfrei
Das bezweifle ich (Prüfung von
Objekt ID
anstelle vonWert
).
Das funktioniert so nicht mit dem Selektor, da jeder Sensor seine eigenen Timer bräuchte: Innerhalb von 30 Minuten kann ein zweiter Sensor ausfallen.