Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Lamellensteuerung mit shuttercontrol

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Lamellensteuerung mit shuttercontrol

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

      Ich bin mit shuttercontrol grundsätzlich sehr zufrieden, allerdings kann ich damit nicht das volle Potential meiner Raffstores ausnutzen, vor allem die Möglichkeit die Lamellen. schräg zu stellen während des Sonnenschutzes.

      Bitte um Feedback ob ich es umsetzen kann oder es nicht funktioniert wird.

      Die Idee:
      ich erstelle für alle 12 Shelly 2.5 einen eigenen Datenpunkt für das LEVEL und lasse diesen vom shuttercontrol ändern.

      dadurch greife ich nicht direkt in die Funktion von shuttercontrol ein, was man ja vermeiden soll (wegen manu_mode...)
      ich mach mir dann ein eigenes Skript (Blockly) welches dann auf die shuttercontrol Objekte triggert. Sobald also sunprotect aktiv ist und die Jalousie auf 100% runter fahren sollen greift mein Skript und ändert die echten Shelly datenpunkte zum runterfahren inkl Regel dass diese nach erreichen von 100% wieder zurück auf 98% fahren.

      Die "fake" Datenpunkte bleiben auf 100 wodurch shuttercontrol also nicht "gestört" wird.

      natürlich braucht es dann mehrere skripte die dann jeweils die shuttercontrol Aktivität an die echten Shelly datenpunkte weiterleitet.

      denkt ihr das wäre so durchführbar?

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @rtwl last edited by

        @rtwl sagte in Lamellensteuerung mit shuttercontrol - Idee umsetzbar?:

        ich mach mir dann ein eigenes Skript (Blockly) welches dann auf die shuttercontrol Objekte triggert. Sobald also sunprotect aktiv ist und die Jalousie auf 100% runter fahren sollen greift mein Skript und ändert die echten Shelly datenpunkte zum runterfahren inkl Regel dass diese nach erreichen von 100% wieder zurück auf 98% fahren.

        Das wäre auch mein Ansatz.

        Hab ich in der ersten Testphase von shuttercontrol auch gemacht und dann mit virtuellen Rollläden in der vis gearbeitet, bevor meine Angetraute mich des Hauses verwiesen hätte 😂

        rtwl 1 Reply Last reply Reply Quote 0
        • rtwl
          rtwl @Homoran last edited by

          @homoran
          das bedeutet du hast es auch so gehabt. Darf ich fragen warum nicht mehr? Keine Raffstores mehr, oder lag es an den zusätzlichen Skripten und das alles perfekt aufeinander abzustimmen?

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @rtwl last edited by

            @rtwl sagte in Lamellensteuerung mit shuttercontrol - Idee umsetzbar?:

            du hast es auch so gehabt.

            nicht die Lamellenverstellung, sondern das arbeiten mit "virtuellen" Rollläden in Form von eigenen Datenpunkten

            rtwl 1 Reply Last reply Reply Quote 0
            • rtwl
              rtwl @Homoran last edited by

              @homoran ah okay.

              das bedeutet auch, dass meine Idee rein theoretisch umsetzbar wäre. vorausgesetzt natürlich ich schaffe es mit meinem semi-wissen das ganze mit blockly umzusetzen.

              falls ich das mal Projekt (ja, für mich ist es ein Projekt) angehe, und Hilfe brauche, darf ich mich sicher hier melden, oder? ☺️

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @rtwl last edited by

                @rtwl sagte in Lamellensteuerung mit shuttercontrol - Idee umsetzbar?:

                darf ich mich sicher hier melden, oder? ️

                klar

                1 Reply Last reply Reply Quote 1
                • rtwl
                  rtwl last edited by

                  Da ich jetzt mit meiner Umsetzung fertig bin, und das System läuft, möchte ich gerne meine Lösung kurz herzeigen.

                  shuttercontrol werkt im Hintergrund mit allen Einstellungen vor sich hin, aber anstelle der Shelly Datenpunkte ändert shuttercontrol meine eigens dafür angelegten Datenpunkte bei 0_userdata. Das Blockly steuert dann die Rollläden. Das Gute daran ist, dass dadurch kein Rollladen mehr in den ManuMode wechseln kann. Eine Funktion die ich bei shuttercontrol vermisst habe.

                  Auch hab ich meine Shelly´s als Alias angelegt, um eine bessere Lesbarkeit der entsprechenden Datenpunkte zu haben und auch den eigentlichen Sinn der Alias´ zu haben um bei einem Shelly Tausch einfach umstellen zu können.

                  Im Skript starte ich oben mit dem Setzen dreier Variablen mit dem Inhalt der Datenpunkten die benötigt werden, um das Skript einfach kopieren zu können, und es Übersichtlich zu haben welche Datenpunkte verwendet werden.

                  Als Trigger dient der autoState Datenpunkt von shuttercontrol des entsprechenden Rollladens.

                  33d01f44-971c-4046-b512-5c544a8fb2f8-image.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id="q)f9GP/jFz4t%-_%Z%tA">Raff_Position</variable>
                     <variable id="+at.xAC_-@R]:{0o3MrT">Raff_Power</variable>
                     <variable id="+MO6|!y7I)[3x,`8Rcf2">Raff_State</variable>
                   </variables>
                   <block type="variables_set" id="MgO%*F8bDAC}#]eJDuhV" x="38" y="37">
                     <field name="VAR" id="q)f9GP/jFz4t%-_%Z%tA">Raff_Position</field>
                     <value name="VALUE">
                       <block type="text" id="-B8?7C)WN?z:mEvZBrK6">
                         <field name="TEXT">alias.0.Raff_Küche.Position</field>
                       </block>
                     </value>
                     <next>
                       <block type="variables_set" id="d=Ywt@@qvjby^VW_3#W)">
                         <field name="VAR" id="+at.xAC_-@R]:{0o3MrT">Raff_Power</field>
                         <value name="VALUE">
                           <block type="text" id="s%{Huhk_@YNPWUI5,nnM">
                             <field name="TEXT">alias.0.Raff_Küche.Power</field>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="@3#6Sfkj6yn*{;AL]Vs0">
                             <field name="VAR" id="+MO6|!y7I)[3x,`8Rcf2">Raff_State</field>
                             <value name="VALUE">
                               <block type="text" id="^k_yiB,G_^|Y8e/Fg?b-">
                                 <field name="TEXT">shuttercontrol.0.shutters.autoState.Küche</field>
                               </block>
                             </value>
                             <next>
                               <block type="on_ext" id="OWKn/i?Pior4N2la|d-Y">
                                 <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="6NT/DiF57Aij{Pox#Xh;">
                                     <field name="oid">shuttercontrol.0.shutters.autoState.Küche</field>
                                   </shadow>
                                   <block type="variables_get" id="eE*~n:IT9x{p)O[K*%|n">
                                     <field name="VAR" id="+MO6|!y7I)[3x,`8Rcf2">Raff_State</field>
                                   </block>
                                 </value>
                                 <statement name="STATEMENT">
                                   <block type="controls_if" id="jxV|^mqVYd:v/a|sxcP{">
                                     <mutation elseif="2"></mutation>
                                     <value name="IF0">
                                       <block type="logic_compare" id="aX3Wx|g{L^qZ/)qfX9-:">
                                         <field name="OP">EQ</field>
                                         <value name="A">
                                           <block type="on_source" id="4oFLlX-m5v=A|YC8N=m4">
                                             <field name="ATTR">state.val</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="text" id="1S`Q.ao#WT8}qm:/C=X$">
                                             <field name="TEXT">up</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="control_ex" id="DG8$=*bSJb9Qrs*:VzH%" inline="true">
                                         <field name="TYPE">false</field>
                                         <field name="CLEAR_RUNNING">FALSE</field>
                                         <value name="OID">
                                           <shadow type="field_oid" id="}=f`}e`}I_RnWv[zzgu.">
                                             <field name="oid">Object ID</field>
                                           </shadow>
                                           <block type="variables_get" id="=`w{HhqPrZRV;=(d7?j$">
                                             <field name="VAR" id="q)f9GP/jFz4t%-_%Z%tA">Raff_Position</field>
                                           </block>
                                         </value>
                                         <value name="VALUE">
                                           <shadow type="logic_boolean" id="HgX@$Xk=MWow;#$[3)#j">
                                             <field name="BOOL">TRUE</field>
                                           </shadow>
                                           <block type="math_number" id="hS-^9i7Skv[*MX7Z2CC(">
                                             <field name="NUM">100</field>
                                           </block>
                                         </value>
                                         <value name="DELAY_MS">
                                           <shadow type="math_number" id="`y2aKj|[QK|qxJvH2*,_">
                                             <field name="NUM">0</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </statement>
                                     <value name="IF1">
                                       <block type="logic_compare" id="U5N0Gq}Ta@`:g~2=N5!,">
                                         <field name="OP">EQ</field>
                                         <value name="A">
                                           <block type="on_source" id="N1yGA,]fSOR7hMkOMJ?7">
                                             <field name="ATTR">state.val</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="text" id="r;N!{_G`D7U*~NJt5OY5">
                                             <field name="TEXT">down</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO1">
                                       <block type="control_ex" id="o:rzf.qyH?Be5g}8lEOX" inline="true">
                                         <field name="TYPE">false</field>
                                         <field name="CLEAR_RUNNING">FALSE</field>
                                         <value name="OID">
                                           <shadow type="field_oid">
                                             <field name="oid">Object ID</field>
                                           </shadow>
                                           <block type="variables_get" id="V=zC]ghkz5idpQ]9F+hw">
                                             <field name="VAR" id="q)f9GP/jFz4t%-_%Z%tA">Raff_Position</field>
                                           </block>
                                         </value>
                                         <value name="VALUE">
                                           <shadow type="logic_boolean">
                                             <field name="BOOL">TRUE</field>
                                           </shadow>
                                           <block type="math_number" id="5y?+?|u2aw4ot},q[9}8">
                                             <field name="NUM">0</field>
                                           </block>
                                         </value>
                                         <value name="DELAY_MS">
                                           <shadow type="math_number" id="[T`T__b^4jZl2!tAm|Rb">
                                             <field name="NUM">0</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </statement>
                                     <value name="IF2">
                                       <block type="logic_compare" id="P/9KdM#z0L.x+cm:/#l-">
                                         <field name="OP">EQ</field>
                                         <value name="A">
                                           <block type="on_source" id="wS`w+k,q7_^S4lvI80gJ">
                                             <field name="ATTR">state.val</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="text" id="i+1h[W!?8u%ibPLW8ec9">
                                             <field name="TEXT">sunProtect</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO2">
                                       <block type="control_ex" id="n?4$di|`{?mulcXaCv{R" inline="true">
                                         <field name="TYPE">false</field>
                                         <field name="CLEAR_RUNNING">FALSE</field>
                                         <value name="OID">
                                           <shadow type="field_oid">
                                             <field name="oid">Object ID</field>
                                           </shadow>
                                           <block type="variables_get" id="|Oj^WR5MCJ6g|YlXj05(">
                                             <field name="VAR" id="q)f9GP/jFz4t%-_%Z%tA">Raff_Position</field>
                                           </block>
                                         </value>
                                         <value name="VALUE">
                                           <shadow type="logic_boolean">
                                             <field name="BOOL">TRUE</field>
                                           </shadow>
                                           <block type="math_number" id="%JY^)wD5Tthl`=llMoDe">
                                             <field name="NUM">0</field>
                                           </block>
                                         </value>
                                         <value name="DELAY_MS">
                                           <shadow type="math_number" id=";)6@U4rgEkOjNH:rnv7$">
                                             <field name="NUM">0</field>
                                           </shadow>
                                         </value>
                                         <next>
                                           <block type="controls_repeat_ext" id="(T1{Q^0Q6/(ijtG^(%KB" inline="true">
                                             <value name="TIMES">
                                               <shadow type="math_number" id="-J9Ok3AyXfO9*MS5xsog">
                                                 <field name="NUM">60</field>
                                               </shadow>
                                             </value>
                                             <statement name="DO">
                                               <block type="timeouts_wait" id="L%9*U66q|cT?j4%=QZ`P">
                                                 <field name="DELAY">1000</field>
                                                 <field name="UNIT">ms</field>
                                                 <next>
                                                   <block type="controls_if" id="b|)=k@Dc]ea]bB)3b+b]">
                                                     <value name="IF0">
                                                       <block type="logic_compare" id="que/F_)U,0zk1/o@wq;2">
                                                         <field name="OP">LT</field>
                                                         <value name="A">
                                                           <block type="get_value_var" id="VVCt7$`[A,pWUEnn$as6">
                                                             <field name="ATTR">val</field>
                                                             <value name="OID">
                                                               <shadow type="text" id="dwhI3f,!ZT4^_UH$a$q!">
                                                                 <field name="TEXT"></field>
                                                               </shadow>
                                                               <block type="variables_get" id="6uOA3;sSf.Qb7j`H.Y4(">
                                                                 <field name="VAR" id="+at.xAC_-@R]:{0o3MrT">Raff_Power</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="math_number" id="(c(m!E,N^lDJpC5Dp]:9">
                                                             <field name="NUM">5</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="control_ex" id="4N/-u8{Xu%:wd(uc?!wk" inline="true">
                                                         <field name="TYPE">false</field>
                                                         <field name="CLEAR_RUNNING">FALSE</field>
                                                         <value name="OID">
                                                           <shadow type="field_oid">
                                                             <field name="oid">Object ID</field>
                                                           </shadow>
                                                           <block type="variables_get" id="a*.?`w5[MSFF)M(IxU{]">
                                                             <field name="VAR" id="q)f9GP/jFz4t%-_%Z%tA">Raff_Position</field>
                                                           </block>
                                                         </value>
                                                         <value name="VALUE">
                                                           <shadow type="logic_boolean">
                                                             <field name="BOOL">TRUE</field>
                                                           </shadow>
                                                           <block type="math_number" id="Bod/WUutw.0dz/]m1yAQ">
                                                             <field name="NUM">2</field>
                                                           </block>
                                                         </value>
                                                         <value name="DELAY_MS">
                                                           <shadow type="math_number" id="T)8Jx,P}vQ_~uwL;DgOi">
                                                             <field name="NUM">0</field>
                                                           </shadow>
                                                         </value>
                                                         <next>
                                                           <block type="controls_flow_statements" id="/T8e!{kX*}`=L+!7;7`$">
                                                             <field name="FLOW">BREAK</field>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                   <block type="comment" id="5tl/HJ!apOMv%HnQ7ixx" x="588" y="38">
                     <field name="COMMENT">alias.0.X.Position</field>
                     <next>
                       <block type="comment" id="rm::eS}B*KdARbD5o#]=">
                         <field name="COMMENT">alias.0.X.Power</field>
                         <next>
                           <block type="comment" id="(FWX4ofT,}S]Q5Z~srfW">
                             <field name="COMMENT">shuttercontrol.0.shutters.autoState.X</field>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                  </xml>
                  

                  Falls es Tipps/Ideen/Anregungen zum Blockly oder generell zur Vorgehensweise gibt: Immer her damit.

                  W 1 Reply Last reply Reply Quote 1
                  • W
                    watcherkb @rtwl last edited by

                    @rtwl kannst du bitte noch die Config des Shuttercontrol zu diesem Rollo zeigen? Steuerst du in dem Adapter dann deine Alias DPs?

                    rtwl 1 Reply Last reply Reply Quote 0
                    • rtwl
                      rtwl @watcherkb last edited by rtwl

                      @watcherkb bin grad nicht am PC, aber ja, in shuttercontrol sind nicht die shellys hinterlegt, sondern eigenes erstellte in userdata.0
                      per alias sind die shellys mit den DPs von userdata.0 verknüpft.

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

                        Hier die Einstellung beim Alias Adapter:
                        db87a2d7-63b9-4f47-b16d-7dfdbe95acab-image.png

                        Hier die Einstellung der Datenpunkte in Shuttercontrol:
                        Diese verwendeten Datenpunkte dienen nur dazu, damit Shuttercontrol irgendwas steuern kann - Sie werden in keinem Skript verwendet, weder als Trigger noch irgendwie beschrieben.
                        7c51a285-8eb8-4530-b212-d22e5b9dd837-image.png

                        @watcherkb irgendwie schräg, dass ich fast genau 1 Jahr später erneut diesen Thread suche, und dann feststelle, dass ich dir eine Antwort schuldig war. Sorry dafür. Aber vielleicht hilft es noch - ansonsten vielleicht jemand anderen. Auch war es blödsinn, den ich geschrieben habe - die Shelly und 0_userdata Objekte sind nicht per Alias "verbunden".

                        W 1 Reply Last reply Reply Quote 0
                        • W
                          watcherkb @rtwl last edited by

                          @rtwl auf diesen Tag habe ich genau 1 Jahr gewartet 😀 Danke für deine Antwort

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          958
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          1471
                          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