Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Kann man Wert von "letztes" irgendwo auslesen?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Kann man Wert von "letztes" irgendwo auslesen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • padrino
      padrino Most Active last edited by

      Hi,

      beim Trigger "falls Objekt" gibt es ja "ist kleiner als letztes", also wohl den Wert vor der Änderung.

      Gibt es eine Möglichkeit auf diesen Wert dann auch gezielt zuzugreifen, ihn also auszulesen und weiter (z.B. in Logikausdrücken) zu verwenden?

      CU,

      padrino

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Das Objekt was im callback zurückkommt hat:

        Obj.oldState.val mit dem alten Wert.

        Gesendet vom Handy …

        1 Reply Last reply Reply Quote 0
        • padrino
          padrino Most Active last edited by

          Danke.

          Ich hätte wohl erwähnen sollen, dass sich meine "Fähigkeiten" auf Blockly beschränken.

          Danke trotzdem.

          CU,

          padrino

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

            https://forum.iobroker.net/viewtopic.php?f=21&t=16571&p=174333#p174333.

            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              In blockly sollte eine oldValue Variable verfügbar sein.

              Gesendet vom Handy …

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

                @apollon77:

                oldValue Variable `
                Ja, die ist vorhanden, aber nicht von vornherein auswählbar. Man muss sie erst als globale Variable erzeugen und greift dann per Auswahl auf die bestehende lokale Variable zu. Das ist einem Anfänger (Blockly) nicht vermittelbar.

                1 Reply Last reply Reply Quote 0
                • padrino
                  padrino Most Active last edited by

                  Hi,

                  ich denke, der Hinweis mit dem "Objekt ID" Trigger könnte geholfen haben (Wusste nicht, dass dort "vorheriger Wert" in der Liste ist). 😉

                  Ich habe jetzt mal sowas eingebaut:

                  8705_blocky.png
                  (wobei ich nicht weiß, ob das Konvertieren nach Zahl nötig ist, dachte aber, sicher ist sicher :roll:)

                  Ein erster Versuch (Test auf "größer als") scheint funktioniert zu haben. 🙂

                  Teste weiter…

                  Schonmal danke!

                  CU,

                  padrino

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    @paul53:

                    @apollon77:

                    oldValue Variable Ja, die ist vorhanden, aber nicht von vornherein auswählbar. Man muss sie erst als globale Variable erzeugen und greift dann per Auswahl auf die bestehende lokale Variable zu. Das ist einem Anfänger (Blockly) nicht vermittelbar.
                    GitHub issue anlegen ?! 😉

                    Gesendet vom Handy …

                    1 Reply Last reply Reply Quote 0
                    • padrino
                      padrino Most Active last edited by

                      Es funktioniert, ich freu mich mich. 😄

                      Auch, wenn es sicher kein "Profi Code" ist… :roll:

                      Aktueller Stand:
                      8705_blocky_a.1.png

                      Frage mich, ob der Code so besser, da die "IFs" nicht zig mal in der Schleife aufgerufen werden, also sparsamer wäre. 🙂
                      8705_blocky_b.png

                      1 Reply Last reply Reply Quote 0
                      • padrino
                        padrino Most Active last edited by

                        Hi,

                        falls es jemanden interessiert, aktuell sieht es so aus und läuft schon recht ordentlich. 😄
                        8705_blocklyv2.png
                        Damit kann ich meine 0815 LED Strips in Prozent dimmen (über 10er Schritte der IR Fernbedienung).

                        Wenn ich jetzt nur noch rausfinden könnte, wie ich die Schleife langsamer machen kann, damit die IR Signale zuverlässiger empfangen/verarbeitet werden. :?:

                        Egal, wo ich "timeout" drum setzte, es bringt nix… :roll:

                        Aber vermutlich habe ich das Prinzip hinter "timeout" einfach noch nicht verstanden. 😄

                        Danach noch die Farben einstellbar machen, aber das wird wohl nicht so einfach.

                        Über ein "ein/aus+dimmer" Gerät wird das wohl nicht gehen. 😃

                        CU,

                        padrino

                        PS: Sehe ich das richtig, dass man die Limits für min und max (0-100) und die Schrittgröße für heller/dimmen nicht von 25 ändern kann?

                        Ben1983 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 last edited by

                          @padrino:

                          wie ich die Schleife langsamer machen kann, damit die IR Signale zuverlässiger empfangen/verarbeitet werden. `
                          wiederhole ist ungeeignet. So etwas macht man mit Ausführen Intervall und stop zyklische Ausführung Intervall.

                          1 Reply Last reply Reply Quote 0
                          • padrino
                            padrino Most Active last edited by

                            Heiei, das ist nicht einfach… 😕

                            Muss ich dann sowas machen wie

                            i=0

                            Ausführen Intervall

                            ...

                            i=i+1

                            if i=10 stop zyklische Ausführung Intervall.

                            Funktioniert das so? 😄

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

                              @padrino:

                              Funktioniert das so? `
                              Ja.

                              1 Reply Last reply Reply Quote 0
                              • padrino
                                padrino Most Active last edited by

                                Es klappt. 8-)

                                Danke Dir!

                                JavaScript ist nicht ganz leicht, wenn man mal vor zig Jahren etwas in Turbo Pascal fit war. 😄

                                CU,

                                padrino

                                1 Reply Last reply Reply Quote 0
                                • K
                                  Knallix last edited by

                                  Hallo Leute,

                                  habe so ein ähnliches Thema.

                                  Allerdings geht es bei mir um die Lautstärke.

                                  Ich steuere über einen Broadlink die Lautstärke. Würde dieses gerne über Alexa steuern.

                                  Lautstärke ist als level angelegt (0-100 %)

                                  Zaehler_Volume (0-50) –> 50x ist volle Lautstärke an der Anlage

                                  Von meiner Logik her , hätte ich es so gemacht. Allerdings stürzt sobald ich die Lautstärke erhöhe der IoBroker ab.

                                  Wenn ich über Alexa sage "TV Lautstärke auf 20%" ,soll er dann bei Änderung größer "WZ Anlage Lauter" solange ausführen,

                                  bis der Wert "Zähler_Lautstärke" = ((50%100)x"Lautstärke") ist.

                                  Bei jedem "WZ Anlage Lauter" soll er den Wert Zähler_Lautstärke 1x hoch zählen.

                                  Vielleicht jemand eine Idee wie ich das am besten mache ? Stehe hier leider auf dem Schlauch....

                                  Gruß

                                  Kevin

                                  PS: Blockly im Anhang
                                  7174_lautst_rke.jpg

                                  1 Reply Last reply Reply Quote 0
                                  • padrino
                                    padrino Most Active last edited by

                                    Hmm,

                                    sicher, Dass die Verzögerung mit den Timeouts so geht?

                                    Haste die mal extrem hoch gestellt zum Testen?

                                    Wenn ich das richtig sehe, wäre auch "Ausführen Intervall" das Richtige für Dich.

                                    Außerdem, brauchst Du die beiden letzten Trigger?

                                    Könntest Du die Änderung nicht einfach mit in die Schleide, nach dem "steuere" packen?

                                    Ich habe hier übrigens mit dem Probelm zu kämpfen, dass heller/dunkler hier immer +/-25% sind, das betrifft Dich nicht?

                                    Im Anhang mal noch mein aktuelles Skript, vielleicht hilft das (wegen der Intervalle)…

                                    CU,

                                    padrino

                                     <block xmlns="http://www.w3.org/1999/xhtml" type="on" id="tjeEyEL@*vSZZm^18Xh|" x="-112.00003051757812" y="-87.79999923706055"><field name="OID">broadlink.1.learnedSignals.Lampe.Lampe.TVLEDsHelligkeit</field>
                                      <field name="CONDITION">ne</field>
                                    
                                      <statement name="STATEMENT"><block type="controls_if" id="0H:P`E}prOwP65/m|nJZ"><mutation else="1"></mutation>
                                          <value name="IF0"><block type="logic_compare" id="Vl`r:4tLw*-K95^v?YpF"><field name="OP">GT</field>
                                              <value name="A"><block type="get_value" id="-Dm]c?/wc8X~HZ3;pqho"><field name="ATTR">val</field>
                                                  <field name="OID">broadlink.1.learnedSignals.Lampe.Lampe.TVLEDsHelligkeit</field></block></value> 
                                              <value name="B"><block type="math_number" id="ZFY3tIFRClp]vmUeeR)d"><field name="NUM">0</field></block></value></block></value> 
                                          <statement name="DO0"><block type="controls_if" id="7VP-`qLaqhR4UrEq_p5p"><mutation else="1"></mutation>
                                              <value name="IF0"><block type="logic_compare" id="5{KLw-4ytR;mz_;f|S6T"><field name="OP">EQ</field>
                                                  <value name="A"><block type="on_source" id="h;6Z6qwuKf]k(O19H|J_"><field name="ATTR">oldState.val</field></block></value> 
                                                  <value name="B"><block type="math_number" id="o^O1ADLai[0sfD7#}4W["><field name="NUM">0</field></block></value></block></value> 
                                              <statement name="DO0"><block type="control" id="s0[BM~cL=5TmA|3*2`}J"><mutation delay_input="false"></mutation>
                                                  <field name="OID">broadlink.1.learnedSignals.Lampe.LEDsAn</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE"><block type="logic_boolean" id="k=fO;f_p}StI~?/cF1_t"><field name="BOOL">TRUE</field></block></value></block></statement> 
                                              <statement name="ELSE"><block type="variables_set" id="/@:w0{UAjlOt2j}qj9UQ"><field name="VAR">DimmerSchritte</field>
                                                  <value name="VALUE"><block type="math_number" id="GF*J2q~n73[J=x]+d,u9"><field name="NUM">0</field></block></value> 
                                                  <next><block type="timeouts_setinterval" id="y18h8-O1sHP.O,rsPy%j"><field name="NAME">Intervall</field>
                                                      <field name="INTERVAL">500</field>
                                                      <field name="UNIT">ms</field>
                                                      <statement name="STATEMENT"><block type="variables_set" id="z6Y#r_)wclzpI[?c#|+l"><field name="VAR">DimmerSchritte</field>
                                                          <value name="VALUE"><block type="math_arithmetic" id="YcsJ1E9nn*hV~abUh}3J"><field name="OP">ADD</field>
                                                              <value name="A"><shadow type="math_number" id="%h*hZ{FlTj6wW[ktrN!)"><field name="NUM">1</field></shadow> 
                                                                <block type="variables_get" id="SCskmzPv725izgl`B+.?"><field name="VAR">DimmerSchritte</field></block></value> 
                                                              <value name="B"><shadow type="math_number" id="+;w|HJF@5InjaL/-wGAO"><field name="NUM">1</field></shadow></value></block></value> 
                                                          <next><block type="controls_if" id="e6~f%PzKZ0;dRgptq1[v"><mutation elseif="1"></mutation>
                                                              <value name="IF0"><block type="logic_compare" id="FmuuQo=nH:`(JLl/b?*V"><field name="OP">GT</field>
                                                                  <value name="A"><block type="get_value" id="6_QHswc1qni@KJk0Vin4"><field name="ATTR">val</field>
                                                                      <field name="OID">broadlink.1.learnedSignals.Lampe.Lampe.TVLEDsHelligkeit</field></block></value> 
                                                                  <value name="B"><block type="on_source" id="wBj^vbIsOm6G}mDzm;%v"><field name="ATTR">oldState.val</field></block></value></block></value> 
                                                              <statement name="DO0"><block type="control" id="vA:R6nHhV7[RXu[rw9/K"><mutation delay_input="false"></mutation>
                                                                  <field name="OID">broadlink.1.learnedSignals.Lampe.LEDsHeller</field>
                                                                  <field name="WITH_DELAY">FALSE</field>
                                                                  <value name="VALUE"><block type="logic_boolean" id="ZW1vXaZx1Q]:*Smosc,l"><field name="BOOL">TRUE</field></block></value></block></statement> 
                                                              <value name="IF1"><block type="logic_compare" id="u[X.VAiy~,@,Ay6tSIEy"><field name="OP">LT</field>
                                                                  <value name="A"><block type="get_value" id=")[;_lnc?E{VyA.]J?I/E"><field name="ATTR">val</field>
                                                                      <field name="OID">broadlink.1.learnedSignals.Lampe.Lampe.TVLEDsHelligkeit</field></block></value> 
                                                                  <value name="B"><block type="on_source" id="+70Q//X~3Py3DrC{A3g`"><field name="ATTR">oldState.val</field></block></value></block></value> 
                                                              <statement name="DO1"><block type="control" id="L7%AYotk+/^P]lxvaAMX"><mutation delay_input="false"></mutation>
                                                                  <field name="OID">broadlink.1.learnedSignals.Lampe.LEDsDunkler</field>
                                                                  <field name="WITH_DELAY">FALSE</field>
                                                                  <value name="VALUE"><block type="logic_boolean" id="VH~uoFyIP,73:6Gzk;#H"><field name="BOOL">TRUE</field></block></value></block></statement> 
                                                              <next><block type="controls_if" id="|Bt0ZlV)6x%O@5)^?lKW"><value name="IF0"><block type="logic_compare" id="EW@{CY7HG^j0:`g6Q~it"><field name="OP">EQ</field>
                                                                      <value name="A"><block type="variables_get" id="!~8HAGZ||gst/xYl=ahl"><field name="VAR">DimmerSchritte</field></block></value> 
                                                                      <value name="B"><block type="math_single" id="w8XAGYyzeN5giS|DKgt|"><field name="OP">ABS</field>
                                                                          <value name="NUM"><shadow type="math_number" id="vpHlR7qwC]8zBrSfj.7;"><field name="NUM">9</field></shadow> 
                                                                            <block type="math_arithmetic" id="n%)=M.=@%G.{!GVh/E8G"><field name="OP">DIVIDE</field>
                                                                              <value name="A"><shadow type="math_number" id="7Xz%epxXCgt,j|AFE@k#"><field name="NUM">1</field></shadow> 
                                                                                <block type="math_arithmetic" id="1W;gp9i4%t]HCO0+ib6?"><field name="OP">MINUS</field>
                                                                                  <value name="A"><shadow type="math_number" id="zJj45#q0ki,Y-z{n}QOC"><field name="NUM">1</field></shadow> 
                                                                                    <block type="get_value" id="lyc;k~hBi.bx4le^M!y8"><field name="ATTR">val</field>
                                                                                      <field name="OID">broadlink.1.learnedSignals.Lampe.Lampe.TVLEDsHelligkeit</field></block></value> 
                                                                                  <value name="B"><shadow type="math_number" id=".k4@-yOF7_[)Xp!W1K[f"><field name="NUM">1</field></shadow> 
                                                                                    <block type="on_source" id="M6aC-TjHLtx)d{M[69]7"><field name="ATTR">oldState.val</field></block></value></block></value> 
                                                                              <value name="B"><shadow type="math_number" id=":}hBMQOpw+`_J~-mB~kc"><field name="NUM">10</field></shadow></value></block></value></block></value></block></value> 
                                                                  <statement name="DO0"><block type="timeouts_clearinterval" id="Q%,GU#)tKyR0a;|jX#x+"><field name="NAME">Intervall</field></block></statement></block></next></block></next></block></statement></block></next></block></statement></block></statement> 
                                          <statement name="ELSE"><block type="control" id="34LwS?ailzC9a^W5D~d@"><mutation delay_input="false"></mutation>
                                              <field name="OID">broadlink.1.learnedSignals.Lampe.LEDsAus</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE"><block type="logic_boolean" id="NKdRmxiku05CcE;SQjc}"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block> 
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      Knallix last edited by

                                      ok Danke,

                                      ich schaue mir das mal mit ner Tasse-Kaffee an 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • padrino
                                        padrino Most Active last edited by

                                        Importieren als Skript, dann siehste auch schön die Blöcke. 😉

                                        (ist für 'n Screenshot zu unübersichtlich)

                                        Aber "guten Code" kann ich nicht versprechen. :roll:

                                        CU,

                                        padrino

                                        1 Reply Last reply Reply Quote 0
                                        • K
                                          Knallix last edited by

                                          Warum rechnest du um den Zyklus zu stoppen (:10) ?

                                          1 Reply Last reply Reply Quote 0
                                          • padrino
                                            padrino Most Active last edited by

                                            Hi,

                                            meine LEDs lassen nur sich in 10 (festen) Schritten dimmen, also 10%, 20%… 100%.

                                            Um auf die Schritte zu kommen teile ich die Prozente der Helligkeit durch 10.

                                            Da ich bis vor kurzem "wiederhole x mal" hatte, habe ich so die Stufen hochgezählt.

                                            Jetzt mit "ausführen intervall" könnte ich auch mit dem 10fachen rechnen und dann den Wert von DimmerSchritte immer um 10 statt 1 erhöhen, stimmt, aber irgendwie habe ich mich an das andere gewöhnt (bzw. das nicht bedacht :P)...

                                            CU,

                                            padrino

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            884
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            24
                                            3935
                                            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