Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Fertiges Blockly zum Zählen der offenen Rolläden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Fertiges Blockly zum Zählen der offenen Rolläden

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

      Hi,

      ich habe mir analog zu den Beispielen von offenen Fenstern, ein Blockly geschrieben, dass zählt, wie viele Rolläden offen (=100%), geschlossen (=0%) oder halb offen (zwischen 0 und 100%) sind. Bei mir kommen hmip-broll Aktoren zum Einsatz.

      Ihr müsst dazu bei allen Rollädenaktoren in den Datenpunkten noch z.B. RollaedenZaehlen zuweisen. Dafür müsst ihr über den Aufzählungen-Tab noch "RollaedenZaehlen" hinzufügen und dann in den Objekten zuweisen.

      31558a7e-c226-43f5-b70f-70c644937b66-grafik.png

      214a2a5d-829d-46e2-a787-77f6c62a78f0-grafik.png

      Das Skript schreibt in eigene Datenpunkte (werden mit beim ersten Start angelegt):

      • sind alle zu (boolean)
      • sind alle offen (boolean)
      • Anzahl offen
      • Anzahl geschlossen
      • Anzahl halb offen

      ed084ec9-ad8e-4b9a-a994-93f3451dc701-grafik.png

      Vielleicht kann es ja der ein oder andere gebrauchen.

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="~fXmm]cs9@kWJtnzgMdY">x</variable>
          <variable id="%?VN@CIuprPL^)/Vq+J%">y</variable>
          <variable id="f-jw%YzIkQ|7M7aZ_5H$">z</variable>
          <variable id="af3}6;=EWK*5OziK#}WO">i</variable>
        </variables>
        <block type="create" id="@*7aXYReA;^u7ccg^?fc" x="-487" y="-437">
          <field name="NAME">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenHalbOffen</field>
          <value name="VALUE">
            <block type="text" id="D)q9N%ag2=-L1Cn2RJ|p">
              <field name="TEXT">0</field>
            </block>
          </value>
          <value name="COMMON">
            <block type="text" id="B,LYkW^q0HfMDRk.L/eb">
              <field name="TEXT">{ "type": "number", "min": 0, "max": 100}</field>
            </block>
          </value>
          <next>
            <block type="create" id="x/A|wi9@7jWRtz%b=iEW">
              <field name="NAME">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenOffen</field>
              <value name="VALUE">
                <block type="text" id="pZU~[}L9B@VdlSDo{3a)">
                  <field name="TEXT">0</field>
                </block>
              </value>
              <value name="COMMON">
                <block type="text" id="SNsh*w1VgN~SOV#$q/s%">
                  <field name="TEXT">{ "type": "number", "min": 0, "max": 100}</field>
                </block>
              </value>
              <next>
                <block type="create" id="2a/[^FldGCdHM@V3hB45">
                  <field name="NAME">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenGeschlossen</field>
                  <value name="VALUE">
                    <block type="text" id="Dk#a(:1E#o(9:EUma]r;">
                      <field name="TEXT">0</field>
                    </block>
                  </value>
                  <value name="COMMON">
                    <block type="text" id="|-t0B/@/x$`+_k;,)qm{">
                      <field name="TEXT">{ "type": "number", "min": 0, "max": 100}</field>
                    </block>
                  </value>
                  <next>
                    <block type="create" id=":J/n$$91pUDc{*/_ks)L">
                      <field name="NAME">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenAllezu</field>
                      <value name="VALUE">
                        <block type="text" id="5L2Bvg$W_oeB@IW*N)4t">
                          <field name="TEXT">false</field>
                        </block>
                      </value>
                      <value name="COMMON">
                        <block type="text" id="ej:u%iJV!9Xvg[-hwY)t">
                          <field name="TEXT">{ "type": "boolean"}</field>
                        </block>
                      </value>
                      <next>
                        <block type="create" id="4T*f=r^KbuFu)==Wi]?_">
                          <field name="NAME">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenAlleOffen</field>
                          <value name="VALUE">
                            <block type="text" id="2Qx6e6COg[x(Pc3SSc1.">
                              <field name="TEXT">false</field>
                            </block>
                          </value>
                          <value name="COMMON">
                            <block type="text" id="RRc}4`g_vUdf]Y{|]sg$">
                              <field name="TEXT">{ "type": "boolean"}</field>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </next>
        </block>
        <block type="on_ext" id="TQx$s0oyxmN_V)~[iKTS" x="262" y="-12">
          <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="-b9]cCOxK+rJk=rNg#u(">
              <field name="oid">default</field>
            </shadow>
            <block type="selector" id=";kt]4=H)NB2?9{Udat+U">
              <field name="TEXT">state[id=*](functions=RollaedenZaehlen)</field>
            </block>
          </value>
          <statement name="STATEMENT">
            <block type="variables_set" id="@KB*bPajWnxY)XG[bJg,">
              <field name="VAR" id="~fXmm]cs9@kWJtnzgMdY">x</field>
              <value name="VALUE">
                <block type="math_number" id="0DS~L3[Q$(^K|?kvMO:/">
                  <field name="NUM">0</field>
                </block>
              </value>
              <next>
                <block type="variables_set" id="ZWhUhZIZvLShVf1?~8~Q">
                  <field name="VAR" id="%?VN@CIuprPL^)/Vq+J%">y</field>
                  <value name="VALUE">
                    <block type="math_number" id="/+J_x3OfNX/TA9V_=85$">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                  <next>
                    <block type="variables_set" id="wYN@EdtYjPE(=j=)D-l*">
                      <field name="VAR" id="f-jw%YzIkQ|7M7aZ_5H$">z</field>
                      <value name="VALUE">
                        <block type="math_number" id="R5+NHv/N@n/dS}tc;Bh,">
                          <field name="NUM">0</field>
                        </block>
                      </value>
                      <next>
                        <block type="controls_forEach" id="Q2F(YOTb(|I2`1u)*#QG">
                          <field name="VAR" id="af3}6;=EWK*5OziK#}WO">i</field>
                          <value name="LIST">
                            <block type="selector" id="WN4%kE2xoScAj%kwMg@}">
                              <field name="TEXT">state[id=*](functions=RollaedenZaehlen)</field>
                            </block>
                          </value>
                          <statement name="DO">
                            <block type="controls_if" id="[CK9x=`~P|N;7Kix/t#~">
                              <mutation elseif="1" else="1"></mutation>
                              <value name="IF0">
                                <block type="logic_compare" id="Sl}%:}zTmdB]1E1iEjeD">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value_var" id="N]gjyA?Nz)3j0eSYYzy!">
                                      <field name="ATTR">val</field>
                                      <value name="OID">
                                        <shadow type="field_oid" id="HuJ+#G{11q*Wc)+:^CXl">
                                          <field name="oid">Object ID</field>
                                        </shadow>
                                        <block type="variables_get" id=",=9@wGeSb29pCK#fQPEc">
                                          <field name="VAR" id="af3}6;=EWK*5OziK#}WO">i</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="`8Ms,i0w}){H+;*elYR|">
                                      <field name="NUM">100</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="math_change" id="vb`7V[9cir{X}r5)P){u">
                                  <field name="VAR" id="~fXmm]cs9@kWJtnzgMdY">x</field>
                                  <value name="DELTA">
                                    <shadow type="math_number" id="Gy}yn:Tj.LSCYm|@|LeG">
                                      <field name="NUM">1</field>
                                    </shadow>
                                  </value>
                                </block>
                              </statement>
                              <value name="IF1">
                                <block type="logic_compare" id="B_qbzCxJ4y^VOQ2w/aN4">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value_var" id="KDEY4S2:otSr{jH(Muc.">
                                      <field name="ATTR">val</field>
                                      <value name="OID">
                                        <shadow type="field_oid" id="HuJ+#G{11q*Wc)+:^CXl">
                                          <field name="oid">Object ID</field>
                                        </shadow>
                                        <block type="variables_get" id=":q22VAcb*oC5U/G8QT50">
                                          <field name="VAR" id="af3}6;=EWK*5OziK#}WO">i</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="Rgq#4P1HGn8-VhUpv.D$">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO1">
                                <block type="math_change" id="v+|mOhsYmj=I40l,V3)D">
                                  <field name="VAR" id="%?VN@CIuprPL^)/Vq+J%">y</field>
                                  <value name="DELTA">
                                    <shadow type="math_number" id="(Ng4fYlKo:=WTT^*97)w">
                                      <field name="NUM">1</field>
                                    </shadow>
                                  </value>
                                </block>
                              </statement>
                              <statement name="ELSE">
                                <block type="math_change" id="8$^@!+,mJ4uUREN5NTpG">
                                  <field name="VAR" id="f-jw%YzIkQ|7M7aZ_5H$">z</field>
                                  <value name="DELTA">
                                    <shadow type="math_number" id=")h09jEa*|/tE-FTbQA!N">
                                      <field name="NUM">1</field>
                                    </shadow>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </statement>
                          <next>
                            <block type="comment" id="w!FjI4awA[-^G37I:x2%">
                              <field name="COMMENT">Es gibt 16 Rolläden</field>
                              <next>
                                <block type="controls_if" id="z)Qv5[`t*oGo2al*uFFk">
                                  <mutation else="1"></mutation>
                                  <value name="IF0">
                                    <block type="logic_compare" id="/.x_MbRw2wzE+FENHGp8">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="variables_get" id="{N!cV*0TQ_`MEBsI2hM-">
                                          <field name="VAR" id="~fXmm]cs9@kWJtnzgMdY">x</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="math_number" id="[Au:6vJ{tXy@4q5aBIVa">
                                          <field name="NUM">16</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="update" id="2ZL0]N-YqobY*YF{~$c]">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenAlleOffen</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id=",aGg4Z9yzCy)g9o+xdDg">
                                          <field name="BOOL">TRUE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                  <statement name="ELSE">
                                    <block type="update" id="x-o8PD^M6am:uZ|QK31T">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenAlleOffen</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="n|2.mBsLs?fG*lE7GI,E">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                  <next>
                                    <block type="controls_if" id="z4/A8YO-.%6oL$9zbKcB">
                                      <mutation else="1"></mutation>
                                      <value name="IF0">
                                        <block type="logic_compare" id="?]~7CyjJ-Lsev2j{]sI1">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="variables_get" id="Aj-k2hm/e6[[Kjo,0f81">
                                              <field name="VAR" id="%?VN@CIuprPL^)/Vq+J%">y</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="math_number" id="Z6sowd8o7$)P9Cp.^G!a">
                                              <field name="NUM">16</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <statement name="DO0">
                                        <block type="update" id="jGvA.U1n.bDC6XFO[S:H">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenAllezu</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="logic_boolean" id="AOA)?J57OG++KqLlg[RA">
                                              <field name="BOOL">TRUE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                      <statement name="ELSE">
                                        <block type="update" id="2@/ab#4({`k-4rsItRGq">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenAllezu</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="logic_boolean" id="_Xf@]hjMx0/@)^nKd^nv">
                                              <field name="BOOL">FALSE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                      <next>
                                        <block type="controls_if" id="~.ZJ^B9{Z1`0]$Um19t{">
                                          <mutation else="1"></mutation>
                                          <value name="IF0">
                                            <block type="logic_compare" id="au69C``=={W5NkQ^fH0]">
                                              <field name="OP">NEQ</field>
                                              <value name="A">
                                                <block type="math_arithmetic" id="!9bYaQ7FUp$jHWmYWK.-">
                                                  <field name="OP">ADD</field>
                                                  <value name="A">
                                                    <shadow type="math_number" id="H;R]%D2FN~A$*7uDq|CG">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="math_arithmetic" id="]8Q3DG-a9-H50~-:f^RD">
                                                      <field name="OP">ADD</field>
                                                      <value name="A">
                                                        <shadow type="math_number" id=")S9s].H#-vXsJVE?}Fth">
                                                          <field name="NUM">1</field>
                                                        </shadow>
                                                        <block type="variables_get" id="T%Rhb9/M2(u6/]W.258^">
                                                          <field name="VAR" id="~fXmm]cs9@kWJtnzgMdY">x</field>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <shadow type="math_number" id="vYm,3L+S;O[ANr5*Wcx7">
                                                          <field name="NUM">1</field>
                                                        </shadow>
                                                        <block type="variables_get" id="e|DX2wD#3pFI1s(njeXV">
                                                          <field name="VAR" id="%?VN@CIuprPL^)/Vq+J%">y</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <shadow type="math_number" id="GT2Vph#g^;zyIT:P![d?">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="variables_get" id="L7H++Qn%,lO%^esTP}(M">
                                                      <field name="VAR" id="f-jw%YzIkQ|7M7aZ_5H$">z</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <block type="math_number" id="^U6fc=6XEZwWfy!KxH4$">
                                                  <field name="NUM">16</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <statement name="DO0">
                                            <block type="update" id="ky1m/(AF[k;GC$O/bh#x">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                              <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenGeschlossen</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE">
                                                <block type="math_number" id="{OaI.w;Zv!Su~j51IO#{">
                                                  <field name="NUM">999</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="update" id="F[%1ADKG2C(uU/H%W064">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                  <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenHalbOffen</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="math_number" id="LsmNJhcc*}ty@6;lJGM5">
                                                      <field name="NUM">999</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="update" id="b,ug,L?Lu#8nrLeUoS~4">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                      <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenOffen</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="math_number" id="2P1`uX=8;vI(s(;hs`Nv">
                                                          <field name="NUM">999</field>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="telegram" id="/QJu7UV|4Hzz!oyb%2c{">
                                                          <field name="INSTANCE"></field>
                                                          <field name="LOG"></field>
                                                          <field name="SILENT">FALSE</field>
                                                          <field name="PARSEMODE">default</field>
                                                          <field name="ESCAPING">FALSE</field>
                                                          <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                                          <value name="MESSAGE">
                                                            <shadow type="text" id="ly)%rJ=Db$J,OdGuYbS[">
                                                              <field name="TEXT">Rolladen Zähl Skript: Anzahl gezählter Rolläden stimmt nicht!</field>
                                                            </shadow>
                                                          </value>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                          <statement name="ELSE">
                                            <block type="update" id="NXXhKjEE=fN[VGr/ctC|">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                              <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenGeschlossen</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE">
                                                <block type="variables_get" id="vDxGi}KzOj+cclRRfe3Y">
                                                  <field name="VAR" id="%?VN@CIuprPL^)/Vq+J%">y</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="update" id="cg`{=FqpTT2rPj{+e%/E">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                  <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenHalbOffen</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="variables_get" id="qmIb*GO8eDE$j$!5-y7V">
                                                      <field name="VAR" id="f-jw%YzIkQ|7M7aZ_5H$">z</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="update" id="YTE_ksjr3%IHH~Ih_}i=">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                      <field name="OID">0_userdata.0.EigeneDatenpunkte.Sonstiges.RollaedenOffen</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="variables_get" id="%[W0C*FjDFA*0_xw$!o$">
                                                          <field name="VAR" id="~fXmm]cs9@kWJtnzgMdY">x</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      MartinP 1 Reply Last reply Reply Quote 0
      • MartinP
        MartinP @mading last edited by

        @mading Wenn man seiner Buchführung traut, kann man das natürlich auch in einem kleineren kompakteren Skript ausführen.

        Man muss bei jeder Änderung nur den Gesamt-Zähler für den vorherigen Zustand der jeweils veränderten Rollade um 1 vermindern, und den Gesamt-Zähler für den neuen Zustand der Rollade um 1 erhöhen.

        Dein Script hat den Vorteil, dass das Bild komplett neu durch Abfrage der entsprechenden Datenpukte aufgebaut wird, und man nicht nur aufgrund der Änderung EINES Zustandes die neuen Zustandswerte ermittelt.

        Der Nachteil ist, dass man eben alle Datenpunkte durchgehen muss, was ggfs eine gewisse Last bedeutet...

        Dein Script geht in meinen Augen etwas übervorsichtig an die Sache heran ...

        M 2 Replies Last reply Reply Quote 0
        • M
          mading @MartinP last edited by

          @martinp hey, danke für das Feedback und guter Punkt, stimmt!

          MartinP 1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP @mading last edited by

            @mading Wobei ich auch nachlesen müsste, wie man herausfinden kann, WELCHES der Elemente aus der Liste den Trigger ausgelöst hat.

            Ich bin aber absolut sicher, dass es da etwas gibt ....

            Ich automatisiere mein Haus aktuell noch sehr punktuell, da gibt es noch nicht viel "gleiches" was ich in solcher Art Blocklys verarbeiten müsste ...

            Meine Rolladen werden noch von alten Billig-Schaltern (DUOMATIC 50) mit winzigen Tasten und Displays gesteuert ... nicht einmal ein Jahreskalender ...
            d50c7a3e-de72-4909-8d5d-ec6fb12f43d2-grafik.png

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @MartinP last edited by

              @martinp sagte in Fertiges Blockly zum Zählen der offenen Rolläden:

              wie man herausfinden kann, WELCHES der Elemente aus der Liste den Trigger ausgelöst hat.

              Du kannst die auslösende Objekt-ID einfach mit dem entsprechenden Baustein aus dem Trigger-Bereich rausbekommen:

              Screenshot 2024-02-29 at 11.47.28.png

              1 Reply Last reply Reply Quote 1
              • M
                mading @MartinP last edited by

                @martinp sagte in Fertiges Blockly zum Zählen der offenen Rolläden:

                Der Nachteil ist, dass man eben alle Datenpunkte durchgehen muss, was ggfs eine gewisse Last bedeutet...

                Beim nochmal drüber nachdenken: Du musst aber dennoch auf alle Rolläden spezifisch triggern, da du ja nicht weisst, welcher sich ändert. Ob sich da viel an der Last verändert (mein Trigger oder auf alle spezifisch triggern) vermag ich nicht zu sagen.

                MartinP 1 Reply Last reply Reply Quote 0
                • MartinP
                  MartinP @mading last edited by MartinP

                  @mading said in Fertiges Blockly zum Zählen der offenen Rolläden:

                  @martinp sagte in Fertiges Blockly zum Zählen der offenen Rolläden:

                  Der Nachteil ist, dass man eben alle Datenpunkte durchgehen muss, was ggfs eine gewisse Last bedeutet...

                  Beim nochmal drüber nachdenken: Du musst aber dennoch auf alle Rolläden spezifisch triggern, da du ja nicht weisst, welcher sich ändert. Ob sich da viel an der Last verändert (mein Trigger oder auf alle spezifisch triggern) vermag ich nicht zu sagen.

                  Siehe den Post von @haus-automatisierung vor Deinem.

                  Im Prinzip sollte das eine akademische Diskussion sein .... so oft werden die Rolladen nicht fahren. Optimieren wäre sinnvoll, wenn die Ereignisse von einer ähnlichen Sammlung von Datenpunkten nur so hereinprasseln ...

                  Nachtrag: Nichtsdestotrotz sollte man auffällige Zeitfresser in Skripten vermeiden. Die Skripte werden streng sequentiell nacheinander ausgeführt. (kein Multitasking). Solange ein Skript bearbeitet wird, müssen alle anderen Skripte auf ihre Bearbeitung warten ...

                  Meist sind aber die Skripte nicht so Zeitkritisch, dass ein paar Millisekunden Verzug ein Problem darstellen ...

                  haus-automatisierung 1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @MartinP last edited by

                    @martinp Es ist immer spannend, wenn einzelne Scripts hier im Detail optimiert werden sollen, während etliche Adapter alle paar Sekunden etwas tun. Wenn man wirklich so streng ist, müsste man also eigentlich Code-Reviews von allen Adaptern machen, bevor man diese selbst einsetzt.

                    Überleg mal, wie groß alleine der Performance-Hebel ist, wenn man nicht mehr "Alle States beim Start abonnieren" nutzen würde (im JavaScript-Adapter). Da spart man ohne Ende Ressourcen, aber kann halt vieles in Blockly nicht mehr nutzen (sondern müsste auf JavaScript ausweichen).

                    In diesem Fall ist es aus meiner Sicht total egal ob die paar Zeilen da öfter durchlaufen werden als nötig. Da kann man sich beruhigt neuen Themen widmen.

                    MartinP 1 Reply Last reply Reply Quote 0
                    • MartinP
                      MartinP @haus-automatisierung last edited by

                      @haus-automatisierung Schrieb ich ja, "akademische Diskussion"...

                      Würde aber den Code auch sicher übersichtlicher machen, wenn man da gezielt nur die Deltas bearbeitet...

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      980
                      Online

                      31.7k
                      Users

                      79.8k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      308
                      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