Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Lichtsteuerung (langsam dimmen lassen) [gelöst]

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Lichtsteuerung (langsam dimmen lassen) [gelöst]

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      azmo last edited by azmo

      Moin!

      Ich versuche hier seit Tagen, eine Funktion in meiner Lichtsteuerung zu realisieren, bei der die Helligkeit meiner Glühbirnen und Panels (momentan Tradfri, aber soll prinzipiell Herstellerunabhängig funktionieren - daher die Funktion) langsam in Richtung Zielwert gehen soll.
      Das ganze funktioniert auch, der interval stoppt aber nicht. Insbesondere, wenn ich die Funktion zweimal starte, mit unterschiedlichen Parametern, gibt es Probleme. Geht das so nicht?

      Blockly_funktion_Dimmen.png

      EDIT:
      Führe ich dieses Script mit den beiden Aufrufen aus, dimmt das Licht korrekt und dann kommt die Endlosmeldung "Sonstiger Fall - Stoppe" - die sollte doch normalerweise nur einmal kommen, dann wäre es gestoppt?

      EDIT 10.04.:
      dank @ticaki ist das Problem gelöst. Hier der Code:

      <xml xmlns="http://www.w3.org/1999/xhtml">
       <variables>
         <variable type="" id="=W_p,[ot^(ajIy0Nam5}">obj-id</variable>
         <variable type="" id="pwW]mm~16AJwvaB/jMpp">Dimmziel</variable>
         <variable type="" id="/3ajE3V-|nBR1!;GbK1a">DimmAktuell</variable>
         <variable type="" id="o_jN1a]8Ej9.U#EoO0)z">database</variable>
         <variable type="" id=".qQ27g@c{,vp#.RvAZ#y">id</variable>
         <variable type="undefined" id="Intervall">Intervall</variable>
       </variables>
       <block type="procedures_defnoreturn" id="M6|8O4xr2^|sECz*~e+D" x="-837" y="-4138">
         <mutation>
           <arg name="obj-id" varid="=W_p,[ot^(ajIy0Nam5}"></arg>
           <arg name="Dimmziel" varid="pwW]mm~16AJwvaB/jMpp"></arg>
           <arg name="DimmAktuell" varid="/3ajE3V-|nBR1!;GbK1a"></arg>
         </mutation>
         <field name="NAME">Dimmer2</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
         <statement name="STACK">
           <block type="debug" id="DzYW]e2x?4tl?.A/=6oq">
             <field name="Severity">log</field>
             <value name="TEXT">
               <shadow type="text" id="krqX%vQvzU4qX`ZTP2CT">
                 <field name="TEXT">In Dimmer2</field>
               </shadow>
             </value>
             <next>
               <block type="variables_set" id="aZ@7G[Q?f)1M{KJ=s3w:">
                 <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                 <value name="VALUE">
                   <block type="math_round" id="_:X2mKmq%D/`1=,JA6%J">
                     <field name="OP">ROUND</field>
                     <value name="NUM">
                       <shadow type="math_number" id="z*CIwTs9uuHG],-VvBH0">
                         <field name="NUM">3.1</field>
                       </shadow>
                       <block type="get_value_var" id="T}_h[JI7s4IJ$^cVhq;n">
                         <field name="ATTR">val</field>
                         <value name="OID">
                           <shadow type="text" id="s;{pr9L[y,-;xT=yNB90">
                             <field name="TEXT"></field>
                           </shadow>
                           <block type="variables_get" id="yd3#B9bZE,S=8F94AbJ}">
                             <field name="VAR" id="=W_p,[ot^(ajIy0Nam5}" variabletype="">obj-id</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
                 <next>
                   <block type="timeouts_setinterval" id="Or~8F;ps!?_Qk^9PcYvB">
                     <field name="NAME">Intervall</field>
                     <field name="INTERVAL">1000</field>
                     <field name="UNIT">ms</field>
                     <statement name="STATEMENT">
                       <block type="debug" id="[N)HnTxL9i!9}G-:UUG,">
                         <field name="Severity">log</field>
                         <value name="TEXT">
                           <shadow type="text" id="#2f?mVyoJ_n.8QMWG%Y]">
                             <field name="TEXT">test</field>
                           </shadow>
                           <block type="text_join" id="suu:*QHCG`7P){c0|*r3">
                             <mutation items="5"></mutation>
                             <value name="ADD0">
                               <block type="text" id="i2B1MhaV([^_1X(4`8o,">
                                 <field name="TEXT">Dimmziel: </field>
                               </block>
                             </value>
                             <value name="ADD1">
                               <block type="variables_get" id=")(.t72y4J:o%uV9X]}S$">
                                 <field name="VAR" id="pwW]mm~16AJwvaB/jMpp" variabletype="">Dimmziel</field>
                               </block>
                             </value>
                             <value name="ADD2">
                               <block type="text_newline" id="oCo_IC,ufd3*q5a~W4rz">
                                 <field name="Type">\n</field>
                               </block>
                             </value>
                             <value name="ADD3">
                               <block type="text" id="*r4Dl/:BCZz.#D7Pohv3">
                                 <field name="TEXT">DimmAktuell: </field>
                               </block>
                             </value>
                             <value name="ADD4">
                               <block type="variables_get" id="o{Ric?iypQcEaDY+nc]W">
                                 <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="control_ex" id="}gor{1d?aR35gEv3toxD">
                             <field name="TYPE">false</field>
                             <field name="CLEAR_RUNNING">FALSE</field>
                             <value name="OID">
                               <shadow type="field_oid" id="?hx9v}?WVl5W,S;J%QeF">
                                 <field name="oid">Object ID</field>
                               </shadow>
                               <block type="variables_get" id="SfQ{weqdB:sW$Dcc@UuU">
                                 <field name="VAR" id="=W_p,[ot^(ajIy0Nam5}" variabletype="">obj-id</field>
                               </block>
                             </value>
                             <value name="VALUE">
                               <shadow type="logic_boolean" id="c8F%!]`Z1TdB2V{c[$}I">
                                 <field name="BOOL">TRUE</field>
                               </shadow>
                               <block type="variables_get" id="e#DT-~)_qqTY`ZfCcjud">
                                 <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                               </block>
                             </value>
                             <value name="DELAY_MS">
                               <shadow type="math_number" id="@#D7ID-z`m|p)_UCD;Nn">
                                 <field name="NUM">0</field>
                               </shadow>
                             </value>
                             <next>
                               <block type="controls_if" id="=pX$hSc`x;,=R}9[}4bu">
                                 <mutation elseif="1" else="1"></mutation>
                                 <value name="IF0">
                                   <block type="logic_compare" id="6T,j,~fvcIm==XR-PFDM">
                                     <field name="OP">LT</field>
                                     <value name="A">
                                       <block type="variables_get" id="s=yznV:F3rh{j+!5%u*!">
                                         <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="variables_get" id="(!,5PG#02t{4/MV$ZkL6">
                                         <field name="VAR" id="pwW]mm~16AJwvaB/jMpp" variabletype="">Dimmziel</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <statement name="DO0">
                                   <block type="variables_set" id=",L5.(-ujIG9D1EAEtzDG">
                                     <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                                     <value name="VALUE">
                                       <block type="math_arithmetic" id="{6n$poWCt9?T4w1FHPQg">
                                         <field name="OP">ADD</field>
                                         <value name="A">
                                           <shadow type="math_number" id="3aKgCngRtQ[Bm{RR*1P^">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="variables_get" id="z5wc-Z(RU$o#Xw7QEB5S">
                                             <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number" id="/uA+Gkmg9.kT6`ES.h~y">
                                             <field name="NUM">0.5</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                                 <value name="IF1">
                                   <block type="logic_compare" id="FPalg/el*|.u!1BHc%UN">
                                     <field name="OP">GT</field>
                                     <value name="A">
                                       <block type="variables_get" id="xq?Y!b%,h)l(Nt5-C3IL">
                                         <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="variables_get" id="jt4!%Si|4~^[}^)COU/D">
                                         <field name="VAR" id="pwW]mm~16AJwvaB/jMpp" variabletype="">Dimmziel</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <statement name="DO1">
                                   <block type="variables_set" id="gvjz`GP(ICz/?m-t3b4v">
                                     <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                                     <value name="VALUE">
                                       <block type="math_arithmetic" id="As`CQZA.mdD:`|MvF!XG">
                                         <field name="OP">MINUS</field>
                                         <value name="A">
                                           <shadow type="math_number" id="3aKgCngRtQ[Bm{RR*1P^">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="variables_get" id="1q[(#-1?/$tUKgy35sGF">
                                             <field name="VAR" id="/3ajE3V-|nBR1!;GbK1a" variabletype="">DimmAktuell</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number" id="XJm=5aIM-{I;dX)b/`Hf">
                                             <field name="NUM">0.5</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                                 <statement name="ELSE">
                                   <block type="control_ex" id="FEA8hy/IJ)1zR?[V0F$B">
                                     <field name="TYPE">false</field>
                                     <field name="CLEAR_RUNNING">FALSE</field>
                                     <value name="OID">
                                       <shadow type="field_oid" id="?hx9v}?WVl5W,S;J%QeF">
                                         <field name="oid">Object ID</field>
                                       </shadow>
                                       <block type="variables_get" id="/gnRK}J1HM+P.8Yn:`}5">
                                         <field name="VAR" id="=W_p,[ot^(ajIy0Nam5}" variabletype="">obj-id</field>
                                       </block>
                                     </value>
                                     <value name="VALUE">
                                       <shadow type="logic_boolean" id="c8F%!]`Z1TdB2V{c[$}I">
                                         <field name="BOOL">TRUE</field>
                                       </shadow>
                                       <block type="variables_get" id="L]GeHeoNe2Dc[h0EnV@y">
                                         <field name="VAR" id="pwW]mm~16AJwvaB/jMpp" variabletype="">Dimmziel</field>
                                       </block>
                                     </value>
                                     <value name="DELAY_MS">
                                       <shadow type="math_number" id="6tZDBm{],|fSY|%P*a_7">
                                         <field name="NUM">0</field>
                                       </shadow>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="]tYvIat_T6X4dMa?5fBf">
                                         <field name="VAR" id="o_jN1a]8Ej9.U#EoO0)z" variabletype="">database</field>
                                         <value name="VALUE">
                                           <block type="procedures_callcustomreturn" id="oM]WlY{eWO!f]-FkH^Wx">
                                             <mutation name="clearInterval(Intervall)">
                                               <arg name="database"></arg>
                                               <arg name="id"></arg>
                                             </mutation>
                                             <value name="ARG0">
                                               <block type="variables_get" id="FLWx75},j^gw0@;MV%:v">
                                                 <field name="VAR" id="o_jN1a]8Ej9.U#EoO0)z" variabletype="">database</field>
                                               </block>
                                             </value>
                                             <value name="ARG1">
                                               <block type="variables_get" id="@,U.Px8xwR|NlI+qe$FC">
                                                 <field name="VAR" id="=W_p,[ot^(ajIy0Nam5}" variabletype="">obj-id</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="debug" id="rEN{+,!AUY+uoENeO|{K">
                                             <field name="Severity">warn</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="@6{W)M@h,n%QICeoy{en">
                                                 <field name="TEXT">Intervall Beenden</field>
                                               </shadow>
                                               <block type="text_join" id="~w|.1of}fqap/S=,0Dw0">
                                                 <mutation items="2"></mutation>
                                                 <value name="ADD0">
                                                   <block type="text" id="7Wo%rGKA@JtK?6r-9bY(">
                                                     <field name="TEXT">Ende: </field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="variables_get" id="S,7C,2_?SS~WI6LiLFSM">
                                                     <field name="VAR" id="=W_p,[ot^(ajIy0Nam5}" variabletype="">obj-id</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </statement>
                     <next>
                       <block type="variables_set" id="+H(tfJ?*H|HhWrJZBO|}">
                         <field name="VAR" id="o_jN1a]8Ej9.U#EoO0)z" variabletype="">database</field>
                         <value name="VALUE">
                           <block type="procedures_callcustomreturn" id="Zkt`+Vea]H~~ck5_DteF">
                             <mutation name="saveInterval(Intervall)">
                               <arg name="database"></arg>
                               <arg name="id"></arg>
                             </mutation>
                             <value name="ARG0">
                               <block type="variables_get" id="gd_(6p$qfOR@)G(:)/oc">
                                 <field name="VAR" id="o_jN1a]8Ej9.U#EoO0)z" variabletype="">database</field>
                               </block>
                             </value>
                             <value name="ARG1">
                               <block type="variables_get" id="1=blF-AQ%OM4bhJ`w^bd">
                                 <field name="VAR" id="=W_p,[ot^(ajIy0Nam5}" variabletype="">obj-id</field>
                               </block>
                             </value>
                           </block>
                         </value>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </statement>
       </block>
       <block type="on_ext" id="ZIvKxjZ4_as.SxllAd}n" x="-138" y="-3862">
         <mutation items="1"></mutation>
         <field name="CONDITION">ne</field>
         <field name="ACK_CONDITION"></field>
         <value name="OID0">
           <shadow type="field_oid" id="Chdzg!{lPR[FDTYg[0F$">
             <field name="oid">0_userdata.0.Eigene_Datenpunkte.Testschalter</field>
           </shadow>
         </value>
         <statement name="STATEMENT">
           <block type="debug" id="WP9$ku!nlWWuf/Q2)Z;p">
             <field name="Severity">log</field>
             <value name="TEXT">
               <shadow type="text" id="F[}@OiSyz;m)/rm6+?z$">
                 <field name="TEXT">Starte Dimmer2</field>
               </shadow>
             </value>
             <next>
               <block type="procedures_callnoreturn" id="V81.azz`_)ev~K?6sFGX">
                 <mutation name="Dimmer2">
                   <arg name="obj-id"></arg>
                   <arg name="Dimmziel"></arg>
                   <arg name="DimmAktuell"></arg>
                 </mutation>
                 <value name="ARG0">
                   <block type="field_oid" id="GE9W*l(55Gor2ku*Ip]{">
                     <field name="oid">tradfri.0.L-65546.lightbulb.colorTemperature</field>
                   </block>
                 </value>
                 <value name="ARG1">
                   <block type="math_number" id="ztrAlJ+P:kM9fO]eV7LK">
                     <field name="NUM">5</field>
                   </block>
                 </value>
                 <next>
                   <block type="procedures_callnoreturn" id="G2aV4o,]Gxq~Diz+kum%">
                     <mutation name="Dimmer2">
                       <arg name="obj-id"></arg>
                       <arg name="Dimmziel"></arg>
                       <arg name="DimmAktuell"></arg>
                     </mutation>
                     <value name="ARG0">
                       <block type="field_oid" id="?qSaALh`jY,nE0KOCq}y">
                         <field name="oid">tradfri.0.L-65546.lightbulb.brightness</field>
                       </block>
                     </value>
                     <value name="ARG1">
                       <block type="math_number" id="..|cLGb;??Xir{?qd_4(">
                         <field name="NUM">90</field>
                       </block>
                     </value>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </statement>
       </block>
       <block type="procedures_defcustomreturn" id="z,8GjQLE51vxVTt^F*Qr" x="-137" y="-3288">
         <mutation statements="false">
           <arg name="database" varid="o_jN1a]8Ej9.U#EoO0)z"></arg>
           <arg name="id" varid=".qQ27g@c{,vp#.RvAZ#y"></arg>
         </mutation>
         <field name="NAME">saveInterval(Intervall)</field>
         <field name="SCRIPT">aWYgKGRhdGFiYXNlID09PSB1bmRlZmluZWQpIGRhdGFiYXNlID0ge307DQppZiAoZGF0YWJhc2VbaWRdICE9PSB1bmRlZmluZWQgJiYgZGF0YWJhc2VbaWRdKSBjbGVhckludGVydmFsKGRhdGFiYXNlW2lkXSk7DQpkYXRhYmFzZVtpZF0gPSBJbnRlcnZhbGw7DQpyZXR1cm4gZGF0YWJhc2U7</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
       <block type="procedures_defcustomreturn" id="|k6VqYQ6sFc^M-I^.`96" x="-138" y="-3237">
         <mutation statements="false">
           <arg name="database" varid="o_jN1a]8Ej9.U#EoO0)z"></arg>
           <arg name="id" varid=".qQ27g@c{,vp#.RvAZ#y"></arg>
         </mutation>
         <field name="NAME">clearInterval(Intervall)</field>
         <field name="SCRIPT">aWYgKGRhdGFiYXNlID09PSB1bmRlZmluZWQpIHJldHVybiB7fTsNCmlmIChkYXRhYmFzZVtpZF0gPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRhdGFiYXNlOw0KaWYgKGRhdGFiYXNlW2lkXSkgew0KICAgIGNsZWFySW50ZXJ2YWwoZGF0YWJhc2VbaWRdKTsNCiAgICBkYXRhYmFzZVtpZF0gPSBudWxsOw0KfQ0KcmV0dXJuIGRhdGFiYXNlOw==</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
      </xml>
      

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @azmo last edited by paul53

        @azmo sagte:

        wenn ich die Funktion zweimal starte, mit unterschiedlichen Parametern, gibt es Probleme. Geht das so nicht?

        Das Problem ist, dass die Variablen DimmAktuell und dimmintervall globale Variablen sind. Zwei Funktionsaufrufe bedingen also eine gegenseitige Beeinflussung. Mit DimmAktuell läßt sich das Problem leicht umgehen, indem man auch diese als Übergabeparameter definiert. Wie man aber in Blockly verhindert, dass die Intervall-Variable global ist, weiß ich nicht.

        1 Reply Last reply Reply Quote 1
        • T
          ticaki Developer last edited by ticaki

          Ich sehe folgende Problem.

          1. Du erhöhst/verringerst einen unbekannten Wert um 0,5 und erwartest, dass er irgendwann einen bestimmten Wert bis auf die letzten Nachkommastelle trifft. Besser wäre
          if (dimmziel > dimmwert + 0.5)
          if (dimmziel < dimmwert - 0.5)
          

          und den letzten Schritt im Sonst auszuführen. Einen Bereich von +/- 0.5 wirst du mit dem Code immer treffen.

          1. Mit den Interval Funktionen kannst du nur genau einen Interval (mit dem selben Namen)stoppen. Du kannst zwar "endlos" viele startet aber nur der letzte wird durch die Stop - Funktion abgebrochen. Mit Javascript ist das kein Problem zu umgehen, hab aber keine Ahnung wie und ob man das mit
            Blockly machen kann.

          Lösung für 2. wäre: Du speicherst das Gerät und den Zielwert in einem Array als Objekt oder weiteres Array. Und arbeitest diese Liste in deinem Interval ab.

          Bei deconz gibt es einen Datenpunkt "transitiontime" gibt es diesen auch für Tradfri? Wenn ja, kannst du über diesen Wert dimmen.

          Editiert

          1 Reply Last reply Reply Quote 1
          • A
            azmo last edited by azmo

            Hi.
            Danke für die Antworten!

            @paul53 sagte in Lichtsteuerung (langsam dimmen lassen):

            Wie man aber in Blockly verhindert, dass die Intervall-Variable global ist, weiß ich nicht.

            @ticaki sagte in Lichtsteuerung (langsam dimmen lassen):

            Mit den Interval Funktionen kannst du nur genau einen Interval stoppen.

            Mir scheint, dass da der Knackpunkt liegt, oder? Das ist natürlich richtig nervig..
            Weiß jemand anderes vielleicht, ob und wie das geht? Ich habe keinerlei Erfahrung mit Javascript, kann da jemand helfen bzw. wäre es einfach möglich, so eine Umgehung einzubinden?

            @ticaki sagte in Lichtsteuerung (langsam dimmen lassen):

            Bei deconz gibt es einen Datenpunkt "transitiontime" gibt es diesen auch für Tradfri? Wenn ja, kannst du über diesen Wert dimmen.

            Den gibt es, das funktioniert aber seltsamerweise und leider nicht. Auch mit der Option im Adapter, dass der Wert nicht zurückgesetzt wird, hat eine Veränderung einfach keinen Effekt auf die Dimmzeit.

            @ticaki sagte in Lichtsteuerung (langsam dimmen lassen):

            Ich sehe folgende Problem.

            1. Du erhöhst/verringerst einen unbekannten Wert um 0,5 und erwartest, dass er irgendwann einen bestimmten Wert bis auf die letzten Nachkommastelle trifft.

            Ok, ich glaube ich verstehe was du meinst aber das sollte doch eigentlich in dem Script nicht passieren, oder? Wie ich es verstehe, sollte er einmal einmal am Anfang den realen Wert abfragen, gerundet in die Zielvariable schreiben und diese dann immer um 0,5 verändern und ins Gerät schreiben, bis der Zielwert (in der Variable, vom Gerät weiß er ja dann nichts mehr) erreicht ist. Das Ding ist, dass die Tradfris leider nie genau den Wert ansteuern, den sie sollen sondern der Hub ihn noch einmal zu korrieren scheint (z.B. wird aus 10 dann 10,2 oder so etwas seltsames). Mit dieser Vorgehensweise wollte ich das umgehen und einfach den "realen" Wert ignorieren. Mit reicht, wenn er ungefähr getroffen wird und das sollte ja mit dem Schreiben des angenommenen Wertes in jedem Durchgang gegeben sein (und nur dieser wird ja am Ende überprüft). Oder habe ich da falsch gedacht? Vorher (mit einer Abfrage des tatsächlichen Wertes in jedem Intervall) kam es zu Problemen, weil der Wert z.B. in einem der Schritte von 10 auf 10,5 geschaltet werden sollte und direkt danach aber auf 10 gesprungen ist - und dann wieder auf 10,5 geschaltet wurde usw.

            Dank erst einmal... Das Problem bleibt leider bestehen 😞
            Weiß jemand vielleicht eine andere Lösung? Ich würde das gerne elegant machen, so dass ich nicht für jede Lampe und jeden Parameter (Helligkeit/Farbe) einen einzelnen Intervall schreiben muss.

            T 1 Reply Last reply Reply Quote 0
            • T
              ticaki Developer @azmo last edited by ticaki

              @azmo
              Punkt 1. Hast recht, hab das runden nicht gesehen. 🙂

              In Punkt 2. hab ich dir doch die Lösung geschrieben?
              Hab das gerade mit Blockly gebaut und es sieht schrecklich aus 🙂

              Bildschirmfoto 2020-04-04 um 12.38.32.png

              A 1 Reply Last reply Reply Quote 1
              • A
                azmo @ticaki last edited by

                @ticaki sagte in Lichtsteuerung (langsam dimmen lassen):

                @azmo
                Punkt 1. Hast recht, hab das runden nicht gesehen. 🙂

                In Punkt 2. hab ich dir doch die Lösung geschrieben?
                Hab das gerade mit Blockly gebaut und es sieht schrecklich aus 🙂

                Bildschirmfoto 2020-04-04 um 12.38.32.png

                Ohgott, danke aber das ist ja dann richtig schrecklich.
                Ich finde das unglaublich ärgerlich, dass das nicht so einfach geht...
                Kann man das statt des zickigen Intervalls vielleicht mit Schleifen lösen? Da war aber auch etwas mit dem Timing was ich gelesen hatte meine ich... Wird da nicht immer alles gleichzeitig gemacht oder sowas komisches?

                grübel

                paul53 T 2 Replies Last reply Reply Quote 0
                • paul53
                  paul53 @azmo last edited by

                  @azmo sagte:

                  Wird da nicht immer alles gleichzeitig gemacht oder sowas komisches?

                  Ja, quasi gleichzeitig.

                  1 Reply Last reply Reply Quote 1
                  • T
                    ticaki Developer @azmo last edited by ticaki

                    Ich hab doch ne Idee. Dazu mußt du aber alle Variablen in der Funktion übergeben, zum stoppen eine Funktion aufrufen und für jede Lampe die du hinzufügst beide Funktionen um einen Eintrag erweitern. i ist ein Zähler den du beim aufruf setzten mußt, m,j,k sind deine verwendeten Variablen. Für 3 Lampen sieht es dann so aus.
                    Bildschirmfoto 2020-04-04 um 13.03.30.png

                    etwas tun ist deine aktuelle Funktion mit entsprechenden Parametern, das hier könnte gehen. Bin mir aber nicht sicher.

                    Schleifen gehe nicht, da du diese nicht pausieren kannst. Aufrufe vorwegnehmen geht auch nicht, da die Verzögerung soweit ich sehe nicht mit Variablen gesetzt werden kann.

                    A 1 Reply Last reply Reply Quote 1
                    • A
                      azmo @ticaki last edited by azmo

                      @ticaki sagte in Lichtsteuerung (langsam dimmen lassen):

                      Ich hab doch ne Idee. Dazu mußt du aber alle Variablen in der Funktion übergeben, zum stoppen eine Funktion aufrufen und für jede Lampe die du hinzufügst beide Funktionen um einen Eintrag erweitern. i ist ein Zähler den du beim aufruf setzten mußt, m,j,k sind deine verwendeten Variablen. Für 3 Lampen sieht es dann so aus.
                      Bildschirmfoto 2020-04-04 um 13.03.30.png

                      etwas tun ist deine aktuelle Funktion mit entsprechenden Parametern, das hier könnte gehen. Bin mir aber nicht sicher.

                      Schleifen gehe nicht, da du diese nicht pausieren kannst. Aufrufe vorwegnehmen geht auch nicht, da die Verzögerung soweit ich sehe nicht mit Variablen gesetzt werden kann.

                      Hey, das sieht interessant aus!
                      Danke, das probiere ich heute Abend aus wenn ich mich dransetzen kann. Gute Idee.

                      EDIT:
                      Ich vermute da könnte man i ja auch jeweils +1 bzw -1 setzen wenn ein Intervall gestartet bzw. gestoppt wird... Interessant. Das müsste im Idealfall dann variabel sein damit ich nicht doch für jede Lampe/jeden Parameter einen Intervall basteln bzw. im Vorfeld eine Zahl festlegen muss... Hm.

                      T 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        Ich habe mit Tradfri (und dem Tradfri-Adapter) auch lange an einem Sonnenuntergang gebastelt.

                        Das dumme bei Tradfri ist, dass zum einen die transition time nicht beliebig hoch sein darf, und wenn noch weitere Paramter wie Helligkeit, Farbe, Sättigung) übergeben werden sollen nur dann vernünftig abgearbeitet werden, wenn die transition time = 0 ist.

                        Ich musste also auch mit möglichst vielen kleinsten Schritten arbeiten, damit es halbwegs weich ist.
                        Sonnenuntergang_v3.png

                        1 Reply Last reply Reply Quote 1
                        • T
                          ticaki Developer @azmo last edited by

                          @azmo sagte in Lichtsteuerung (langsam dimmen lassen):

                          Ich vermute da fehlt noch das i-1 wenn ein Intervall gestoppt wurde...

                          Soweit wie du hab ich nicht nicht durchdacht. Ob i automatisch gesetzt werden kann, weiß ich nicht.

                          Mit Javascript ohne Blockly muß man sich auf jeden Fall nicht so einen abbrechen 😁

                          A 1 Reply Last reply Reply Quote 1
                          • A
                            azmo @ticaki last edited by azmo

                            @ticaki

                            Mit Javascript ohne Blockly muß man sich auf jeden Fall nicht so einen abbrechen 😁

                            Den Eindruck habe ich auch.
                            Mir missfällt noch immer, dass nicht einfach innerhalb der Funktion alles lokal bleiben kann und diese so einfach mehrfach mit verschiedenen Parametern ausgeführt werden kann. Das wäre so schön übersichtlich. Verstehe ich richtig, dass es am Intervall liegt, der global ausgeführt und so mehrfach neu gestartet wird bzw wo laufende Intervalle neue variablen bekommen durch den start eines neuen?
                            Müsste es dann nicht möglich sein, WENN ich eine art sleep/pause für eine Sekunde einbaue (gibt es doch sicher einen Weg?), eine Schleife sozusagen händisch via Funktion nachzubauen und so ohne den für mich so eigentlich nutzlosen Intervall das ganze ausführen zu lassen? Eine pause, sollte sie kompliziert zu basteln sein wie ich vermute (habe etwas recherchiert) sollte sich doch notfalls via Blockly JS Funktion einbauen lassen?

                            Naja ich schlafe mal eine Nacht drüber... Das muss doch gehen!

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              ticaki Developer @azmo last edited by ticaki

                              @azmo
                              Ich klappere das mal ab:

                              Blockly soll einfach sein, globale Variablen sind einfach, da man in einem Blockly von überall alles ändern kann.

                              Verstehe ich richtig, dass es am Intervall liegt, der global ausgeführt und so mehrfach neu gestartet wird bzw wo laufende Intervalle neue variablen bekommen durch den start eines neuen?

                              Es geht darum einen Interval von ausserhalb des Intervals zu beenden. Wenn du einen Funktion ausrufst und ihre als Parameter den Namen des Intervals übergibst solltest du den Interval von innerhalb des Intervals beenden können. Wenn du aber für Lampe X 2 * die Funktion aufrufst hast du keine Möglichkeit den 1. Interval zu beenden.

                              Ich kenne mich mit async und await nicht wirklich aus.

                              Blockly JS Funktion muß ich mir mal ansehen.

                              EDIT: Oha
                              Ich könnte dir heute Abend 2-3 Funktionen zusammenstellen die den Verwaltungskram machen, dann könntest du bei deinem ursprünglichen Plan bleiben.

                              Funktionen:

                              1. Speichere aktuellen Interval für ID
                              2. Beende Interval für ID
                              1 Reply Last reply Reply Quote 1
                              • A
                                azmo last edited by

                                @ticaki

                                Das wäre ja total cool!
                                Schön, dass es noch Hoffnung gibt. Ich forsche heute nach Feierabend auch noch einmal weiter nach.

                                Danke!

                                paul53 1 Reply Last reply Reply Quote 0
                                • T
                                  ticaki Developer last edited by ticaki

                                  Das hier sollte funktionieren. Hab es aber nicht getestet.
                                  Der Intervall muß Intervall heißen. Da ich nicht weiß was alles im XML Code ist, hab ich den JS Code für die Funktionen auch gepostet
                                  Bildschirmfoto 2020-04-06 um 19.52.41.png

                                  <xml xmlns="http://www.w3.org/1999/xhtml">
                                    <variables>
                                      <variable type="" id="/PIwE|z13C?P36hK`-zw">test</variable>
                                      <variable type="" id="Hf,2pvB@vbj.aWE)J%1=">obj-id</variable>
                                      <variable type="" id="hc!g+l^YPg:~Z#nvW%hh">j</variable>
                                      <variable type="" id="Y8j8U.u:Ae6YN+8GEJxr">k</variable>
                                      <variable type="" id=")fis(kd^2jt#:.mrXpP/">database</variable>
                                      <variable type="" id="zu7b}wX*rDT[5#4N9.}:">id</variable>
                                      <variable type="undefined" id="Intervall">Intervall</variable>
                                    </variables>
                                    <block type="variables_set" id="Lpk85pwGL(z,plhml!ya" x="63" y="-413">
                                      <field name="VAR" id="/PIwE|z13C?P36hK`-zw" variabletype="">test</field>
                                      <value name="VALUE">
                                        <block type="logic_null" id="?^kv8+Bx6VfFnx1}{cm="></block>
                                      </value>
                                    </block>
                                    <block type="procedures_defnoreturn" id="x8V$.A,XiK.UO=.zp%3o" x="63" y="-313">
                                      <mutation>
                                        <arg name="obj-id" varid="Hf,2pvB@vbj.aWE)J%1="></arg>
                                        <arg name="j" varid="hc!g+l^YPg:~Z#nvW%hh"></arg>
                                        <arg name="k" varid="Y8j8U.u:Ae6YN+8GEJxr"></arg>
                                      </mutation>
                                      <field name="NAME">etwas tun</field>
                                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                      <statement name="STACK">
                                        <block type="timeouts_setinterval" id="K}jS3BHs:Kym.bvjZP{,">
                                          <field name="NAME">Intervall</field>
                                          <field name="INTERVAL">1000</field>
                                          <field name="UNIT">ms</field>
                                          <statement name="STATEMENT">
                                            <block type="variables_set" id=";/b!vhy2pU|X~OzoIdz`">
                                              <field name="VAR" id=")fis(kd^2jt#:.mrXpP/" variabletype="">database</field>
                                              <value name="VALUE">
                                                <block type="procedures_callcustomreturn" id="4,|[4tKXp]qyP:*H=Icy">
                                                  <mutation name="clearInterval(Intervall)">
                                                    <arg name="database"></arg>
                                                    <arg name="id"></arg>
                                                  </mutation>
                                                  <value name="ARG0">
                                                    <block type="variables_get" id="4O*?F;f$XMz5B/`0/E2%">
                                                      <field name="VAR" id=")fis(kd^2jt#:.mrXpP/" variabletype="">database</field>
                                                    </block>
                                                  </value>
                                                  <value name="ARG1">
                                                    <block type="variables_get" id="M9ONSAuuLXvpa8KD6c1-">
                                                      <field name="VAR" id="Hf,2pvB@vbj.aWE)J%1=" variabletype="">obj-id</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </statement>
                                          <next>
                                            <block type="variables_set" id="PY,D{*qsp=]-{@idjx~T">
                                              <field name="VAR" id=")fis(kd^2jt#:.mrXpP/" variabletype="">database</field>
                                              <value name="VALUE">
                                                <block type="procedures_callcustomreturn" id="KuuPW[/4t;AoQ?6rG1)m">
                                                  <mutation name="saveInterval(Intervall)">
                                                    <arg name="database"></arg>
                                                    <arg name="id"></arg>
                                                  </mutation>
                                                  <value name="ARG0">
                                                    <block type="variables_get" id="KaJ])(yDV;98[Q|n#6S7">
                                                      <field name="VAR" id=")fis(kd^2jt#:.mrXpP/" variabletype="">database</field>
                                                    </block>
                                                  </value>
                                                  <value name="ARG1">
                                                    <block type="variables_get" id="?VWN+t)s_F-``Z%d+?g7">
                                                      <field name="VAR" id="Hf,2pvB@vbj.aWE)J%1=" variabletype="">obj-id</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </statement>
                                    </block>
                                    <block type="procedures_defcustomreturn" id="JjR.sw?~z-u1=VBU99S#" x="63" y="-12">
                                      <mutation statements="false">
                                        <arg name="database" varid=")fis(kd^2jt#:.mrXpP/"></arg>
                                        <arg name="id" varid="zu7b}wX*rDT[5#4N9.}:"></arg>
                                      </mutation>
                                      <field name="NAME">saveInterval(Intervall)</field>
                                      <field name="SCRIPT">aWYgKGRhdGFiYXNlID09PSB1bmRlZmluZWQpIGRhdGFiYXNlID0ge307CmRhdGFiYXNlW2lkXSA9IEludGVydmFsbDsKcmV0dXJuIGRhdGFiYXNlOw==</field>
                                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                    </block>
                                    <block type="procedures_defcustomreturn" id="fXPu/a|%N`7wRO^bDz9^" x="63" y="13">
                                      <mutation statements="false">
                                        <arg name="database" varid=")fis(kd^2jt#:.mrXpP/"></arg>
                                        <arg name="id" varid="zu7b}wX*rDT[5#4N9.}:"></arg>
                                      </mutation>
                                      <field name="NAME">clearInterval(Intervall)</field>
                                      <field name="SCRIPT">aWYgKGRhdGFiYXNlID09PSB1bmRlZmluZWQpIHJldHVybiB7fTsKaWYgKGRhdGFiYXNlW2lkXSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZGF0YWJhc2U7CmlmIChkYXRhYmFzZVtpZF0pIHsKICAgIGNsZWFySW50ZXJ2YWwoZGF0YWJhc2VbaWRdKTsKICAgIGRhdGFiYXNlW2lkXSA9IG51bGw7Cn0KcmV0dXJuIGRhdGFiYXNlOwo=</field>
                                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                    </block>
                                  </xml>
                                  

                                  Code saveInterval:

                                  if (database === undefined) database = {};
                                  database[id] = Intervall;
                                  return database;
                                  

                                  Code clearInterval()

                                  if (database === undefined) return {};
                                  if (database[id] === undefined) return database;
                                  if (database[id]) {
                                      clearInterval(database[id]);
                                      database[id] = null;
                                  }
                                  return database;
                                  

                                  Obj-Id ist die Lampe die du schaltest oder eine andere eindeutige Zeichenkette

                                  1 Reply Last reply Reply Quote 1
                                  • paul53
                                    paul53 @azmo last edited by paul53

                                    @azmo
                                    Ich habe gerade das hier mit einem Array "timers" getestet:

                                    Blockly_temp.JPG

                                    1 Reply Last reply Reply Quote 1
                                    • A
                                      azmo last edited by azmo

                                      Hi.

                                      Danke für die Antworten, ich habe mich leider erst heute dransetzen können.
                                      Momentan teste ich die Idee von @ticaki .
                                      Ich habe versucht, den Code soweit zu verstehen, komme jedoch nicht so recht weiter. Anscheinend wird der Intervall irgendwie umbenannt, dynamisch nach obj-id?
                                      Die Frage ist nur: wie führe ich dann meine Aktionen darin aus? Muss ich die JS Funktionen erweitern oder bin ich auf dem richtigen Weg? (siehe Screenshot).

                                      Ich bin gerade ein wenig ratlos... Vermutlich mache ich etwas offensichtliches falsch.

                                      Anmerkung 2020-04-10 114701.png

                                      Wie man sieht, wird die Debug Info korrekt ausgegeben, der Intervall scheint aber nicht zu starten bzw. nur einmal zu laufen. Was ist verkehrt?

                                      EDIT:
                                      Die Schleife scheint zu laufen, aber irgendwie alle Minute. Hier der Log, diese Ausgaben wurde ohne weitere Schalteraktion erzeugt:

                                      10.4.2020, 11:53:01.009	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object]
                                      DimmAktuell: 100
                                      10.4.2020, 11:54:01.009	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object]
                                      DimmAktuell: 100
                                      10.4.2020, 11:55:01.012	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object]
                                      DimmAktuell: 100
                                      

                                      Irgendwie ist er von 1 (realer Wert des Objekts zu Beginn, jetzt ist der reale Wert 3,4) auf 100 gesprungen.
                                      Wenn ich den Script neu starte und den Schalter wieder betätige (vorher Zielwert auf 50 gesetzt):

                                      10.4.2020, 11:58:43.428	[info ]: javascript.0 (1293) Start javascript script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest
                                      10.4.2020, 11:58:43.435	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: registered 1 subscription and 1 schedule
                                      10.4.2020, 11:58:52.494	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: test
                                      10.4.2020, 11:58:53.497	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object]
                                      DimmAktuell: 3
                                      10.4.2020, 11:59:01.010	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object]
                                      DimmAktuell: 100
                                      10.4.2020, 12:00:01.011	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object]
                                      DimmAktuell: 100
                                      10.4.2020, 12:01:01.007	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object]
                                      DimmAktuell: 100
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        ticaki Developer last edited by ticaki

                                        Ja ist nicht ganz richtig. Die Funktion clearInterval ist das selbe wie stoppe zyklische Ausführung. Benutze es dort wo du den Interval beenden willst.
                                        Bildschirmfoto 2020-04-10 um 12.22.56.png

                                        Du mußt nicht in Code arbeiten. Ich erstelle ein Objekt in dem ich zu jedem Datenpunkt, den du übermittels die Referenz auf den Interval abspeichere. Womit das hier nicht klar kommt, ist wenn du 2 Intervals auf dem selben Datenpunkt zur gleichen Zeit startest.

                                        Habs mittlerweile auch getestet und es funktioniert.
                                        Bildschirmfoto 2020-04-10 um 12.04.20.png
                                        Bildschirmfoto 2020-04-10 um 12.05.45.png!

                                        A 1 Reply Last reply Reply Quote 1
                                        • A
                                          azmo @ticaki last edited by azmo

                                          @ticaki
                                          Ah danke!

                                          Damit scheint es zu funktionieren. Den Verdacht hatte ich auch...
                                          Er dimmt jetzt korrekt hoch bzw. runter.
                                          Wenn er es erreicht, wird gestoppt wie geplant.

                                          Aber: Wenn ich im angefügten Script den Schalter umlege:

                                          Anmerkung 2020-04-10 2.png

                                          dann springt das Licht in der Farbe von 0 auf 100 und es passiert folgendes:

                                          10.4.2020, 12:26:32.138	[info ]: javascript.0 (1293) Start javascript script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest
                                          10.4.2020, 12:26:32.144	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: registered 1 subscription and 0 schedules
                                          10.4.2020, 12:26:33.994	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: test
                                          10.4.2020, 12:26:34.997	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:34.998	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden
                                          10.4.2020, 12:26:34.999	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:35.997	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature
                                          DimmAktuell: 99.5
                                          10.4.2020, 12:26:35.999	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:36.998	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature
                                          DimmAktuell: 99.5
                                          10.4.2020, 12:26:37.000	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:37.999	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature
                                          DimmAktuell: 99.5
                                          10.4.2020, 12:26:38.001	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:38.999	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature
                                          DimmAktuell: 99.5
                                          10.4.2020, 12:26:39.003	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:40.000	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature
                                          DimmAktuell: 99.5
                                          10.4.2020, 12:26:40.002	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:41.000	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature
                                          DimmAktuell: 99.5
                                          10.4.2020, 12:26:41.002	[info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness
                                          DimmAktuell: 100
                                          10.4.2020, 12:26:41.180	[info ]: javascript.0 (1293) Stop script script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest
                                          

                                          Jetzt bin ich verwirrt, bestimmt etwas offensichtliches.
                                          Die Werte scheinen zu konkurrieren? Einer hoch, einer runter? Es liegt also vermutlich an den Variablen DimmAktuell und Dimmziel? Sind die nicht in der Funktion lokal? Oder auch global? Argh!

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            ticaki Developer @azmo last edited by ticaki

                                            @azmo
                                            Das ist nicht dein Fehler 🙂

                                            Blocky definiert ALLE Variablen global. Um dein Problem zu beheben übergebe Dimmaktuell (Auf gleiche Schreibweise achten ich habs falsch denke ich) der Funktion:
                                            Bildschirmfoto 2020-04-10 um 12.31.11.png

                                            Damit wird innerhalb der Funktion Dimmaktuell lokal und nicht jeder Interval überschreibt die. Deshalb hatte ich obj-id, j, k angegeben. Alle Variablen die du verwendest müssen als Parameter rein kommen.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            372
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            4
                                            31
                                            1574
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo