Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Lautstärke regeln mit Blockly

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Lautstärke regeln mit Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • Robert 0
      Robert 0 @paul53 last edited by

      @paul53 danke für die Angaben, kannst du mir noch sagen mit was für einem Widget ich das am besten steuere. Momentan habe ich das hqwidget pool.button mal versucht. Sobald ich das wähle fährt die LS hoch bis ich den leiser Button drücke. Ich denke da müsste ein anderer Button eingesetzt werden.

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

        @robert-0 sagte: mit was für einem Widget ich das am besten steuere.

        Mit Vis kenne ich mich nicht aus.

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

          @paul53 danke dir vielmals, hast mir sehr geholfen. Weisst du evtl. noch eine Möglichkeit wie ich mir das Wissen aneignen kann, kennst du ein gutes Lehrmittel oder Video, einfach verständlich?

          paul53 BananaJoe 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @Robert 0 last edited by paul53

            @robert-0 sagte: Möglichkeit wie ich mir das Wissen aneignen kann

            Das Wissen worüber?

            • ioBroker
            • Javascript
            • Funktionen des Javascript-Adapters
            • Blockly
            Robert 0 1 Reply Last reply Reply Quote 0
            • BananaJoe
              BananaJoe Most Active @Robert 0 last edited by

              @robert-0 sagte in Lautstärke regeln mit Blockly:

              @paul53 danke dir vielmals, hast mir sehr geholfen. Weisst du evtl. noch eine Möglichkeit wie ich mir das Wissen aneignen kann, kennst du ein gutes Lehrmittel oder Video, einfach verständlich?

              Also am besten lernt man wenn man einen konkrete Aufgabe hat. Nur auf den blauen Dunst bringt - zumindest mir - wenig.
              Und so waren es am Anfang viele Blockly-Skripte die ich mir zusammen-gegoogelt habe (wie eine Schleife machen, wie Datenpunkte anlegen usw.), dann eigene, dann JavaScript.

              Um dann viele Dinge vom Anfang noch mal neu zu machen weil man es inzwischen besser kann.
              Es muss ja am Anfang nicht gleich 100%-tig sein, es soll nur funktionieren.

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

                @paul53 danke dir, werde ich mal nachlesen. In der Zwischenzeit habe ich die LS Regelung mal direkt in den Objekten getestet. Sie verhält sich gleich wie im VIS, sobald ich den +Button einmal kurz drücke regelt die Lautstärke endlos hoch, ich muss dann den -Button einmal drücken um zu stoppen. Kann man das irgendwo konfigurieren. Idealerweise wäre die Funktion so, dass nur solange ich den Button drücke es regelt, siehst du da eine Möglichkeit?

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

                  @mickym danke für den Input, genau so verhält es sich im Moment.

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Robert 0 last edited by

                    @robert-0 Nun ich habe Dir ja ein paar Lösungsansätze beschrieben, wie es ginge - aber ich kanns Dir halt nicht mit Blockly umsetzen. Und mit Javascript bin ich mir mit der assynchronen Programmierung zu unsicher. Wie gesagt wenn Du Node Red als Logikmaschine einsetzen würdest - hättest Du schnell einen kurze Lösung.

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

                      @robert-0 sagte: nur solange ich den Button drücke es regelt, siehst du da eine Möglichkeit?

                      Nur, wenn es in Vis einen Button gibt, der beim Loslassen von true auf false wechselt.

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @paul53 last edited by mickym

                        @paul53 Das macht dieses Widget doch - habe ich doch gesagt, weil man es als Taster konfigurieren kann. Der Datenpunkt ist solange true, solange gedrückt und wechselt auf false beim Loslassen.

                        Das ist hier aber langsam mein letzter Beitrag - weil ich hier irgendwie das Gefühl habe, dass meine Beiträge hier niemand liest.

                        paul53 Robert 0 2 Replies Last reply Reply Quote 0
                        • paul53
                          paul53 @mickym last edited by

                          @mickym sagte: Das macht dieses Widget doch - habe ich doch gesagt, weil man es als Taster konfigurieren kann. Der Datenpunkt ist solange true, solange gedrückt und wechselt auf false beim Loslassen.

                          Dann kann man es so in Blockly umsetzen:

                          Bild_2021-04-06_150927.png

                          Wert findet man unter "Trigger".

                          mickym Robert 0 2 Replies Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @paul53 last edited by mickym

                            @paul53 Das glaube ich halt nicht, ausser Du erklärst es mir - meines Erachtens muss das asynchron laufen.

                            bd8fc8a4-30cf-483a-a4d9-f8106e02e98b-image.png

                            Während er sich in dieser Schleife befindet erhöht/erniedrigt er permanent - aber fragt nicht mehr ab, wenn der Datenpunkt false wird. Der bleibt doch in dieser Schleife gefangen????

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

                              @mickym ich verfolge die Konversation schon und bin auch froh um eure Unterstützung. Es braucht bei mir einfach ein bisschen Geduld 🙂

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

                                @mickym sagte: fragt nicht mehr ab, wenn der Datenpunkt false wird.

                                Es wird getriggert, wenn der virtuelle Datenpunkt false wird und das Intervall wird gestoppt.

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @paul53 last edited by mickym

                                  @paul53 sagte in Lautstärke regeln mit Blockly:

                                  @mickym sagte: fragt nicht mehr ab, wenn der Datenpunkt false wird.

                                  Es wird getriggert, wenn der virtuelle Datenpunkt false wird und das Intervall wird gestoppt.

                                  aber doch nicht innerhalb der zyklischen Ausführung - na egal ich bin im Blockly nicht so fit wie Du, wenn Du sagst er macht das, dann soll es @Robert-0 halt probieren. Wie gesagt Du musst dieses Widget halt als Taster konfigurieren:

                                  dbe923d4-efbe-4b1d-8962-cea7868c0a82-image.png

                                  Nur mit diesem Haken geht das - und ich kenne auch sonst kein Widget unter vis - das sich wie ein Taster verhalten würde.
                                  Mit 2 dieser Widgets kannst Du wie gesagt das mit Laut und Leise abbilden - und während true im Datenpunkt steht muss halt zyklisch true an Deinen Lauter oder LEiser Punkt im Harmony Adapter geschickt werden. Aber das habe ich ja nun alles schon dutzend Mal erläutert.
                                  @Robert-0 Du kannst das doch auch easy testen. Mach ein Fenster im Browser mit Deiner VIS auf und im anderen Fenster hast Du Dein angelegten Datenpunkte, sobald Du drückst geht der Datenpunkt auf true ansonsten auf False

                                  Wie gesagt ich kann nur eine Lösung mit diesem vis Widget und NodeRed anbieten.

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

                                    @mickym sagte: doch nicht innerhalb der zyklischen Ausführung

                                    Getriggert wird zu jedem Zeitpunkt, bei dem das Datenpunkt-Ereignis eintritt. Sowohl der Datenpunkt-Trigger als auch das Intervall sind asynchrone, von einander unabhängige Hintergrund-Prozesse, die auf ein Ereignis reagieren.

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @paul53 last edited by mickym

                                      @paul53 Ok dann müsste es ja gehen - ich hab ein Video für @Robert-0 angehängt, damit man sieht wie dieses Widget als Taster funktioniert.

                                      Test Taster.mp4

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

                                        @mickym sagte: Widget als Taster funktioniert.

                                        Habe es gerade getestet: Das Widget verhält sich so wie von Dir beschrieben 👍

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

                                          @paul53 Blockly.png

                                          Die Taste habe ich so eingestellt, die Funktion bleibt aber gleich. Mache ich im Blockly was falsch?

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

                                            @robert-0 sagte: Die Taste habe ich so eingestellt

                                            Dann musst Du das Blockly so ändern, wie hier gezeigt:

                                            • Trigger auf "wurde geändert"
                                            • falls-Abfrage von Wert (unter "Trigger")
                                            • Intervall in den mache-Zweig
                                            • "stop Intervall" vom gleichen Intervall im sonst-Zweig lassen
                                            • "stop Intervall" vom anderen Intervall löschen

                                            Beim Drücken der Taste wird der mache-Zweig ausgeführt (Intervall gestartet) und beim Loslassen wird der sonst-Zweig ausgeführt (Intervall gestoppt).

                                            <xml xmlns="https://developers.google.com/blockly/xml">
                                             <variables>
                                               <variable type="interval" id="lauter">lauter</variable>
                                               <variable type="interval" id="leiser">leiser</variable>
                                             </variables>
                                             <block type="on_ext" id="BvIk``_6wyevdCM?nrEQ" x="162" y="91">
                                               <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="QXw5*b^Pp^P|#DlH/L:^">
                                                   <field name="oid">0_userdata.0.Soundbar.lauter</field>
                                                 </shadow>
                                               </value>
                                               <statement name="STATEMENT">
                                                 <block type="controls_if" id="2s0QwHEf(I@~uCF$mN**">
                                                   <mutation else="1"></mutation>
                                                   <value name="IF0">
                                                     <block type="on_source" id="-lGQ`~wCcEF_KN:K?(KU">
                                                       <field name="ATTR">state.val</field>
                                                     </block>
                                                   </value>
                                                   <statement name="DO0">
                                                     <block type="comment" id="aX{yCNAc92R.Z/~Kd{hJ">
                                                       <field name="COMMENT">Button +1</field>
                                                       <next>
                                                         <block type="control" id="b|991;*d]|L-Znegl:C%">
                                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                           <field name="OID">Object ID</field>
                                                           <field name="WITH_DELAY">FALSE</field>
                                                           <value name="VALUE">
                                                             <block type="logic_boolean" id="gn%m]iV6iXj%7M^9nk|/">
                                                               <field name="BOOL">TRUE</field>
                                                             </block>
                                                           </value>
                                                           <next>
                                                             <block type="timeouts_setinterval" id="^;AmW+meFBLc)v[igQ$v">
                                                               <field name="NAME">lauter</field>
                                                               <field name="INTERVAL">500</field>
                                                               <field name="UNIT">ms</field>
                                                               <statement name="STATEMENT">
                                                                 <block type="control" id="](7/0QpQk/xHfFz9UqC6">
                                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                   <field name="OID">Object ID</field>
                                                                   <field name="WITH_DELAY">FALSE</field>
                                                                   <value name="VALUE">
                                                                     <block type="logic_boolean" id="Vo0G_f=^|11fQep7OB}P">
                                                                       <field name="BOOL">TRUE</field>
                                                                     </block>
                                                                   </value>
                                                                 </block>
                                                               </statement>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </statement>
                                                   <statement name="ELSE">
                                                     <block type="timeouts_clearinterval" id="@|L=$lavVRZvL}$|KH*q">
                                                       <field name="NAME">lauter</field>
                                                     </block>
                                                   </statement>
                                                 </block>
                                               </statement>
                                               <next>
                                                 <block type="on_ext" id="t69l9h/XMa+VG-glcwsk">
                                                   <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="hhdS@wDs=nJ2c6.{!?Ob">
                                                       <field name="oid">0_userdata.0.Soundbar.leiser</field>
                                                     </shadow>
                                                   </value>
                                                   <statement name="STATEMENT">
                                                     <block type="controls_if" id="O0}#]C1,5y6qkxK:ABpT">
                                                       <mutation else="1"></mutation>
                                                       <value name="IF0">
                                                         <block type="on_source" id="M%etkid/6DQ.?=zL4hQJ">
                                                           <field name="ATTR">state.val</field>
                                                         </block>
                                                       </value>
                                                       <statement name="DO0">
                                                         <block type="comment" id="s80UBi0s|zv^N;m:(+,G">
                                                           <field name="COMMENT">Button -1</field>
                                                           <next>
                                                             <block type="control" id="6ajOnOdQoLVQuRCjb|)1">
                                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                               <field name="OID">Object ID</field>
                                                               <field name="WITH_DELAY">FALSE</field>
                                                               <value name="VALUE">
                                                                 <block type="logic_boolean" id="38x?7_?o}A37.0M(?$$!">
                                                                   <field name="BOOL">TRUE</field>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="timeouts_setinterval" id="=jEWNVi4(V!-2FErcsf/">
                                                                   <field name="NAME">leiser</field>
                                                                   <field name="INTERVAL">500</field>
                                                                   <field name="UNIT">ms</field>
                                                                   <statement name="STATEMENT">
                                                                     <block type="control" id="X}=*|L(d+Y-01.ia|P0!">
                                                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                       <field name="OID">Object ID</field>
                                                                       <field name="WITH_DELAY">FALSE</field>
                                                                       <value name="VALUE">
                                                                         <block type="logic_boolean" id="uSiBT[S9mq=NK~k=Q4r{">
                                                                           <field name="BOOL">TRUE</field>
                                                                         </block>
                                                                       </value>
                                                                     </block>
                                                                   </statement>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </statement>
                                                       <statement name="ELSE">
                                                         <block type="timeouts_clearinterval" id="e)Zy5M]?RyK`6Qt[Uz%x">
                                                           <field name="NAME">leiser</field>
                                                         </block>
                                                       </statement>
                                                     </block>
                                                   </statement>
                                                 </block>
                                               </next>
                                             </block>
                                            </xml>
                                            

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            856
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            51
                                            2345
                                            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