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