Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Fertiges Blockly zum Zählen der offenen Rolläden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Fertiges Blockly zum Zählen der offenen Rolläden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 3 Kommentatoren 588 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • madingM Online
    madingM Online
    mading
    schrieb am zuletzt editiert von mading
    #1

    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>
    
    MartinPM 1 Antwort Letzte Antwort
    0
    • madingM 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>
      
      MartinPM Online
      MartinPM Online
      MartinP
      schrieb am zuletzt editiert von
      #2

      @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 ...

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
      Linux pve 6.17.9-1-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      madingM 2 Antworten Letzte Antwort
      0
      • MartinPM MartinP

        @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 ...

        madingM Online
        madingM Online
        mading
        schrieb am zuletzt editiert von
        #3

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

        MartinPM 1 Antwort Letzte Antwort
        0
        • madingM mading

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

          MartinPM Online
          MartinPM Online
          MartinP
          schrieb am zuletzt editiert von
          #4

          @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

          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
          Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
          Linux pve 6.17.9-1-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • MartinPM MartinP

            @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-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @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

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            1 Antwort Letzte Antwort
            1
            • MartinPM MartinP

              @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 ...

              madingM Online
              madingM Online
              mading
              schrieb am zuletzt editiert von
              #6

              @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.

              MartinPM 1 Antwort Letzte Antwort
              0
              • madingM mading

                @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.

                MartinPM Online
                MartinPM Online
                MartinP
                schrieb am zuletzt editiert von MartinP
                #7

                @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 ...

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                Linux pve 6.17.9-1-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                haus-automatisierungH 1 Antwort Letzte Antwort
                0
                • MartinPM 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-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @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.

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  MartinPM 1 Antwort Letzte Antwort
                  0
                  • haus-automatisierungH haus-automatisierung

                    @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.

                    MartinPM Online
                    MartinPM Online
                    MartinP
                    schrieb am zuletzt editiert von
                    #9

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

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

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                    Linux pve 6.17.9-1-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    1 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    669

                    Online

                    32.6k

                    Benutzer

                    82.3k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe