Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Rolladen mit Blockly Script steuern

    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

    [Gelöst] Rolladen mit Blockly Script steuern

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

      Hallo zusammen,
      ich bin neu hier im Forum.

      Benötige Hilfe beim erstellen einer Blockly Script der meine Rolladen ( Homematic-Schaltaktoren) steuern sol, ich bin leider noch nicht ganz fit im erstellen von Blockly-Script, kleinere Scripte habe ich noch alleine geschafft.

      Bisher habe ich es mit RaspberryMatic gesteuert, so wie auf den Bildern sieht mein Programm aus.

      Ich würde mich auf jede Unterstützung sehr freuen.

      Wie sollte ein Blockly Script aussehen das die Funktionen die im RaspberryMatic seinen Dienst verrichtet auch unter Iobroker mit Blockly Funktioniert.

      Vielen Herzlichen Dank
      Acem
      1.JPG
      2.JPG 3.JPG 4.JPG 5.JPG 6.JPG

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

        @acem
        Soll das Terassentürrollo erst um 0:00 Uhr oder um 16:45 Uhr runter fahren ? Das Programm, das 16:45 Uhr auslöst, fehlt.

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

          @acem sagte:

          Wie sollte ein Blockly Script aussehen

          Z.B. so, wenn um 16:45 Uhr auch das Rollo der Terassentür runter fahren soll. Wenn danach die Tür geöffnet wird, fährt das Rollo hoch und bleibt bis Mitternacht oben.

          Blockly_temp.JPG

          1 Reply Last reply Reply Quote 0
          • A
            acem last edited by acem

            @Paul53
            Hast recht habe das Programm für 16:45 Uhr nicht mit eingefügt gehabt, jetzt habe ich es hochgeladen 🙂

            Die Terrassentür soll um 16:45 Uhr auf 50 % nur dann runterfahren wenn die Tür zu ist (Homematic-Drehgriffsensor), damit mann nicht ausgesperrt ist und um 0:00 Uhr dann ganz runterfahren ob die Tür offen oder zu ist.

            Ab 16:45 Uhr wenn die Terrassentür auf 50 % runtergefahren steht und die Türe geöffnet wird fährt es ja wieder ganz hoch, kann mann so einstellen das wenn die Tür wieder geschlossen wird wieder auf 50% runterfahrt das wäre echt Toll.

            Ab 0:00 Uhr wenn die Tür geöffnet wird fährt das Rollo hoch und wenn wieder geschlossen dann ganz runter, so wie auf dem Homematic Programm.

            Kannst du mir Bitte den Blockly-Script hier einstellen, ich würde mich sehr freuen.

            Vielen Herzlichen Dank
            Acem
            Das 16.45 Uhr Programm.JPG

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

              @acem sagte):

              Blockly-Script hier einstellen

              <xml xmlns="http://www.w3.org/1999/xhtml">
               <variables>
                 <variable type="" id="*@#O`4um.(3hbA:(zHv7">rollos</variable>
                 <variable type="" id="/!l]R_6qje~AC4QCtkJt">Tuer_geschlossen</variable>
                 <variable type="" id=")z%f,tXn?!GbC|5$y{mm">rollo</variable>
               </variables>
               <block type="procedures_defnoreturn" id=",yKUl=3lGi+KjS5=;_Y#" x="188" y="-112">
                 <mutation>
                   <arg name="rollos" varid="*@#O`4um.(3hbA:(zHv7"></arg>
                 </mutation>
                 <field name="NAME">Fenster</field>
                 <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                 <statement name="STACK">
                   <block type="control" id="(3@GeX5GEZz|lAd.m$4{">
                     <mutation delay_input="true"></mutation>
                     <field name="OID">Object ID</field>
                     <field name="WITH_DELAY">TRUE</field>
                     <field name="DELAY_MS">5</field>
                     <field name="UNIT">sec</field>
                     <field name="CLEAR_RUNNING">FALSE</field>
                     <value name="VALUE">
                       <block type="variables_get" id="UxT/HO0c!o{kB*(q!Ro4">
                         <field name="VAR" id="*@#O`4um.(3hbA:(zHv7" variabletype="">rollos</field>
                       </block>
                     </value>
                     <next>
                       <block type="control" id="?e[?w5,ltw.N-`2SC?s4">
                         <mutation delay_input="true"></mutation>
                         <field name="OID">Object ID</field>
                         <field name="WITH_DELAY">TRUE</field>
                         <field name="DELAY_MS">10</field>
                         <field name="UNIT">sec</field>
                         <field name="CLEAR_RUNNING">FALSE</field>
                         <value name="VALUE">
                           <block type="variables_get" id="bSWRp{e8.#7C|qx$3u$o">
                             <field name="VAR" id="*@#O`4um.(3hbA:(zHv7" variabletype="">rollos</field>
                           </block>
                         </value>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
               <block type="comment" id="-/:MDED2QW:auM;grBXD" x="63" y="-13">
                 <field name="COMMENT">Terassentür</field>
                 <next>
                   <block type="on_ext" id="Fie!sxd/K|0_HFnhBbYh">
                     <mutation items="1"></mutation>
                     <field name="CONDITION">ne</field>
                     <field name="ACK_CONDITION"></field>
                     <value name="OID0">
                       <shadow type="field_oid" id="/Iv)*899]Z6.,:_bpq1:">
                         <field name="oid">default</field>
                       </shadow>
                     </value>
                     <statement name="STATEMENT">
                       <block type="variables_set" id="U7C~jo=R(O.Q]EHu_|uu">
                         <field name="VAR" id="/!l]R_6qje~AC4QCtkJt" variabletype="">Tuer_geschlossen</field>
                         <value name="VALUE">
                           <block type="logic_negate" id="qJ=6#~`c#a}$R55TP[h{">
                             <value name="BOOL">
                               <block type="on_source" id="VG[E-RtgZu*JIL|4|){-">
                                 <field name="ATTR">state.val</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="procedures_callnoreturn" id="a=6aT_B7e^4fjS*BrfSr">
                             <mutation name="Terasse"></mutation>
                           </block>
                         </next>
                       </block>
                     </statement>
                     <next>
                       <block type="schedule" id="7qaQ}i:{``qvajje5=iB">
                         <field name="SCHEDULE">0 0 * * *</field>
                         <statement name="STATEMENT">
                           <block type="procedures_callnoreturn" id=")|YAW$Q@6?I9^3N+*[K-">
                             <mutation name="Terasse"></mutation>
                           </block>
                         </statement>
                         <next>
                           <block type="schedule" id="nU=Jv?$7n]60(-7k4W2f">
                             <field name="SCHEDULE">0 8 * * *</field>
                             <statement name="STATEMENT">
                               <block type="procedures_callnoreturn" id="/)KMjI==#):Ad8M)xO(+">
                                 <mutation name="Terasse"></mutation>
                                 <next>
                                   <block type="procedures_callnoreturn" id="0xSwd=wq5)R)5{*X^w_W">
                                     <mutation name="Fenster">
                                       <arg name="rollos"></arg>
                                     </mutation>
                                     <value name="ARG0">
                                       <block type="math_number" id="G3=%sL8e$TU2X{LMl+R@">
                                         <field name="NUM">100</field>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                             <next>
                               <block type="schedule" id="PzVmXtw^xKA@[^wguc|3">
                                 <field name="SCHEDULE">45 16 * * *</field>
                                 <statement name="STATEMENT">
                                   <block type="controls_if" id="=?wrUl;5J?$mkZiA8yQ2">
                                     <value name="IF0">
                                       <block type="variables_get" id="W6mJ%^$5A3]AhtY_PHa=">
                                         <field name="VAR" id="/!l]R_6qje~AC4QCtkJt" variabletype="">Tuer_geschlossen</field>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="control" id="SsQHo]fQo/QSLc%#-7X,">
                                         <mutation delay_input="false"></mutation>
                                         <field name="OID">Object ID</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="math_number" id="-J0OO$VB^v.,fu-gZ|W,">
                                             <field name="NUM">50</field>
                                           </block>
                                         </value>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="procedures_callnoreturn" id="?(e@N)=e]I](Ye)C)E3k">
                                         <mutation name="Fenster">
                                           <arg name="rollos"></arg>
                                         </mutation>
                                         <value name="ARG0">
                                           <block type="math_number" id="(o3sBX/eF)7k=$gUuUId">
                                             <field name="NUM">0</field>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
               <block type="procedures_defnoreturn" id="wo(Y;N%mzX+yCkH]((4j" x="263" y="137">
                 <field name="NAME">Terasse</field>
                 <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                 <statement name="STACK">
                   <block type="controls_if" id="lye}(Uf^OOlR.q_wqODd">
                     <mutation else="1"></mutation>
                     <value name="IF0">
                       <block type="logic_operation" id="X^o/7~;cc3[+YrRu-{q:" inline="false">
                         <field name="OP">AND</field>
                         <value name="A">
                           <block type="variables_get" id="`LxJLJ|5g`+1S]vaW,Bu">
                             <field name="VAR" id="/!l]R_6qje~AC4QCtkJt" variabletype="">Tuer_geschlossen</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="time_compare" id="^dMv:svC]f4F+bYUeo*1">
                             <mutation end_time="true"></mutation>
                             <field name="OPTION">between</field>
                             <field name="START_TIME">0:00</field>
                             <field name="END_TIME">8:00</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <statement name="DO0">
                       <block type="variables_set" id=":gR6zr?/SL]H77@}]N2}">
                         <field name="VAR" id=")z%f,tXn?!GbC|5$y{mm" variabletype="">rollo</field>
                         <value name="VALUE">
                           <block type="math_number" id="s@xsK~2e|M*]f`%hr0Xr">
                             <field name="NUM">0</field>
                           </block>
                         </value>
                       </block>
                     </statement>
                     <statement name="ELSE">
                       <block type="variables_set" id="!s`9SPBMy,E$T5UQ%ntN">
                         <field name="VAR" id=")z%f,tXn?!GbC|5$y{mm" variabletype="">rollo</field>
                         <value name="VALUE">
                           <block type="math_number" id="s0rvX,5[7O~77.CLaxjX">
                             <field name="NUM">100</field>
                           </block>
                         </value>
                       </block>
                     </statement>
                     <next>
                       <block type="controls_if" id="UaT2d8c+20#@j(l-n*m6">
                         <value name="IF0">
                           <block type="logic_compare" id="gl_8cIu(2q`4JSC(:^M=">
                             <field name="OP">NEQ</field>
                             <value name="A">
                               <block type="variables_get" id="-QktzY|DANqS52y2rp[]">
                                 <field name="VAR" id=")z%f,tXn?!GbC|5$y{mm" variabletype="">rollo</field>
                               </block>
                             </value>
                             <value name="B">
                               <block type="get_value" id="w%P1z,02~]Z|gtJfw7Eq">
                                 <field name="ATTR">val</field>
                                 <field name="OID">ID auswählen</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="control" id="0yB4wra11;C:BMU+[}_^">
                             <mutation delay_input="false"></mutation>
                             <field name="OID">Object ID</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="variables_get" id="m]umWgjv;77bN{ls?3Y~">
                                 <field name="VAR" id=")z%f,tXn?!GbC|5$y{mm" variabletype="">rollo</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
              </xml>
              

              1 Reply Last reply Reply Quote 0
              • A
                acem last edited by acem

                @paul53
                irgend etwas passt nicht, habe zum testen alle betroffene Rolladenaktoren die ab 16:45 Uhr runterfahren sollen eingefügt und die Uhrzeit zum testen vorgezogen auf 15:15 Uhr wo die 2 Fenster auf 0.00 % runterfahren sollen und die Terrassentüre auf 50% runterfahren sollen.

                Es tut sich gar nichts, was kann das Problem sein?

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

                  @acem sagte in Rolladen mit Blockly Script steuern:

                  vorgezogen auf 15:15 Uhr

                  Das hast Du vor 15:15 Uhr gemacht (Skript gestartet) ? Die Systemzeit und Zeitzone stimmen ? Die richtigen Datenpunkt-IDs sind zugewiesen ?

                  1 Reply Last reply Reply Quote 0
                  • A
                    acem last edited by acem

                    den Script habe ich gestartet und die Uhrzeit vorgezogen nochmal auf 15:28 Uhr so wie hier, leider tut sich nichts, habe irgendwo etwas fasch gemacht.

                    Der Script besteht wenn ich das hier richtig sehe aus 3 teilen ist das so korrekt? müssen die nicht miteinander verknüpft sein?

                    Script.JPG

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

                      @acem sagte:

                      Der Script besteht wenn ich das hier richtig sehe aus 3 teilen ist das so korrekt?

                      Das Skript besteht aus 4 Triggern und verwendet 2 Funktionen, die aus den Triggern aufgerufen werden. Die ID des Terassentür-Triggers kann nicht stimmen, denn sie kann nicht auf "LEVEL" enden.
                      Mich wundert, dass im Blockly die IDs der Datenpunkte angezeigt werden und nicht die Namen, was normal wäre.

                      Übrigens kannst Du Dir die Mühe sparen, die Seriennummern unkenntlich zu machen. Damit kann niemand etwas anfangen.

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

                        @acem
                        Wird im Log die richtige Zeit ausgegeben, wenn Du den Debug output unten anfügst ?

                        Blockly_temp.JPG

                        1 Reply Last reply Reply Quote 0
                        • A
                          acem last edited by acem

                          Die Zeit war nicht richtig angegeben, ich habe es aber jetzt im griff bekommen, es wird wieder die richtige Zeit angezeigt.

                          Was muß ich bei ID der Terrassentür-Triggers nehmen statt LEVEL und wie kann ich es dazu bringen das nicht die IDs der Datenpunkte sondern die Namen angezeigt wird, tut mir leid ich bin nicht so fitt im Blockly 🙂

                          Bei allen anderen Blockly-Scripts die ich benutze werden auch die Datenpunkte und nicht die Namen angezeigt, wie kann ich das ändern?

                          Log.JPG

                          WZ-Rollos.png

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

                            @acem sagte:

                            Was muß ich bei ID der Terrassentür-Triggers nehmen statt LEVEL

                            LEVEL ist vom Rollo, TFK haben einen STATE ?

                            1 Reply Last reply Reply Quote 0
                            • A
                              acem last edited by acem

                              Die 2 Rollos im Wohnzimmer fahren wie gewünscht um 16:45 Uhr runter.
                              Terassentür.png

                              Nur die Terrassentür-Rollo bewegt sich nicht, was habe ich hier eventuell falsch gemacht?

                              terrassentür.png

                              Danke und Gruß
                              Acem

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

                                @acem sagte:

                                was habe ich hier eventuell falsch gemacht?

                                Falscher Datenpunkt als Trigger: LEVEL ist bestimmt kein Türkontakt. Der Kommentar über dem Trigger lautet "Terassentür", nicht "Terassenrollo".

                                1 Reply Last reply Reply Quote 0
                                • A
                                  acem last edited by acem

                                  Ich habe jetzt den Datenpunkt ( Aqara Sensor ) genommen da bei mir an allen Türen und Fenster von dieser Sensoren dran ist.

                                  Die Terrassentür bewegt sich leider immer noch nicht.
                                  WZ_Blockly.png

                                  Aqara_Sensor.JPG

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

                                    @acem
                                    Im HomeMatic-Programm hast Du HM-Sec-RHS verwendet (bei verriegelt).
                                    Da der Trigger eine Änderung des Wertes benötigt, funktioniert es nach Skriptstart erst, wenn die Tür geöffnet und anschließend wieder geschlossen wurde.

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      acem last edited by acem

                                      Ja das ist ein Homematic-Drehgriffkontakt
                                      Homematic-Drehgriffkontakt.JPG

                                      Ich habe es soeben auch mit diese getestet, leider ohne Erfolg.

                                      Blockly.png

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

                                        @acem
                                        Damit es gleich nach Skriptstart (ohne Türbetätigung) funktioniert, ergänze außerhalb des Triggers:

                                        Blockly_temp.JPG

                                        Beide Datenpunkt-IDs müssen die des Türkontaktes sein.

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

                                          @acem sagte:

                                          das ist ein Homematic-Drehgriffkontakt

                                          Das ist doch ein Multistate mit 0 = verriegelt, > 0 gekippt / offen ?

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            acem last edited by

                                            Kannst du es mir Bitte! hohladen das ich es sofort testen kann, würde mich sehr freuen.

                                            Weitere Frage kann mann das ganze Blockly-Script auch vereinfacht kompakter machen?

                                            Vielen Herzlichen Dank 🙂
                                            Acem

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            958
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            61
                                            3597
                                            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