Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Rollladen steuern mit HM-Wired 12/7-Modulen und Blockly

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Rollladen steuern mit HM-Wired 12/7-Modulen und Blockly

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

      Hallo Forum,

      ich ziehe mir hier sehr viele Infos zum Umsetzen in meinem System heraus und möchte hier mal meine Steuerung der Rollladen mit Wired 12/14-Modulen weitergeben.

      ! ````
      <xml xmlns="http://www.w3.org/1999/xhtml"><block id="e9}yC,gRGz%yh3+D(@Qh" type="astro" x="38" y="-187"><field name="TYPE">dawn</field>
      <field name="OFFSET">4</field>
      <statement name="STATEMENT"><block id="3PHvM;}5ExNNaYyAlmkO" type="variables_set"><field name="VAR">morgens_Hoch</field>
      <value name="VALUE"><block id="d_#OZr@~/i{Vx~R.=Fo(" type="math_number"><field name="NUM">1</field></block></value>
      <next><block id="Vg?TEFnQf+F7|k?zcVO" type="procedures_callnoreturn"><mutation name="Trigger"></mutation> <next><block id="OCH3.k43Gr(b].{:#drS" type="timeouts_settimeout"><field name="NAME">Reset_Hoch</field> <field name="DELAY">2000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block id="(S(39BS/``R9S?)3^.b" type="variables_set"><field name="VAR">morgens_Hoch</field>
      <value name="VALUE"><block id="W[7C9y.4cp1p|ZFl1IfA" type="math_number"><field name="NUM">0</field></block></value></block></statement></block></next></block></next></block></statement></block>
      <block id="+4W.LgO9lhLI[#DznPbK" type="astro" x="413" y="-187"><field name="TYPE">dusk</field>
      <field name="OFFSET">4</field>
      <statement name="STATEMENT"><block id="bMJb@WnCxsn7rSfe0%8h" type="variables_set"><field name="VAR">abends_Runter</field>
      <value name="VALUE"><block id="F?,pxCmHuA*.#,cOF{[n" type="math_number"><field name="NUM">1</field></block></value>
      <next><block id="QlpCFv35}AeXumFT_@Q|" type="procedures_callnoreturn"><mutation name="Trigger"></mutation>
      <next><block id="DL|JSTp.Hd3v-qC!JR}" type="timeouts_settimeout"><field name="NAME">Reset_Runter</field>
      <field name="DELAY">2000</field>
      <field name="UNIT">ms</field>
      <statement name="STATEMENT"><block id="EzFm@J@OYUfWG!
      ;N}~^" type="variables_set"><field name="VAR">abends_Runter</field>
      <value name="VALUE"><block id="3RS_w~V)GM@j-vkZi}+`" type="math_number"><field name="NUM">0</field></block></value></block></statement></block></next></block></next></block></statement></block>
      <block id="o.Sy;o2hZBi#d~v]vcdR" type="on" x="38" y="13"><field name="OID">hm-rpc.1.MEQ1534364.4.PRESS_LONG</field>
      <field name="CONDITION">any</field>

      <statement name="STATEMENT"><block id="xLk?;3`HtGtVR5A9|ZY3" type="procedures_callnoreturn"><mutation name="Trigger"></mutation></block></statement></block> 
      

      <block id=":-0}C6cWZz1.9MWJD*c:" type="on" x="388" y="13"><field name="OID">hm-rpc.1.MEQ1534370.5.PRESS_LONG</field>
      <field name="CONDITION">any</field>

      <statement name="STATEMENT"><block id="iON+2g.c!IfNgUwHX,Oi" type="procedures_callnoreturn"><mutation name="Trigger"></mutation></block></statement></block> 
      

      <block id="BUov~oeL%f}mD@!+dyy" type="procedures_defnoreturn" x="38" y="188"><field name="NAME">Trigger</field> <comment w="160" pinned="false" h="80">Beschreibe diese Funktion …</comment> <statement name="STACK"><block id="sHX9yIxLK6/c2Ut,Vcar" type="controls_if"><mutation else="1" elseif="1"></mutation> <value name="IF0"><block id="U9=b|Z6{=Q^Kq]]*;t~!" type="logic_operation"><field name="OP">OR</field> <value name="A"><block id="t*nwU)6PW4fX5;n^keU_" type="logic_operation"><field name="OP">AND</field> <value name="A"><block id="m#S+Sn3xvjvuS4A9;z4" type="logic_compare"><field name="OP">EQ</field>
      <value name="A"><block id="-I(=s}e!ooF)@hvLX,!" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Status</field></block></value> <value name="B"><block id="uRLA;}NrNT5aEfZc^pOK" type="math_number"><field name="NUM">0</field></block></value></block></value> <value name="B"><block id="2co]B=E/dGRWk^6D}OAj" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id=":6t;g0g(ZhHRBTf@2RKG" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field></block></value> <value name="B"><block id="T8IJfjM6|L*ZH1X-s@mg" type="math_number"><field name="NUM">0</field></block></value></block></value></block></value> <value name="B"><block id="e{1ql*TfSVR]0Y+jn/R:" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id="hX?+C4DO+/IK(a^5uKq" type="variables_get"><field name="VAR">abends_Runter</field></block></value>
      <value name="B"><block id="+kX!{?{?/e|IKO}{g8P" type="math_number"><field name="NUM">1</field></block></value></block></value></block></value> <statement name="DO0"><block id="GKJJi}/IqLyNP#]0ogd" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="=[yFxvcBQ9~mko6z0X8N" type="math_number"><field name="NUM">2</field></block></value>
      <next><block id="-~vD0Xl^DlV^{Lrg:Y=" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="4raLJ~md3*58)[D(m%jb" type="math_number"><field name="NUM">1</field></block></value>
      <next><block id=".lo9u!jVfI]{xjb?0+v" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="gD,4HEYW-XR=ziDOsNBX" type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
      <next><block id="~H|+nS.HI-idm=MW!]g?" type="control"><mutation delay_input="true"></mutation>
      <field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field>
      <field name="WITH_DELAY">TRUE</field>
      <field name="DELAY_MS">250</field>
      <field name="UNIT">ms</field>
      <field name="CLEAR_RUNNING">FALSE</field>
      <value name="VALUE"><block id="DKJ2r)jgd}5jXkn4Bny!" type="logic_boolean"><field name="BOOL">TRUE</field></block></value>
      <next><block id="(:0LsdzaVQA0/A?YpD" type="timeouts_setinterval"><field name="NAME">Runter</field> <field name="INTERVAL">900</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block id="8G1~73^h{5G%T:DUmLx7" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="m:ShdOroe)re~4mv~)P8" type="math_arithmetic"><field name="OP">MINUS</field> <value name="A"><shadow id="Hlkn.1CqRba,AuT]jvQQ" type="math_number"><field name="NUM">1</field></shadow> <block id="{S|U@BtiL-nGO|I-/;p" type="get_value"><field name="ATTR">val</field>
      <field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value>
      <value name="B"><shadow id="l-d=q
      e9;fitL9O|i~BC" type="math_number"><field name="NUM">1</field></shadow>
      <block id="_kyf{~;LI-vXc58P):ZT" type="math_number"><field name="NUM">5</field></block></value></block></value>
      <next><block id="4(CV{,zydV%Ogf0]M)aq" type="controls_if"><value name="IF0"><block id="@qh|)EcIVVZoRnEZJ_P." type="logic_compare"><field name="OP">EQ</field>
      <value name="A"><block id="k!a3h[(f6y=U+eYt7b:C" type="get_value"><field name="ATTR">val</field>
      <field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value>
      <value name="B"><block id="F4~Usn0E2_n|btT8Y6-?" type="math_number"><field name="NUM">0</field></block></value></block></value>
      <statement name="DO0"><block id="R;y(DhcUE!_vOt8_BY
      ~" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="aIm%Lysox~P_CMl/:NF(" type="math_number"><field name="NUM">0</field></block></value>
      <next><block id="PP@W/{V9W@khG9@nlLux" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="zY8Ua+.HWaD]ws{?=473" type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
      <next><block id="e7H1@peb5eFWzX!Q7nT
      " type="timeouts_clearinterval"><field name="NAME">Runter</field></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement>
      <value name="IF1"><block id="hF5V4t10b)j[w.YRMI=1" type="logic_operation"><field name="OP">OR</field>
      <value name="A"><block id="NWL{dzob3/Lmhib7~R.{" type="logic_operation"><field name="OP">AND</field>
      <value name="A"><block id="]xEdaWBpYk+E-72pIiy*" type="logic_compare"><field name="OP">EQ</field>
      <value name="A"><block id="aoLD5I6g9=[K.N%juk1a" type="get_value"><field name="ATTR">val</field>
      <field name="OID">javascript.0.Ankleide_Rollladen_Status</field></block></value>
      <value name="B"><block id="))cz{kRX(q|3mIJ#b?-a" type="math_number"><field name="NUM">0</field></block></value></block></value>
      <value name="B"><block id=")}Y%{WyriWaBAYH_V6v+" type="logic_compare"><field name="OP">EQ</field>
      <value name="A"><block id="%-neE!%)##=xVo#rh1VB" type="get_value"><field name="ATTR">val</field>
      <field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field></block></value>
      <value name="B"><block id="l:NJ~OR^d^art27cb6S(" type="math_number"><field name="NUM">1</field></block></value></block></value></block></value>
      <value name="B"><block id="8w]_2:lF:9622Xl5sp-" type="logic_compare"><field name="OP">EQ</field>
      <value name="A"><block id="AvNfE@2d0)3Dd{7OvIxx" type="variables_get"><field name="VAR">morgens_Hoch</field></block></value>
      <value name="B"><block id="3PI8N^Jb2],83(x12DaI" type="math_number"><field name="NUM">1</field></block></value></block></value></block></value>
      <statement name="DO1"><block id="_1vK9,?s5.:GyLMi3e
      l" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="HpVnu@a#eDf|/xw_yB." type="math_number"><field name="NUM">1</field></block></value> <next><block id="p}__~L%i8{wJg5(Z2e,0" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="!nSucKjI+E;j9dsH8c5Q" type="math_number"><field name="NUM">0</field></block></value> <next><block id="svM!=FE5)+R87AM0X{[V" type="control"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="2RHLSve3Q0z_MJk}b9gT" type="logic_boolean"><field name="BOOL">FALSE</field></block></value> <next><block id="?m!(-C0=!eyu|||7+]~h" type="control"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">250</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block id="aCi:.;YdI~.R85xTQ3QB" type="logic_boolean"><field name="BOOL">TRUE</field></block></value> <next><block id="P#QMN;Drd@8cDY7s|dHk" type="timeouts_setinterval"><field name="NAME">Hoch</field> <field name="INTERVAL">950</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block id="g(AB@tgd#mv1oAMfIDkC" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="cojL4a;yllsiMY~lJCl1" type="math_arithmetic"><field name="OP">ADD</field> <value name="A"><shadow id="Hlkn.1CqRba,AuT]jvQQ" type="math_number"><field name="NUM">1</field></shadow> <block id="cVf?27sl+}=Y)Ytt;U:2" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value> <value name="B"><shadow id="l-d=q*e9;fitL9O|i~BC" type="math_number"><field name="NUM">1</field></shadow> <block id="G=):.J*xxpg;KPCb5NJi" type="math_number"><field name="NUM">5</field></block></value></block></value> <next><block id="8bAB}2,x3%KsJx]C(GK[" type="controls_if"><value name="IF0"><block id="T,7,MWS_QXTlr060m,Qy" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id="~gR2cg/J#RLxu6~___-]" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value> <value name="B"><block id=")?7pRI=(]aL(4[uFzU}n" type="math_number"><field name="NUM">100</field></block></value></block></value> <statement name="DO0"><block id="/x/*zg7QY,3:u*/7Wrn" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="?!jU=SjrRdYD-[+cKfy4" type="math_number"><field name="NUM">0</field></block></value>
      <next><block id="q9fr[F[^_NYc~_8xlwW" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="REC88dnSG8xyitm?3.v." type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
      <next><block id="P`3TfHTSorj{qb(b5D4
      " type="timeouts_clearinterval"><field name="NAME">Hoch</field></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement>
      <statement name="ELSE"><block id="VxBrbT9[{[jx8Ud7prQ^" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="MUlff.-(de,3iS:bVs@?" type="math_number"><field name="NUM">0</field></block></value>
      <next><block id="IFxvl4ge1UoH)ui^_5jq" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="OF)Ps:fiR*]-eyS{WvZ" type="logic_boolean"><field name="BOOL">TRUE</field></block></value>
      <next><block id=".#^GrOvv%H}t
      @kY[:GA" type="control"><mutation delay_input="false"></mutation>
      <field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block id="yYVPPy!,ltB8!=ZbGFci" type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
      <next><block id="tR#0!P[j?CJDN%{+:Ny[" type="timeouts_clearinterval"><field name="NAME">Runter</field>
      <next><block id="lfnLt8H|umGtPYUKv+q~" type="timeouts_clearinterval"><field name="NAME">Hoch</field></block></next></block></next></block></next></block></next></block></statement></block></statement></block></xml>

      
      Hier wird die aktuelle Position über die Zeit berechnet, es sind für Hoch und Runter zwei verschiedene Zeiten "einstellbar".
      
      Habe dazu noch folgende Variablen angelegt.
      
       ![1455_einstellung_der_variablen1.png](/assets/uploads/files/1455_einstellung_der_variablen1.png) 
       ![1455_einstellung_der_variablen2.png](/assets/uploads/files/1455_einstellung_der_variablen2.png) 
       ![1455_einstellung_der_variablen3.png](/assets/uploads/files/1455_einstellung_der_variablen3.png) 
      
      Hatte das Blockly Skript anfangs mit 1%-Schritten verwendet hier wurde es meinem NUC dann aber immer zuviel wenn er die Rollladen gemeinsam verfahren musste. Dies mache ich jetzt zusätzlich noch im Abstand von 1 MInute von Rollladen zu Rollladen.
      
      Eventuell kann dieses Skript jemand im Forum gebrauchen
      
      Gruß
      
      mhimc
      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        danke fuers teilen :), koenntest du auch einen screenshot des block reinstellen das hielt (vor allem auf tapatalk) zum verstaendnis.

        1 Reply Last reply Reply Quote 0
        • M
          my_home_is_my_castle last edited by

          Hallo Dutchman,

          hier die Blocklys.

          1455_blockly1.png
          1455_blockly2.png

          Gruß

          mhimc

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

            Hallo my_home_is_my_castle

            Wenn das wireless wäre gäbe es eine Katastrophe.

            So kostet das nur Rechenleistung.

            Aber funktioniert das auch?

            Fährst Du nur rauf und runter?

            Oder fährst Du auch mal 100% -> 20% -> 50% -> 20% -> 100%?

            Hier war schon mal eine Diskussion. http://forum.iobroker.net/viewtopic.php … llo#p92152

            Grüße

            1 Reply Last reply Reply Quote 0
            • M
              my_home_is_my_castle last edited by

              Hallo Rantanplan,

              kannst du mir sagen warum es bei wireless eine Katastrophe wäre?

              Hast du mir einen Tipp oder sogar ein Bsp., wie ich diese Funktion mit weniger Rechenleistung umsetze?

              Funktioniert eigentlich ganz gut, ja. Zu Beginn hatte ich wie in deinem Link auch diskutiert, die gleiche Zeit für Runter und Hoch genommen, dies ist aber nach ein paar Tagen nicht mehr schön anzusehen 😄 . Anfangs hatte ich mit 1%-Schritten gearbeitet, jedoch kam nach einer Weile im Log die Meldung "….you are sending to fast". Dann habe ich es auf 5%-Schritte geändert und gleichzeizitg Bei der Astrosteuerung einen Verstz von je 1 Minute von Rollladen gemacht. Die manuelle Steuerung funktioniert "Runter-Stop-Hoch-Stop" usw..

              Aktuell fahre ich automatisiert nur Hoch und Runter, dies möchte ich in nächster Zeit aber noch mit Szenen für z.B. Fernsehen erweitern. Hier kann ich dann ja den aktuellen Wert abfragen und dementsprechend Runter oder Hoch fahren.

              Gruß

              mhimc

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

                @my_home_is_my_castle:

                kannst du mir sagen warum es bei wireless eine Katastrophe wäre? `
                Der entstehende Funkverkehr wäre enorm. Und bei Funksystemen gibt es den DutyCycle.

                Bei wired gibt es wohl auch eine Begrenzung "…you are sending to fast..."

                @my_home_is_my_castle:

                Hast du mir einen Tipp oder sogar ein Bsp., wie ich diese Funktion mit weniger Rechenleistung umsetze? `
                Leider nein.

                Wie ich das in dem anderen Thread schon gesagt habe, halte ich das für nicht machbar.

                Grüße

                1 Reply Last reply Reply Quote 0
                • M
                  my_home_is_my_castle last edited by

                  Hallo Rantanplan,

                  aber die Ausgänge werden doch nur einmal zum Starten und Stoppen angsteuert (dazu noch jeweils der entgegengesetzte Ausgang um sicherzustellen das nicht beide Ausgänge für Hoch und Runter gleichzeitig gesetzt sind). Da dürfte doch nicht zuviel "Verkehr" zustande kommen, oder?

                  Gruß

                  mhimc

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  843
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

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