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. [gelöst] Stark verzögerte Triggerreaktion IDs vom Selektor

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Stark verzögerte Triggerreaktion IDs vom Selektor

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
13 Beiträge 3 Kommentatoren 995 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.
  • P Offline
    P Offline
    puppet1912
    schrieb am zuletzt editiert von puppet1912
    #1

    Hallo zusammen!

    Ich bin aktuell dabei mittels des Bausteins "IDs vom Selektor" ein Blockly zu bauen, welches die Online-Zustände verschiedener Shellys überwacht. Sowie so gut....

    Nun ist mir aufgefallen, dass insbesondere die Reaktion auf "false" extrem verzögert und oftmals gar nicht geschieht. Ich habe sowohl mit "wurde aktualisiert" und "wurde geändert" getestet. Gleiches Verhalten.

    Auf "true" reagiert der Trigger quasi sofort, auf false wie gesagt in der Regel nicht. Erst wenn der Datenpunkt wieder "true" ist kommt sowohl die Reaktion auf "false" als auch auf "true" direkt nacheinander. Die Zeitstempel im Log passen dann aber trotzdem.

    Mein Blockly ist aktuell nur ein Test, daher der Debug-Output um das nachbilden zu können. Also bitte nicht wundern.

    idsvomsel.JPG

    Ist so etwas schon mal wem untergekommen, oder hat eine Lösung? Eine Offlinewarnung sollte ja zeitnah geschehen....

    Danke und Grüße

    ioBroker 4.0.23 - Debian Bullseye unter Proxmox auf IntelNuc7i5BNK

    paul53P 1 Antwort Letzte Antwort
    0
    • P puppet1912

      Hallo zusammen!

      Ich bin aktuell dabei mittels des Bausteins "IDs vom Selektor" ein Blockly zu bauen, welches die Online-Zustände verschiedener Shellys überwacht. Sowie so gut....

      Nun ist mir aufgefallen, dass insbesondere die Reaktion auf "false" extrem verzögert und oftmals gar nicht geschieht. Ich habe sowohl mit "wurde aktualisiert" und "wurde geändert" getestet. Gleiches Verhalten.

      Auf "true" reagiert der Trigger quasi sofort, auf false wie gesagt in der Regel nicht. Erst wenn der Datenpunkt wieder "true" ist kommt sowohl die Reaktion auf "false" als auch auf "true" direkt nacheinander. Die Zeitstempel im Log passen dann aber trotzdem.

      Mein Blockly ist aktuell nur ein Test, daher der Debug-Output um das nachbilden zu können. Also bitte nicht wundern.

      idsvomsel.JPG

      Ist so etwas schon mal wem untergekommen, oder hat eine Lösung? Eine Offlinewarnung sollte ja zeitnah geschehen....

      Danke und Grüße

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @puppet1912 sagte: Erst wenn der Datenpunkt wieder "true" ist kommt sowohl die Reaktion auf "false" als auch auf "true" direkt nacheinander.

      Vermutung: Die Datenpunkte wechseln nicht auf false, sondern haben keinen Zustand. Dann können sie nicht mehr triggern.

      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

      P 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @puppet1912 sagte: Erst wenn der Datenpunkt wieder "true" ist kommt sowohl die Reaktion auf "false" als auch auf "true" direkt nacheinander.

        Vermutung: Die Datenpunkte wechseln nicht auf false, sondern haben keinen Zustand. Dann können sie nicht mehr triggern.

        P Offline
        P Offline
        puppet1912
        schrieb am zuletzt editiert von
        #3

        @paul53
        Die Vermutung ist berechtigt, habe ich aber tatsächlich nebenbei geprüft. Der Zustand des Datenpunktes wechselt defintiv jedes mal. Nur die Debug-Ausgabe reagiert wie beschrieben verzögert.

        Grüße

        ioBroker 4.0.23 - Debian Bullseye unter Proxmox auf IntelNuc7i5BNK

        DJMarc75D 1 Antwort Letzte Antwort
        0
        • P puppet1912

          @paul53
          Die Vermutung ist berechtigt, habe ich aber tatsächlich nebenbei geprüft. Der Zustand des Datenpunktes wechselt defintiv jedes mal. Nur die Debug-Ausgabe reagiert wie beschrieben verzögert.

          Grüße

          DJMarc75D Offline
          DJMarc75D Offline
          DJMarc75
          schrieb am zuletzt editiert von DJMarc75
          #4

          @puppet1912 Hab da mal was gebastelt und getestet. Zumindest funktionierts bei mir so ohne Verzögerung mit den Shellys:

          Screenshot 2022-07-12 164815.png

          JS-Funktion:

          return getObject(id).common.name; 
          


          <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
          <variable id="pG9B-J+!~NV%)XblSH">Liste</variable>
          <variable id="}C,vdrOLxAOW-W^#ZQA">id</variable> <variable id="2h_!zm_t0]ewai#h}K^]">true</variable> <variable id="|RHJi9fgTN)D1LhbkEC1">false</variable> <variable id="2?n$Sb1zieDf0D4ctS+}">i</variable> </variables> <block type="variables_set" id="zC!X6xvd{_[#iFUWSw``" x="-262" y="-562"> <field name="VAR" id="pG9B-J+!~NV%)Xb*l*SH">Liste</field> <value name="VALUE"> <block type="selector" id="03?xKTf;!VOD19Rsa2_">
          <field name="TEXT">(functions=LostCon)</field>
          </block>
          </value>
          <next>
          <block type="on_ext" id="X}-6Uq@:qL:+S[V!TlgU">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
          <shadow type="field_oid" id=",UI,O@^F$|0_}9_rOi%[">
          <field name="oid">default</field>
          </shadow>
          <block type="variables_get" id="||}udX0swL73ERhMn+rw">
          <field name="VAR" id="pG9B-J+!~NV%)Xb
          lSH">Liste</field>
          </block>
          </value>
          <statement name="STATEMENT">
          <block type="variables_set" id="t9eKT0wDh0XFL1OZ)jt)">
          <field name="VAR" id="2h_!zm_t0]ewai#h}K^]">true</field>
          <value name="VALUE">
          <block type="lists_create_with" id="X#w]EW^#iuk2:PK^ZoYc">
          <mutation items="0"></mutation>
          </block>
          </value>
          <next>
          <block type="variables_set" id="Tza;}.8_KJj4;={,1X0(">
          <field name="VAR" id="|RHJi9fgTN)D1LhbkEC1">false</field>
          <value name="VALUE">
          <block type="lists_create_with" id="Qx+7[5,#{1!80#L[77h(">
          <mutation items="0"></mutation>
          </block>
          </value>
          <next>
          <block type="controls_forEach" id="ZzPLw7BWH`G}u1
          z0e8-">
          <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
          <value name="LIST">
          <block type="variables_get" id="8,Oa4x%oB%77/G;?zRWf">
          <field name="VAR" id="pG9B-J+!~NV%)XblSH">Liste</field>
          </block>
          </value>
          <statement name="DO">
          <block type="controls_if" id="rF{)FjpW~?p!$/)n7Yes">
          <mutation elseif="1"></mutation>
          <value name="IF0">
          <block type="logic_compare" id="wKBFF*;^K,!0KZdbKK#F">
          <field name="OP">EQ</field>
          <value name="A">
          <block type="get_value_var" id="CS+0WsMog?-H0?;}e1+K">
          <field name="ATTR">val</field>
          <value name="OID">
          <shadow type="text" id="mhsW9bv%JB/f4}))K.h">
          <field name="TEXT"></field>
          </shadow>
          <block type="variables_get" id="cX$x9lAxqCm-P~bKl?`x">
          <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
          </block>
          </value>
          </block>
          </value>
          <value name="B">
          <block type="logic_boolean" id="5gOxApd5zGl5nd0/,gao">
          <field name="BOOL">TRUE</field>
          </block>
          </value>
          </block>
          </value>
          <statement name="DO0">
          <block type="lists_setIndex" id="IiueN#6;R^G~gn7!)SPR">
          <mutation at="false"></mutation>
          <field name="MODE">INSERT</field>
          <field name="WHERE">LAST</field>
          <value name="LIST">
          <block type="variables_get" id="w/G9Ia/IK[tpg_(:9fmY">
          <field name="VAR" id="2h_!zm_t0]ewai#h}K^]">true</field>
          </block>
          </value>
          <value name="TO">
          <block type="procedures_callcustomreturn" id="_+2;w)2qKXCqLfF0jq2}" inline="true">
          <mutation name="getName">
          <arg name="id"></arg>
          </mutation>
          <value name="ARG0">
          <block type="variables_get" id=".J
          ToNM/JOp:l0%=lzA[">
          <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </statement>
          <value name="IF1">
          <block type="logic_compare" id="RO?3M*^lipp5yer,0;a-">
          <field name="OP">EQ</field>
          <value name="A">
          <block type="get_value_var" id="Je!LG;-@sDx_s2T:/R~S">
          <field name="ATTR">val</field>
          <value name="OID">
          <shadow type="text">
          <field name="TEXT"></field>
          </shadow>
          <block type="variables_get" id="EJm..ko}GN`y1^K7pwr3">
          <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
          </block>
          </value>
          </block>
          </value>
          <value name="B">
          <block type="logic_boolean" id="yo.}z[wX)0qj{@a,+R;b">
          <field name="BOOL">FALSE</field>
          </block>
          </value>
          </block>
          </value>
          <statement name="DO1">
          <block type="lists_setIndex" id="b{J_~z;D9VRto_a.DYT">
          <mutation at="false"></mutation>
          <field name="MODE">INSERT</field>
          <field name="WHERE">LAST</field>
          <value name="LIST">
          <block type="variables_get" id="%Xy{Qz7s0D?}^Ox(+g4]">
          <field name="VAR" id="|RHJi9fgTN)D1LhbkEC1">false</field>
          </block>
          </value>
          <value name="TO">
          <block type="procedures_callcustomreturn" id="WMCLrhs{E7,jlKPtWi66" inline="true">
          <mutation name="getName">
          <arg name="id"></arg>
          </mutation>
          <value name="ARG0">
          <block type="variables_get" id="{Jh]i2`8kn4PgtB}WB@9">
          <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </statement>
          </block>
          </statement>
          <next>
          <block type="debug" id="5~4}NVirRxn;gwr!aA1o">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text" id="kGrb;[!z}G7y1E?,}8,7">
          <field name="TEXT">test</field>
          </shadow>
          <block type="text_join" id="Tj.JFZV!DSdD*iYxq9Vk">
          <mutation items="2"></mutation>
          <value name="ADD0">
          <block type="text" id="t1|pWSmrHphA9`#oaS66">
          <field name="TEXT">Offline: </field>
          </block>
          </value>
          <value name="ADD1">
          <block type="lists_split" id="S03BC`KA+zz=MLOX{Rtk">
          <mutation mode="JOIN"></mutation>
          <field name="MODE">JOIN</field>
          <value name="INPUT">
          <block type="variables_get" id="q=V1A8T~j{j6rGzHm^:S">
          <field name="VAR" id="|RHJi9fgTN)D1LhbkEC1">false</field>
          </block>
          </value>
          <value name="DELIM">
          <shadow type="text" id="qEn(]!)8s2FYDtOefrUM">
          <field name="TEXT">,</field>
          </shadow>
          <block type="text" id="$XZ{JkZf6jbux/){6t6j">
          <field name="TEXT">, </field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          <next>
          <block type="debug" id="?*kCvR1(+E-80XDRa}LF">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text" id=";NP:
          }HY$z/x{qk6#HMr">
          <field name="TEXT">test</field>
          </shadow>
          <block type="text_join" id="EVjg^P,wVQ*p@lnY)n7/">
          <mutation items="2"></mutation>
          <value name="ADD0">
          <block type="text" id="o3)d}u,qxwex9.n)z^QC">
          <field name="TEXT">Online: </field>
          </block>
          </value>
          <value name="ADD1">
          <block type="lists_split" id="A$Z;6`IYoAVp,Xqwi#^m">
          <mutation mode="JOIN"></mutation>
          <field name="MODE">JOIN</field>
          <value name="INPUT">
          <block type="variables_get" id="7B)$.vJx|N~Qv8eC(rRp">
          <field name="VAR" id="2h_!zm_t0]ewai#h}K^]">true</field>
          </block>
          </value>
          <value name="DELIM">
          <shadow type="text">
          <field name="TEXT">,</field>
          </shadow>
          <block type="text" id="GClXMqE][APr@/;IDHR.">
          <field name="TEXT">, </field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </statement>
          </block>
          </next>
          </block>
          <block type="procedures_defcustomreturn" id="`b6_!v~9#Y!k45Fl?.w," x="263" y="-562">
          <mutation statements="false">
          <arg name="id" varid="}C,`vdrOLxAOW-W^#ZQA"></arg>
          </mutation>
          <field name="NAME">getName</field>
          <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7IA==</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          </xml>

          Lehrling seit 1975 !!!
          Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
          https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

          P 1 Antwort Letzte Antwort
          0
          • DJMarc75D DJMarc75

            @puppet1912 Hab da mal was gebastelt und getestet. Zumindest funktionierts bei mir so ohne Verzögerung mit den Shellys:

            Screenshot 2022-07-12 164815.png

            JS-Funktion:

            return getObject(id).common.name; 
            


            <xml xmlns="https://developers.google.com/blockly/xml">
            <variables>
            <variable id="pG9B-J+!~NV%)XblSH">Liste</variable>
            <variable id="}C,vdrOLxAOW-W^#ZQA">id</variable> <variable id="2h_!zm_t0]ewai#h}K^]">true</variable> <variable id="|RHJi9fgTN)D1LhbkEC1">false</variable> <variable id="2?n$Sb1zieDf0D4ctS+}">i</variable> </variables> <block type="variables_set" id="zC!X6xvd{_[#iFUWSw``" x="-262" y="-562"> <field name="VAR" id="pG9B-J+!~NV%)Xb*l*SH">Liste</field> <value name="VALUE"> <block type="selector" id="03?xKTf;!VOD19Rsa2_">
            <field name="TEXT">(functions=LostCon)</field>
            </block>
            </value>
            <next>
            <block type="on_ext" id="X}-6Uq@:qL:+S[V!TlgU">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
            <shadow type="field_oid" id=",UI,O@^F$|0_}9_rOi%[">
            <field name="oid">default</field>
            </shadow>
            <block type="variables_get" id="||}udX0swL73ERhMn+rw">
            <field name="VAR" id="pG9B-J+!~NV%)Xb
            lSH">Liste</field>
            </block>
            </value>
            <statement name="STATEMENT">
            <block type="variables_set" id="t9eKT0wDh0XFL1OZ)jt)">
            <field name="VAR" id="2h_!zm_t0]ewai#h}K^]">true</field>
            <value name="VALUE">
            <block type="lists_create_with" id="X#w]EW^#iuk2:PK^ZoYc">
            <mutation items="0"></mutation>
            </block>
            </value>
            <next>
            <block type="variables_set" id="Tza;}.8_KJj4;={,1X0(">
            <field name="VAR" id="|RHJi9fgTN)D1LhbkEC1">false</field>
            <value name="VALUE">
            <block type="lists_create_with" id="Qx+7[5,#{1!80#L[77h(">
            <mutation items="0"></mutation>
            </block>
            </value>
            <next>
            <block type="controls_forEach" id="ZzPLw7BWH`G}u1
            z0e8-">
            <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
            <value name="LIST">
            <block type="variables_get" id="8,Oa4x%oB%77/G;?zRWf">
            <field name="VAR" id="pG9B-J+!~NV%)XblSH">Liste</field>
            </block>
            </value>
            <statement name="DO">
            <block type="controls_if" id="rF{)FjpW~?p!$/)n7Yes">
            <mutation elseif="1"></mutation>
            <value name="IF0">
            <block type="logic_compare" id="wKBFF*;^K,!0KZdbKK#F">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value_var" id="CS+0WsMog?-H0?;}e1+K">
            <field name="ATTR">val</field>
            <value name="OID">
            <shadow type="text" id="mhsW9bv%JB/f4}))K.h">
            <field name="TEXT"></field>
            </shadow>
            <block type="variables_get" id="cX$x9lAxqCm-P~bKl?`x">
            <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
            </block>
            </value>
            </block>
            </value>
            <value name="B">
            <block type="logic_boolean" id="5gOxApd5zGl5nd0/,gao">
            <field name="BOOL">TRUE</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="lists_setIndex" id="IiueN#6;R^G~gn7!)SPR">
            <mutation at="false"></mutation>
            <field name="MODE">INSERT</field>
            <field name="WHERE">LAST</field>
            <value name="LIST">
            <block type="variables_get" id="w/G9Ia/IK[tpg_(:9fmY">
            <field name="VAR" id="2h_!zm_t0]ewai#h}K^]">true</field>
            </block>
            </value>
            <value name="TO">
            <block type="procedures_callcustomreturn" id="_+2;w)2qKXCqLfF0jq2}" inline="true">
            <mutation name="getName">
            <arg name="id"></arg>
            </mutation>
            <value name="ARG0">
            <block type="variables_get" id=".J
            ToNM/JOp:l0%=lzA[">
            <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
            </block>
            </value>
            </block>
            </value>
            </block>
            </statement>
            <value name="IF1">
            <block type="logic_compare" id="RO?3M*^lipp5yer,0;a-">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value_var" id="Je!LG;-@sDx_s2T:/R~S">
            <field name="ATTR">val</field>
            <value name="OID">
            <shadow type="text">
            <field name="TEXT"></field>
            </shadow>
            <block type="variables_get" id="EJm..ko}GN`y1^K7pwr3">
            <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
            </block>
            </value>
            </block>
            </value>
            <value name="B">
            <block type="logic_boolean" id="yo.}z[wX)0qj{@a,+R;b">
            <field name="BOOL">FALSE</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO1">
            <block type="lists_setIndex" id="b{J_~z;D9VRto_a.DYT">
            <mutation at="false"></mutation>
            <field name="MODE">INSERT</field>
            <field name="WHERE">LAST</field>
            <value name="LIST">
            <block type="variables_get" id="%Xy{Qz7s0D?}^Ox(+g4]">
            <field name="VAR" id="|RHJi9fgTN)D1LhbkEC1">false</field>
            </block>
            </value>
            <value name="TO">
            <block type="procedures_callcustomreturn" id="WMCLrhs{E7,jlKPtWi66" inline="true">
            <mutation name="getName">
            <arg name="id"></arg>
            </mutation>
            <value name="ARG0">
            <block type="variables_get" id="{Jh]i2`8kn4PgtB}WB@9">
            <field name="VAR" id="2?n$Sb1zieDf0D4ctS+}">i</field>
            </block>
            </value>
            </block>
            </value>
            </block>
            </statement>
            </block>
            </statement>
            <next>
            <block type="debug" id="5~4}NVirRxn;gwr!aA1o">
            <field name="Severity">log</field>
            <value name="TEXT">
            <shadow type="text" id="kGrb;[!z}G7y1E?,}8,7">
            <field name="TEXT">test</field>
            </shadow>
            <block type="text_join" id="Tj.JFZV!DSdD*iYxq9Vk">
            <mutation items="2"></mutation>
            <value name="ADD0">
            <block type="text" id="t1|pWSmrHphA9`#oaS66">
            <field name="TEXT">Offline: </field>
            </block>
            </value>
            <value name="ADD1">
            <block type="lists_split" id="S03BC`KA+zz=MLOX{Rtk">
            <mutation mode="JOIN"></mutation>
            <field name="MODE">JOIN</field>
            <value name="INPUT">
            <block type="variables_get" id="q=V1A8T~j{j6rGzHm^:S">
            <field name="VAR" id="|RHJi9fgTN)D1LhbkEC1">false</field>
            </block>
            </value>
            <value name="DELIM">
            <shadow type="text" id="qEn(]!)8s2FYDtOefrUM">
            <field name="TEXT">,</field>
            </shadow>
            <block type="text" id="$XZ{JkZf6jbux/){6t6j">
            <field name="TEXT">, </field>
            </block>
            </value>
            </block>
            </value>
            </block>
            </value>
            <next>
            <block type="debug" id="?*kCvR1(+E-80XDRa}LF">
            <field name="Severity">log</field>
            <value name="TEXT">
            <shadow type="text" id=";NP:
            }HY$z/x{qk6#HMr">
            <field name="TEXT">test</field>
            </shadow>
            <block type="text_join" id="EVjg^P,wVQ*p@lnY)n7/">
            <mutation items="2"></mutation>
            <value name="ADD0">
            <block type="text" id="o3)d}u,qxwex9.n)z^QC">
            <field name="TEXT">Online: </field>
            </block>
            </value>
            <value name="ADD1">
            <block type="lists_split" id="A$Z;6`IYoAVp,Xqwi#^m">
            <mutation mode="JOIN"></mutation>
            <field name="MODE">JOIN</field>
            <value name="INPUT">
            <block type="variables_get" id="7B)$.vJx|N~Qv8eC(rRp">
            <field name="VAR" id="2h_!zm_t0]ewai#h}K^]">true</field>
            </block>
            </value>
            <value name="DELIM">
            <shadow type="text">
            <field name="TEXT">,</field>
            </shadow>
            <block type="text" id="GClXMqE][APr@/;IDHR.">
            <field name="TEXT">, </field>
            </block>
            </value>
            </block>
            </value>
            </block>
            </value>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </statement>
            </block>
            </next>
            </block>
            <block type="procedures_defcustomreturn" id="`b6_!v~9#Y!k45Fl?.w," x="263" y="-562">
            <mutation statements="false">
            <arg name="id" varid="}C,`vdrOLxAOW-W^#ZQA"></arg>
            </mutation>
            <field name="NAME">getName</field>
            <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7IA==</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
            </block>
            </xml>

            P Offline
            P Offline
            puppet1912
            schrieb am zuletzt editiert von
            #5

            @djmarc75 said in Stark verzögerte Triggerreaktion IDs vom Selektor:

            return getObject(id).common.name;

            Guten Abend!

            Erstmal Danke für deine Mühen. Ich habe mir mal erlaubt dein Blockly nachzubauen und die vier bis fünf mal die ich eben getestet habe, war keine großartige Verzögerung da. Bei meinem Testscript im Moment allerdings auch nicht. Es ist mir wirklich ein Rätsel.

            Deine Herangehensweise finde ich recht interessant. Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?

            Eins haben unsere Scripte allerdings gemein, beide reagieren auf jede Änderung, sodass wenn bspw drei von zehn überwachten Zuständen nur wenige Millisekunden hintereinander auf false wechseln, auch mehrere Nachrichten kommen. Hier muss ich wohl an geeigneter Stelle noch etwas einbauen.

            Ich danke dir für deine Hilfe.

            Beste Grüße

            ioBroker 4.0.23 - Debian Bullseye unter Proxmox auf IntelNuc7i5BNK

            DJMarc75D paul53P 2 Antworten Letzte Antwort
            0
            • P puppet1912

              @djmarc75 said in Stark verzögerte Triggerreaktion IDs vom Selektor:

              return getObject(id).common.name;

              Guten Abend!

              Erstmal Danke für deine Mühen. Ich habe mir mal erlaubt dein Blockly nachzubauen und die vier bis fünf mal die ich eben getestet habe, war keine großartige Verzögerung da. Bei meinem Testscript im Moment allerdings auch nicht. Es ist mir wirklich ein Rätsel.

              Deine Herangehensweise finde ich recht interessant. Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?

              Eins haben unsere Scripte allerdings gemein, beide reagieren auf jede Änderung, sodass wenn bspw drei von zehn überwachten Zuständen nur wenige Millisekunden hintereinander auf false wechseln, auch mehrere Nachrichten kommen. Hier muss ich wohl an geeigneter Stelle noch etwas einbauen.

              Ich danke dir für deine Hilfe.

              Beste Grüße

              DJMarc75D Offline
              DJMarc75D Offline
              DJMarc75
              schrieb am zuletzt editiert von
              #6

              @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

              Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?

              Dass beim Skriptstart die Variable auf den Selektor gesetzt wird und somit nicht verloren geht.

              @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

              war keine großartige Verzögerung da

              Bei mir max. 1 Sekunde beim Test.

              @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

              nur wenige Millisekunden hintereinander auf false wechseln

              Da ergibt sich die Frage: Warum wechseln denn diese Shellys so oft den Onlinezustand ??? Welche sind das denn ?

              Lehrling seit 1975 !!!
              Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
              https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

              P 1 Antwort Letzte Antwort
              0
              • DJMarc75D DJMarc75

                @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

                Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?

                Dass beim Skriptstart die Variable auf den Selektor gesetzt wird und somit nicht verloren geht.

                @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

                war keine großartige Verzögerung da

                Bei mir max. 1 Sekunde beim Test.

                @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

                nur wenige Millisekunden hintereinander auf false wechseln

                Da ergibt sich die Frage: Warum wechseln denn diese Shellys so oft den Onlinezustand ??? Welche sind das denn ?

                P Offline
                P Offline
                puppet1912
                schrieb am zuletzt editiert von
                #7

                @djmarc75

                Da ergibt sich die Frage: Warum wechseln denn diese Shellys so oft den Onlinezustand ??? Welche sind das denn ?

                Das ist nicht der Regelfall, eher ein Schönheitsfehler. Ich nutze bspw 6 Shellys für meine Ventilsteuerung der Gartenbewässerung. Diese sind alle über die gleiche Sicherung abgesichert. Wenn also mal der Strom weg ist, aus welchen Gründen auch immer, wechseln gleich mehrere auf false. Beim Zuschalten des Stromes wechseln natürlich nicht alle zum exakt gleichen Zeitpunkt auf true.

                Wie gesagt, nur ein Schönheitsfehler und nicht die Regel.

                ioBroker 4.0.23 - Debian Bullseye unter Proxmox auf IntelNuc7i5BNK

                DJMarc75D 1 Antwort Letzte Antwort
                0
                • P puppet1912

                  @djmarc75

                  Da ergibt sich die Frage: Warum wechseln denn diese Shellys so oft den Onlinezustand ??? Welche sind das denn ?

                  Das ist nicht der Regelfall, eher ein Schönheitsfehler. Ich nutze bspw 6 Shellys für meine Ventilsteuerung der Gartenbewässerung. Diese sind alle über die gleiche Sicherung abgesichert. Wenn also mal der Strom weg ist, aus welchen Gründen auch immer, wechseln gleich mehrere auf false. Beim Zuschalten des Stromes wechseln natürlich nicht alle zum exakt gleichen Zeitpunkt auf true.

                  Wie gesagt, nur ein Schönheitsfehler und nicht die Regel.

                  DJMarc75D Offline
                  DJMarc75D Offline
                  DJMarc75
                  schrieb am zuletzt editiert von
                  #8

                  @puppet1912 Könntest ja dann das ganze per CRON/Zeitplan abfragen. Nur als Idee.

                  Lehrling seit 1975 !!!
                  Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                  https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                  P 1 Antwort Letzte Antwort
                  0
                  • P puppet1912

                    @djmarc75 said in Stark verzögerte Triggerreaktion IDs vom Selektor:

                    return getObject(id).common.name;

                    Guten Abend!

                    Erstmal Danke für deine Mühen. Ich habe mir mal erlaubt dein Blockly nachzubauen und die vier bis fünf mal die ich eben getestet habe, war keine großartige Verzögerung da. Bei meinem Testscript im Moment allerdings auch nicht. Es ist mir wirklich ein Rätsel.

                    Deine Herangehensweise finde ich recht interessant. Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?

                    Eins haben unsere Scripte allerdings gemein, beide reagieren auf jede Änderung, sodass wenn bspw drei von zehn überwachten Zuständen nur wenige Millisekunden hintereinander auf false wechseln, auch mehrere Nachrichten kommen. Hier muss ich wohl an geeigneter Stelle noch etwas einbauen.

                    Ich danke dir für deine Hilfe.

                    Beste Grüße

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @puppet1912 sagte: Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?

                    Wenn das Ergebnis einer komplexe Funktion - wie Selektor - mehr als einmal verwendet wird (hier zweimal), schont es Ressourcen, wenn man eine Variable mit dem Ergebnis der Funktion füllt und dann diese verwendet.

                    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

                    P 1 Antwort Letzte Antwort
                    0
                    • DJMarc75D DJMarc75

                      @puppet1912 Könntest ja dann das ganze per CRON/Zeitplan abfragen. Nur als Idee.

                      P Offline
                      P Offline
                      puppet1912
                      schrieb am zuletzt editiert von puppet1912
                      #10

                      @djmarc75 said in Stark verzögerte Triggerreaktion IDs vom Selektor:

                      @puppet1912 Könntest ja dann das ganze per CRON/Zeitplan abfragen. Nur als Idee.

                      Mahlzeit.

                      Ja das eine sehr gute Idee. Danke dir.

                      Eine Änderung werde ich auch noch vornehmen müssen. Der Datenpunkt des Shellys welcher den Onlinestatus ausgibt, hat als Namen ebenfalls nur "online". Sinnvoll wäre es aber, den Namen des eigentlichen Devices auzugeben, denn diese enthält gleichzeitig das Ventil welches angesteuert wird.
                      Könnte man das direkt über eine JS-Funktion realisieren?

                      Mir kam jetzt nur der Gedanke den gesamten Pfad des Online-DPs zu speichern, über "nimm-Text-Ab" die letzten Stellen zu entfernen und dann über eine weitere Funktion den Namen des so erhaltenen Devices zu ermitteln. War das verständlich wie ich das meine?

                      Grüße

                      ioBroker 4.0.23 - Debian Bullseye unter Proxmox auf IntelNuc7i5BNK

                      1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @puppet1912 sagte: Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?

                        Wenn das Ergebnis einer komplexe Funktion - wie Selektor - mehr als einmal verwendet wird (hier zweimal), schont es Ressourcen, wenn man eine Variable mit dem Ergebnis der Funktion füllt und dann diese verwendet.

                        P Offline
                        P Offline
                        puppet1912
                        schrieb am zuletzt editiert von
                        #11

                        @paul53

                        Wenn das Ergebnis einer komplexe Funktion - wie Selektor - mehr als einmal verwendet wird (hier zweimal), schont es Ressourcen, wenn man eine Variable mit dem Ergebnis der Funktion füllt und dann diese verwendet.

                        Danke für die Erläuterung. Grundlegend nachvollziehbar und setze ich in verschiedenen Scripten auch so um. Bspw mit dem "Wert" des Triggers zu arbeiten.

                        Meine Frage zielte allerdings darauf ab, warum das vor dem eigentlichen Trigger passiert. Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen? Oder habe ich da einen Denkfehler.

                        Grüße

                        ioBroker 4.0.23 - Debian Bullseye unter Proxmox auf IntelNuc7i5BNK

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • P puppet1912

                          @paul53

                          Wenn das Ergebnis einer komplexe Funktion - wie Selektor - mehr als einmal verwendet wird (hier zweimal), schont es Ressourcen, wenn man eine Variable mit dem Ergebnis der Funktion füllt und dann diese verwendet.

                          Danke für die Erläuterung. Grundlegend nachvollziehbar und setze ich in verschiedenen Scripten auch so um. Bspw mit dem "Wert" des Triggers zu arbeiten.

                          Meine Frage zielte allerdings darauf ab, warum das vor dem eigentlichen Trigger passiert. Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen? Oder habe ich da einen Denkfehler.

                          Grüße

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #12

                          @puppet1912 sagte: Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen?

                          Das Ergebnis des Selektors ist u.a. der Trigger.

                          @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

                          Namen des eigentlichen Devices auzugeben

                          Siehe hier.

                          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

                          P 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @puppet1912 sagte: Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen?

                            Das Ergebnis des Selektors ist u.a. der Trigger.

                            @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

                            Namen des eigentlichen Devices auzugeben

                            Siehe hier.

                            P Offline
                            P Offline
                            puppet1912
                            schrieb am zuletzt editiert von
                            #13

                            @paul53 said in Stark verzögerte Triggerreaktion IDs vom Selektor:

                            @puppet1912 sagte: Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen?

                            Das Ergebnis des Selektors ist u.a. der Trigger.

                            @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:

                            Namen des eigentlichen Devices auzugeben

                            Siehe hier.

                            Super, vielen Dank. Schau ich mir direkt mal an. Wieder ein Punkt mal Javascript zu lernen.

                            Danke und Grüße

                            ioBroker 4.0.23 - Debian Bullseye unter Proxmox auf IntelNuc7i5BNK

                            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

                            600

                            Online

                            32.6k

                            Benutzer

                            82.3k

                            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