Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Toggle von drei Werten Hoch - Stop -Runter

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Toggle von drei Werten Hoch - Stop -Runter

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

      Hallo,
      ich wurde gerne mit einem einfachen Taster meinen Shelly Rollladen Aktor steuern.
      Dieser hat drei Schaltzustände. Hoch - Stop - Runter
      Da ich an dem Shelly zwei Wippen dran habe, habe ich keinen typischen "Schalter" in den Objekten den ich ansteuern könnte.

      Diese Funktion würde ich also gerne im Blockly simulieren. Ein Tastendruck soll also den Rollladen hochfahren, nächster Tastendruck stoppen, nächste Tastendruck runterfahren, nächster Tastendruck stoppen u.s.w..
      Wie kann man das in Blockly umsetzen?

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

        @bigchris Du nimmst eine Liste mit 3 Zuständen und läufst die bei jedem Tastendruck durch. Falls dieser Hinweis nicht hinreichend ist, gibt es sicher Beispiele und Blockly-Gurus, die Dir bei der Umsetzung unter die Arme greifen.

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

          @mickym
          Ja, das habe ich noch nicht gemacht, da bräuchte ich etwas mehr starthilfe

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

            @bigchris Wie gesagt - ich bin kein Blockly Freund - und vielleicht bekommst Du bald Hilfe - denn ich garantiere bei Blockly für nichts 😉 :

            b9d94577-1f86-4a61-b390-59df04c2e851-image.png

            So würde ich das ungefähr umsetzen.

            Statt Hoch, Stop und Runter gibst halt in die Liste die Befehle ein, die Dein Datenpunkt braucht, um entsprechend zu reagieren. In den Trigger muss halt der Taster rein.

            EDIT: Habs nochmal geändert - da man die Liste ja nur einmal setzen muss.

            EDIT2: Es scheint auch so, dass der Zeiger nicht dem Array Index entspricht - also muss man wohl mit 1 beginnen.

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id=".,o1mwT=2ngV/w!g[LJz">Zeiger</variable>
               <variable id="luCot.+i90Fw8%C,%|5g">mache</variable>
             </variables>
             <block type="variables_set" id="~[:U^[CsqLe|`%}0y!3V" x="-487" y="-812">
               <field name="VAR" id=".,o1mwT=2ngV/w!g[LJz">Zeiger</field>
               <value name="VALUE">
                 <block type="math_number" id="^OxrhvFsVrGy3TOZimi`">
                   <field name="NUM">1</field>
                 </block>
               </value>
               <next>
                 <block type="variables_set" id="U)R{Yw{%eE].-hCma1P3">
                   <field name="VAR" id="luCot.+i90Fw8%C,%|5g">mache</field>
                   <value name="VALUE">
                     <block type="lists_create_with" id="D,tl/;P*Bkaq,6uMl){E">
                       <mutation items="3"></mutation>
                       <value name="ADD0">
                         <block type="text" id="2y$+@{Hw(YJhnJS|;0j{">
                           <field name="TEXT">Hoch</field>
                         </block>
                       </value>
                       <value name="ADD1">
                         <block type="text" id=",iI.YfcpW7h1~-c8DHO4">
                           <field name="TEXT">Stop</field>
                         </block>
                       </value>
                       <value name="ADD2">
                         <block type="text" id="YC@m/!trd|#K(JFMGZOi">
                           <field name="TEXT">Runter</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <next>
                     <block type="on_ext" id="?oYTiF^pl7unhVo!mYES">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                       <field name="CONDITION">any</field>
                       <field name="ACK_CONDITION"></field>
                       <value name="OID0">
                         <shadow type="field_oid" id="SU-?Q2fj.,@,Tq733YVs">
                           <field name="oid">default</field>
                         </shadow>
                       </value>
                       <statement name="STATEMENT">
                         <block type="control" id="b/rF2;6||Oe9%*[-)Nev">
                           <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="lists_getIndex" id="#([`BL7%gUtBZ/k0M8XU">
                               <mutation statement="false" at="true"></mutation>
                               <field name="MODE">GET</field>
                               <field name="WHERE">FROM_START</field>
                               <value name="VALUE">
                                 <block type="variables_get" id="F{dB4P#oyErs_m!m!Kgr">
                                   <field name="VAR" id="luCot.+i90Fw8%C,%|5g">mache</field>
                                 </block>
                               </value>
                               <value name="AT">
                                 <block type="variables_get" id="|U?Adq`NKG%rgTO%@HMa">
                                   <field name="VAR" id=".,o1mwT=2ngV/w!g[LJz">Zeiger</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="math_change" id="M;i~ciU:QMTU6HjJAH/e">
                               <field name="VAR" id=".,o1mwT=2ngV/w!g[LJz">Zeiger</field>
                               <value name="DELTA">
                                 <shadow type="math_number" id="5_+9|F^2{}2^$lOcsWu_">
                                   <field name="NUM">1</field>
                                 </shadow>
                               </value>
                               <next>
                                 <block type="controls_if" id="GfoKyvZY(?6VTNP,kt0@">
                                   <value name="IF0">
                                     <block type="logic_compare" id="$%%=*i0Bn9;v?.%u)KYu">
                                       <field name="OP">GT</field>
                                       <value name="A">
                                         <block type="variables_get" id="Jx{924,X#7!Sspnl|#{D">
                                           <field name="VAR" id=".,o1mwT=2ngV/w!g[LJz">Zeiger</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="0ya]U3fcbEDPk]Vo+^z8">
                                           <field name="NUM">3</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="variables_set" id="p@yALD4mEyi#Zg#s%K`/">
                                       <field name="VAR" id=".,o1mwT=2ngV/w!g[LJz">Zeiger</field>
                                       <value name="VALUE">
                                         <block type="math_number" id="w60D$u0Z9h~DM.mS//Vm">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                     </block>
                                   </statement>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
            </xml>
            

            In die Objekt-ID von dem Trigger muss halt der Datenpunkt Deines Tasters - in die steuere Objekt-ID der Datenpunkt Deines Rollladens.

            Aber wie gesagt - ich bin da nicht die große Hilfe - sondern nur ungefähr - weil ich diese Eigenheiten von Blockly wie mit den Listenindizes nicht kenne.

            1 Reply Last reply Reply Quote 0
            • B
              BigChris last edited by

              Vielen Dank schon mal, ich probiere es aus sobald ich es schaffe!

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

                @bigchris sagte: Dieser hat drei Schaltzustände. Hoch - Stop - Runter

                Sind das nicht 3 Button-Datenpunkte (Open / Pause / Close)? Falls ja, dann so:

                Bild_2022-09-20_190757509.png

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

                  @paul53
                  Vielen Dank.
                  So funktioniert es 🙂
                  Wieder was gelernt, dass es Listen gibt und wie man diese einsetzen kann. Vielen Dank!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  837
                  Online

                  32.0k
                  Users

                  80.5k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  339
                  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