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. Blockly
  5. Gleitender Durchschnitt mit Blockly

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Gleitender Durchschnitt mit Blockly

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
67 Beiträge 15 Kommentatoren 14.1k Aufrufe 15 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.
  • K Offline
    K Offline
    kaybau
    schrieb am zuletzt editiert von
    #7

    Hallo,
    ich habe Dein Beispiel mal umgesetzt, um verschiedensten Messwerte zu glätten, z.b. die Windmessung
    6f9c4c8d-0c7c-417f-96ec-e45687a9f469-grafik.png

    Ich bin der Meinung die Reihenfolge der Befüllung der Liste passt nicht.
    Jedenfalls stimmen in meinem Beispiel die Werte nur in ca. 60% der Fälle (nach Gefühl), dann hab ich Ausreißer nach oben, die niemals dem (gleitenden) Durchschnitt entsprechen können.

    Hat jemand eine Idee?

    <xml xmlns="http://www.w3.org/1999/xhtml">
      <variables>
        <variable type="" id=",w^.=D}$CQ[V7pzCL72J">Liste</variable>
        <variable type="" id="|nsSA#%f}nMpDF9f[%s~">Index</variable>
        <variable type="" id="y/U;,Qb.Nr8Oo+/`~hP~">Summe</variable>
        <variable type="" id="hGz@,GqUkjk#,:XaV}MP">i</variable>
      </variables>
      <block type="variables_set" id="RTUA!,2m0j#}}ko7OBoB" x="-662" y="138">
        <field name="VAR" id=",w^.=D}$CQ[V7pzCL72J" variabletype="">Liste</field>
        <value name="VALUE">
          <block type="lists_repeat" id="(=LzJ5)|$oc[A);}JvJS">
            <value name="NUM">
              <shadow type="math_number" id="87]Qx,xmkMD!$Q@/1@;)">
                <field name="NUM">10</field>
              </shadow>
            </value>
            <value name="ITEM">
              <block type="get_value" id="3~*kY|^$rA,s(p,qczz[">
                <field name="ATTR">val</field>
                <field name="OID">javascript.0.Wetterstation.Wind</field>
              </block>
            </value>
          </block>
        </value>
        <next>
          <block type="variables_set" id="iW%C^9/JhHumbS#zg3)C">
            <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
            <value name="VALUE">
              <block type="math_number" id="AugG5vuP%[LOm2@_M+HJ">
                <field name="NUM">1</field>
              </block>
            </value>
            <next>
              <block type="on_ext" id="vFE,)!c?~Z$=KJQ[l.d`">
                <mutation items="1"></mutation>
                <field name="CONDITION">any</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="OSi=yG(ihidHOz.CC{,,">
                    <field name="oid">javascript.0.Wetterstation.Wind</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="lists_setIndex" id="Ue,2EJHPrBq4j%LV^^P.">
                    <mutation at="true"></mutation>
                    <field name="MODE">SET</field>
                    <field name="WHERE">FROM_START</field>
                    <value name="LIST">
                      <block type="variables_get" id="9Y5|dAIiYW;jqyDV^.12">
                        <field name="VAR" id=",w^.=D}$CQ[V7pzCL72J" variabletype="">Liste</field>
                      </block>
                    </value>
                    <value name="AT">
                      <block type="variables_get" id="(cD0-P+rOdV7[+VxX:;w">
                        <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                      </block>
                    </value>
                    <value name="TO">
                      <block type="get_value" id="X?~@4ti8Sr@d4P;=*/Gg">
                        <field name="ATTR">val</field>
                        <field name="OID">javascript.0.Wetterstation.Wind</field>
                      </block>
                    </value>
                    <next>
                      <block type="math_change" id="iHM7|{2:7es8frET@lbV">
                        <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                        <value name="DELTA">
                          <shadow type="math_number" id="Op~gK+*i3yG,NxAnX#E^">
                            <field name="NUM">1</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="controls_if" id="Ev=u_,#:ITq@sH4OiERd">
                            <value name="IF0">
                              <block type="logic_compare" id="DQ,9UZd*Y1s:1wALu{Gj">
                                <field name="OP">GT</field>
                                <value name="A">
                                  <block type="variables_get" id="#IdY8V@(1Ndfy0Oy;}O?">
                                    <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="math_number" id="1|5;Drd+s?+T}.0{*S7U">
                                    <field name="NUM">10</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="variables_set" id="!1H^6U]iK*T`dKg}_^_u">
                                <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                                <value name="VALUE">
                                  <block type="math_number" id="8SOkC-(XJySD(`SNe`d2">
                                    <field name="NUM">1</field>
                                  </block>
                                </value>
                              </block>
                            </statement>
                            <next>
                              <block type="variables_set" id="Pl1+j/wdFvVs[QD$eE-X">
                                <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                <value name="VALUE">
                                  <block type="math_number" id="fYZ5!wFM9_*Bt#+5KLOw">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="controls_for" id="HyJ*RpPrKT@0MdcOx^^e">
                                    <field name="VAR" id="hGz@,GqUkjk#,:XaV}MP" variabletype="">i</field>
                                    <value name="FROM">
                                      <shadow type="math_number" id="5HJ!2;[nfS,}XAw*nUMi">
                                        <field name="NUM">1</field>
                                      </shadow>
                                    </value>
                                    <value name="TO">
                                      <shadow type="math_number" id="ImZnUR}.I*E/h}#.|wy4">
                                        <field name="NUM">10</field>
                                      </shadow>
                                    </value>
                                    <value name="BY">
                                      <shadow type="math_number" id="K`1U_LE#RLKcqF!kwOE3">
                                        <field name="NUM">1</field>
                                      </shadow>
                                    </value>
                                    <statement name="DO">
                                      <block type="variables_set" id="}rJ2rUz6;aDQOHmvK@Oe">
                                        <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                        <value name="VALUE">
                                          <block type="math_arithmetic" id="%Y+JtUD?c46n_[O(n`8S">
                                            <field name="OP">ADD</field>
                                            <value name="A">
                                              <shadow type="math_number" id="Nurdy}zCf#G45e8womn.">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="variables_get" id="-A8H3G,#Tg4dBOKVy=Cv">
                                                <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="GS5E8aL*]O^Y6JVG?9LT">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="lists_getIndex" id="1}bWK9uFo;24|WfTq*@b">
                                                <mutation statement="false" at="true"></mutation>
                                                <field name="MODE">GET</field>
                                                <field name="WHERE">FROM_START</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="uJ59NT:qhOr?$9ji*YM;">
                                                    <field name="VAR" id=",w^.=D}$CQ[V7pzCL72J" variabletype="">Liste</field>
                                                  </block>
                                                </value>
                                                <value name="AT">
                                                  <block type="variables_get" id=":FZ]]msyos78Mjekn;Ac">
                                                    <field name="VAR" id="hGz@,GqUkjk#,:XaV}MP" variabletype="">i</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </statement>
                                    <next>
                                      <block type="update" id="5B:FCNmeZN+Qu{^R`z=Q">
                                        <mutation delay_input="true"></mutation>
                                        <field name="OID">0_userdata.0.Wetter.avg-Wind</field>
                                        <field name="WITH_DELAY">TRUE</field>
                                        <field name="DELAY_MS">10</field>
                                        <field name="UNIT">sec</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="VALUE">
                                          <block type="math_arithmetic" id="wONJ/pl_}L6Q0!xpIwS$">
                                            <field name="OP">DIVIDE</field>
                                            <value name="A">
                                              <shadow type="math_number" id=";%/}}]`uw?T22_tdBqT5">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="variables_get" id="_z`SsbiwcJJ1td:gT1{[">
                                                <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id=")FtUw``uljgXg$jxR@;U">
                                                <field name="NUM">10</field>
                                              </shadow>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </next>
      </block>
    </xml>
    

    Grüße,
    Kay

    paul53P 1 Antwort Letzte Antwort
    0
    • K kaybau

      Hallo,
      ich habe Dein Beispiel mal umgesetzt, um verschiedensten Messwerte zu glätten, z.b. die Windmessung
      6f9c4c8d-0c7c-417f-96ec-e45687a9f469-grafik.png

      Ich bin der Meinung die Reihenfolge der Befüllung der Liste passt nicht.
      Jedenfalls stimmen in meinem Beispiel die Werte nur in ca. 60% der Fälle (nach Gefühl), dann hab ich Ausreißer nach oben, die niemals dem (gleitenden) Durchschnitt entsprechen können.

      Hat jemand eine Idee?

      <xml xmlns="http://www.w3.org/1999/xhtml">
        <variables>
          <variable type="" id=",w^.=D}$CQ[V7pzCL72J">Liste</variable>
          <variable type="" id="|nsSA#%f}nMpDF9f[%s~">Index</variable>
          <variable type="" id="y/U;,Qb.Nr8Oo+/`~hP~">Summe</variable>
          <variable type="" id="hGz@,GqUkjk#,:XaV}MP">i</variable>
        </variables>
        <block type="variables_set" id="RTUA!,2m0j#}}ko7OBoB" x="-662" y="138">
          <field name="VAR" id=",w^.=D}$CQ[V7pzCL72J" variabletype="">Liste</field>
          <value name="VALUE">
            <block type="lists_repeat" id="(=LzJ5)|$oc[A);}JvJS">
              <value name="NUM">
                <shadow type="math_number" id="87]Qx,xmkMD!$Q@/1@;)">
                  <field name="NUM">10</field>
                </shadow>
              </value>
              <value name="ITEM">
                <block type="get_value" id="3~*kY|^$rA,s(p,qczz[">
                  <field name="ATTR">val</field>
                  <field name="OID">javascript.0.Wetterstation.Wind</field>
                </block>
              </value>
            </block>
          </value>
          <next>
            <block type="variables_set" id="iW%C^9/JhHumbS#zg3)C">
              <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
              <value name="VALUE">
                <block type="math_number" id="AugG5vuP%[LOm2@_M+HJ">
                  <field name="NUM">1</field>
                </block>
              </value>
              <next>
                <block type="on_ext" id="vFE,)!c?~Z$=KJQ[l.d`">
                  <mutation items="1"></mutation>
                  <field name="CONDITION">any</field>
                  <field name="ACK_CONDITION"></field>
                  <value name="OID0">
                    <shadow type="field_oid" id="OSi=yG(ihidHOz.CC{,,">
                      <field name="oid">javascript.0.Wetterstation.Wind</field>
                    </shadow>
                  </value>
                  <statement name="STATEMENT">
                    <block type="lists_setIndex" id="Ue,2EJHPrBq4j%LV^^P.">
                      <mutation at="true"></mutation>
                      <field name="MODE">SET</field>
                      <field name="WHERE">FROM_START</field>
                      <value name="LIST">
                        <block type="variables_get" id="9Y5|dAIiYW;jqyDV^.12">
                          <field name="VAR" id=",w^.=D}$CQ[V7pzCL72J" variabletype="">Liste</field>
                        </block>
                      </value>
                      <value name="AT">
                        <block type="variables_get" id="(cD0-P+rOdV7[+VxX:;w">
                          <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                        </block>
                      </value>
                      <value name="TO">
                        <block type="get_value" id="X?~@4ti8Sr@d4P;=*/Gg">
                          <field name="ATTR">val</field>
                          <field name="OID">javascript.0.Wetterstation.Wind</field>
                        </block>
                      </value>
                      <next>
                        <block type="math_change" id="iHM7|{2:7es8frET@lbV">
                          <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                          <value name="DELTA">
                            <shadow type="math_number" id="Op~gK+*i3yG,NxAnX#E^">
                              <field name="NUM">1</field>
                            </shadow>
                          </value>
                          <next>
                            <block type="controls_if" id="Ev=u_,#:ITq@sH4OiERd">
                              <value name="IF0">
                                <block type="logic_compare" id="DQ,9UZd*Y1s:1wALu{Gj">
                                  <field name="OP">GT</field>
                                  <value name="A">
                                    <block type="variables_get" id="#IdY8V@(1Ndfy0Oy;}O?">
                                      <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="1|5;Drd+s?+T}.0{*S7U">
                                      <field name="NUM">10</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="variables_set" id="!1H^6U]iK*T`dKg}_^_u">
                                  <field name="VAR" id="|nsSA#%f}nMpDF9f[%s~" variabletype="">Index</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="8SOkC-(XJySD(`SNe`d2">
                                      <field name="NUM">1</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                              <next>
                                <block type="variables_set" id="Pl1+j/wdFvVs[QD$eE-X">
                                  <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="fYZ5!wFM9_*Bt#+5KLOw">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="controls_for" id="HyJ*RpPrKT@0MdcOx^^e">
                                      <field name="VAR" id="hGz@,GqUkjk#,:XaV}MP" variabletype="">i</field>
                                      <value name="FROM">
                                        <shadow type="math_number" id="5HJ!2;[nfS,}XAw*nUMi">
                                          <field name="NUM">1</field>
                                        </shadow>
                                      </value>
                                      <value name="TO">
                                        <shadow type="math_number" id="ImZnUR}.I*E/h}#.|wy4">
                                          <field name="NUM">10</field>
                                        </shadow>
                                      </value>
                                      <value name="BY">
                                        <shadow type="math_number" id="K`1U_LE#RLKcqF!kwOE3">
                                          <field name="NUM">1</field>
                                        </shadow>
                                      </value>
                                      <statement name="DO">
                                        <block type="variables_set" id="}rJ2rUz6;aDQOHmvK@Oe">
                                          <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                          <value name="VALUE">
                                            <block type="math_arithmetic" id="%Y+JtUD?c46n_[O(n`8S">
                                              <field name="OP">ADD</field>
                                              <value name="A">
                                                <shadow type="math_number" id="Nurdy}zCf#G45e8womn.">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="variables_get" id="-A8H3G,#Tg4dBOKVy=Cv">
                                                  <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id="GS5E8aL*]O^Y6JVG?9LT">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="lists_getIndex" id="1}bWK9uFo;24|WfTq*@b">
                                                  <mutation statement="false" at="true"></mutation>
                                                  <field name="MODE">GET</field>
                                                  <field name="WHERE">FROM_START</field>
                                                  <value name="VALUE">
                                                    <block type="variables_get" id="uJ59NT:qhOr?$9ji*YM;">
                                                      <field name="VAR" id=",w^.=D}$CQ[V7pzCL72J" variabletype="">Liste</field>
                                                    </block>
                                                  </value>
                                                  <value name="AT">
                                                    <block type="variables_get" id=":FZ]]msyos78Mjekn;Ac">
                                                      <field name="VAR" id="hGz@,GqUkjk#,:XaV}MP" variabletype="">i</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                      <next>
                                        <block type="update" id="5B:FCNmeZN+Qu{^R`z=Q">
                                          <mutation delay_input="true"></mutation>
                                          <field name="OID">0_userdata.0.Wetter.avg-Wind</field>
                                          <field name="WITH_DELAY">TRUE</field>
                                          <field name="DELAY_MS">10</field>
                                          <field name="UNIT">sec</field>
                                          <field name="CLEAR_RUNNING">FALSE</field>
                                          <value name="VALUE">
                                            <block type="math_arithmetic" id="wONJ/pl_}L6Q0!xpIwS$">
                                              <field name="OP">DIVIDE</field>
                                              <value name="A">
                                                <shadow type="math_number" id=";%/}}]`uw?T22_tdBqT5">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="variables_get" id="_z`SsbiwcJJ1td:gT1{[">
                                                  <field name="VAR" id="y/U;,Qb.Nr8Oo+/`~hP~" variabletype="">Summe</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id=")FtUw``uljgXg$jxR@;U">
                                                  <field name="NUM">10</field>
                                                </shadow>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      

      Grüße,
      Kay

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #8

      @kaybau
      Besseres Beispiel.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      K 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @kaybau
        Besseres Beispiel.

        K Offline
        K Offline
        kaybau
        schrieb am zuletzt editiert von
        #9

        @paul53 : Besten Dank für das neue Beispiel. Sieht gut aus ;)

        Marius_90M 1 Antwort Letzte Antwort
        0
        • K kaybau

          @paul53 : Besten Dank für das neue Beispiel. Sieht gut aus ;)

          Marius_90M Offline
          Marius_90M Offline
          Marius_90
          schrieb am zuletzt editiert von
          #10

          Ich hatte eben auch das Problem mit einem Schieberegister.
          Habe es mir als Funktion mal eben selbst gebaut.

          Ich glätte damit meinen PH-Messwert von Pool, der sprang mir einfach zu sehr auf und ab.
          Ist etwas aufwändiger, aber nachvollziehbar

          d5edaa58-35c0-4c10-bdc9-34869ff4254a-image.png

          AsgothianA 1 Antwort Letzte Antwort
          0
          • Marius_90M Marius_90

            Ich hatte eben auch das Problem mit einem Schieberegister.
            Habe es mir als Funktion mal eben selbst gebaut.

            Ich glätte damit meinen PH-Messwert von Pool, der sprang mir einfach zu sehr auf und ab.
            Ist etwas aufwändiger, aber nachvollziehbar

            d5edaa58-35c0-4c10-bdc9-34869ff4254a-image.png

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            schrieb am zuletzt editiert von Asgothian
            #11

            @marius-kossinna sagte in Gleitender Durchschnitt mit Blockly:

            Ich glätte damit meinen PH-Messwert von Pool, der sprang mir einfach zu sehr auf und ab.
            Ist etwas aufwändiger, aber nachvollziehbar

            Etwas aufwändiger ? Das ist ein Understatement.

            • Warum nutzt du überhaupt eine Liste wenn du sowieso jede variable einzeln hältst. Du kannst doch beim Umschreiben auch gleich addieren
            • 10 Variablen von Hand "schieben" ? meh.

            Wenn schon Schieberegister, dann wenigstens so:

            Screenshot 2021-07-12 at 16.02.09.png

            A.

            Korrektur: Fehler im screenshot.

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            ChrisNettC paul53P K 3 Antworten Letzte Antwort
            1
            • AsgothianA Asgothian

              @marius-kossinna sagte in Gleitender Durchschnitt mit Blockly:

              Ich glätte damit meinen PH-Messwert von Pool, der sprang mir einfach zu sehr auf und ab.
              Ist etwas aufwändiger, aber nachvollziehbar

              Etwas aufwändiger ? Das ist ein Understatement.

              • Warum nutzt du überhaupt eine Liste wenn du sowieso jede variable einzeln hältst. Du kannst doch beim Umschreiben auch gleich addieren
              • 10 Variablen von Hand "schieben" ? meh.

              Wenn schon Schieberegister, dann wenigstens so:

              Screenshot 2021-07-12 at 16.02.09.png

              A.

              Korrektur: Fehler im screenshot.

              ChrisNettC Offline
              ChrisNettC Offline
              ChrisNett
              schrieb am zuletzt editiert von
              #12

              @asgothian

              Hi, kannst du das mal als export hochladen?

              Christian

              AsgothianA 1 Antwort Letzte Antwort
              0
              • ChrisNettC ChrisNett

                @asgothian

                Hi, kannst du das mal als export hochladen?

                Christian

                AsgothianA Offline
                AsgothianA Offline
                Asgothian
                Developer
                schrieb am zuletzt editiert von
                #13

                @christian-sandkaulen

                Könnte ich.

                Selberbauen lehrt. Also bau mal :) Letztendlich sollten alle Blöcke eindeutig sein. Einzig der "state value" ist kritisch - dieser stammt aus dem "trigger" Bereich und ist da mit "Objekt ID" vorgesetzt.

                A.

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                1 Antwort Letzte Antwort
                1
                • AsgothianA Asgothian

                  @marius-kossinna sagte in Gleitender Durchschnitt mit Blockly:

                  Ich glätte damit meinen PH-Messwert von Pool, der sprang mir einfach zu sehr auf und ab.
                  Ist etwas aufwändiger, aber nachvollziehbar

                  Etwas aufwändiger ? Das ist ein Understatement.

                  • Warum nutzt du überhaupt eine Liste wenn du sowieso jede variable einzeln hältst. Du kannst doch beim Umschreiben auch gleich addieren
                  • 10 Variablen von Hand "schieben" ? meh.

                  Wenn schon Schieberegister, dann wenigstens so:

                  Screenshot 2021-07-12 at 16.02.09.png

                  A.

                  Korrektur: Fehler im screenshot.

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #14

                  @asgothian sagte: Wenn schon Schieberegister, dann wenigstens so:

                  Ein Trigger auf "wurde geändert" ist für einen gleitenden Durchschnitt ungeeignet, da so Werte, die längere Zeit konstant sind, untergewichtet werden.
                  Bei Adaptern, die zyklisch aktualisieren (pollen), kann auf "wurde aktualisiert" getriggert werden. Andernfalls muss ein Zeitplan als Trigger verwendet werden.

                  Da nach Skriptstart die Liste erst einmal wächst, darf zur Mittelwertbildung nicht durch die Konstante 10, sondern es muss durch die Länge der Liste dividiert werden. Oder man verwendet gleich die mathematische Funktion "Mittelwert der Liste".

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  S 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @asgothian sagte: Wenn schon Schieberegister, dann wenigstens so:

                    Ein Trigger auf "wurde geändert" ist für einen gleitenden Durchschnitt ungeeignet, da so Werte, die längere Zeit konstant sind, untergewichtet werden.
                    Bei Adaptern, die zyklisch aktualisieren (pollen), kann auf "wurde aktualisiert" getriggert werden. Andernfalls muss ein Zeitplan als Trigger verwendet werden.

                    Da nach Skriptstart die Liste erst einmal wächst, darf zur Mittelwertbildung nicht durch die Konstante 10, sondern es muss durch die Länge der Liste dividiert werden. Oder man verwendet gleich die mathematische Funktion "Mittelwert der Liste".

                    S Online
                    S Online
                    schweiger2
                    schrieb am zuletzt editiert von
                    #15

                    @paul53

                    Hallo,

                    ich habe mir nach den angegebenen Hinweisen in diesen Thread die Steuerung gebaut, doch ich erhalte Fehlermeldungen und das Skript funktioniert nicht. Ich freue mich, wenn ihr einmal auf das Skript sehen könnt. Wo liegt der Hund begraben ?

                    dc0cfb1a-587e-4ef1-95f7-f68995d48096-image.png

                    Hier die Fehlermeldungen:

                    e4589a19-b741-4679-822d-0d15752cddac-image.png

                    Was mache ich falsch ?

                    Beste Grüße
                    schweiger2

                    paul53P 2 Antworten Letzte Antwort
                    0
                    • S schweiger2

                      @paul53

                      Hallo,

                      ich habe mir nach den angegebenen Hinweisen in diesen Thread die Steuerung gebaut, doch ich erhalte Fehlermeldungen und das Skript funktioniert nicht. Ich freue mich, wenn ihr einmal auf das Skript sehen könnt. Wo liegt der Hund begraben ?

                      dc0cfb1a-587e-4ef1-95f7-f68995d48096-image.png

                      Hier die Fehlermeldungen:

                      e4589a19-b741-4679-822d-0d15752cddac-image.png

                      Was mache ich falsch ?

                      Beste Grüße
                      schweiger2

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #16

                      @schweiger2 sagte: Was mache ich falsch ?

                      Verwende für "WIND_SPEED" und "ILLUMINATION" jeweils nur einen Trigger und arbeite die Befehle dort in der richtigen Reihenfolge ab.

                      Für den Teil "windig":

                      Bild_2021-07-19_134446.png

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • S schweiger2

                        @paul53

                        Hallo,

                        ich habe mir nach den angegebenen Hinweisen in diesen Thread die Steuerung gebaut, doch ich erhalte Fehlermeldungen und das Skript funktioniert nicht. Ich freue mich, wenn ihr einmal auf das Skript sehen könnt. Wo liegt der Hund begraben ?

                        dc0cfb1a-587e-4ef1-95f7-f68995d48096-image.png

                        Hier die Fehlermeldungen:

                        e4589a19-b741-4679-822d-0d15752cddac-image.png

                        Was mache ich falsch ?

                        Beste Grüße
                        schweiger2

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #17

                        @schweiger2 sagte: ich erhalte Fehlermeldungen

                        Anstelle von "setze für Letzte ein" selektiere "füge als Letzte ein":

                        Bild_2021-07-19_131423.png

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        S 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @schweiger2 sagte: ich erhalte Fehlermeldungen

                          Anstelle von "setze für Letzte ein" selektiere "füge als Letzte ein":

                          Bild_2021-07-19_131423.png

                          S Online
                          S Online
                          schweiger2
                          schrieb am zuletzt editiert von
                          #18

                          @paul53

                          Ich habe das jetzt so gebaut (letzten 2 Zeilen unten nur als Kennzeichen für den Beginn des anderen Blocks):

                          d96193a4-265a-4e83-8046-392714c8e2f0-image.png

                          Jetzt warte ich, ob neue Fehler im Log auftreten. Die Funktion - darum geht es ja eigentlich - des Skripts sehe ich mir im Nachhinein an, wenn keine Syntax-Fehler mehr aftauchen.

                          Besten Dank erst einmal.

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • S schweiger2

                            @paul53

                            Ich habe das jetzt so gebaut (letzten 2 Zeilen unten nur als Kennzeichen für den Beginn des anderen Blocks):

                            d96193a4-265a-4e83-8046-392714c8e2f0-image.png

                            Jetzt warte ich, ob neue Fehler im Log auftreten. Die Funktion - darum geht es ja eigentlich - des Skripts sehe ich mir im Nachhinein an, wenn keine Syntax-Fehler mehr aftauchen.

                            Besten Dank erst einmal.

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #19

                            @schweiger2 sagte: Ich habe das jetzt so gebaut

                            Den Wert, den der Trigger-Datenpunkt übergibt, magst Du wohl nicht?

                            Blockly_DP_Props.JPG

                            Zur Funktion "markise": Wenn level einmal auf 100 gesetzt wurde, bleibt er auf 100. Nach Skriptstart ist level erst einmal undefined, womit "steuere" meckern wird.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            S 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @schweiger2 sagte: Ich habe das jetzt so gebaut

                              Den Wert, den der Trigger-Datenpunkt übergibt, magst Du wohl nicht?

                              Blockly_DP_Props.JPG

                              Zur Funktion "markise": Wenn level einmal auf 100 gesetzt wurde, bleibt er auf 100. Nach Skriptstart ist level erst einmal undefined, womit "steuere" meckern wird.

                              S Online
                              S Online
                              schweiger2
                              schrieb am zuletzt editiert von
                              #20

                              @paul53

                              Hallo paul53,

                              sorry, den ersten Punkt kann ich fachlich nicht verstehen. Ich übergebe der Liste doch als letzten Listeneintrag den aktualisierten Wert aus dem Objekt "Wind Speed" des Wettersensors durch

                              2131dee1-8a27-422e-abee-b06551d76a91-image.png ,

                              oder wie meinst Du das ?

                              Im Protokoll finde ich jetzt keine errors mehr, das ist schonmal ein Teilerfolg dank Deiner Hilfe.

                              Zu level: verstehe ich, hoffe ich. Wenn ich "level" zu Beginn der Funktion "=0" setze, würde die Markise - wenn Sie z.B. auf 30% ausgefahren ist und "windig" und "dunkel" NICHT wahr sind, auf Null % (=komplett zu) fahren, oder ?

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • S schweiger2

                                @paul53

                                Hallo paul53,

                                sorry, den ersten Punkt kann ich fachlich nicht verstehen. Ich übergebe der Liste doch als letzten Listeneintrag den aktualisierten Wert aus dem Objekt "Wind Speed" des Wettersensors durch

                                2131dee1-8a27-422e-abee-b06551d76a91-image.png ,

                                oder wie meinst Du das ?

                                Im Protokoll finde ich jetzt keine errors mehr, das ist schonmal ein Teilerfolg dank Deiner Hilfe.

                                Zu level: verstehe ich, hoffe ich. Wenn ich "level" zu Beginn der Funktion "=0" setze, würde die Markise - wenn Sie z.B. auf 30% ausgefahren ist und "windig" und "dunkel" NICHT wahr sind, auf Null % (=komplett zu) fahren, oder ?

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von paul53
                                #21

                                @schweiger2 sagte: oder wie meinst Du das ?

                                Den identischen Wert wie "Wert vom Objekt WIND_SPEED" liefert die lokale Trigger-Variable Wert. Ist nur etwas eleganter (Ressourcen schonender).

                                @schweiger2 sagte in Gleitender Durchschnitt mit Blockly:

                                "windig" und "dunkel" NICHT wahr sind, auf Null % (=komplett zu) fahren, oder ?

                                Wahrscheinlich würde eine Warnung oder einer Error erzeugt. Was ist "0 % = komplett zu" bei einer Markise? Voll ausgefahren?
                                Soll die Markise nicht wieder ausfahren, wenn sich der Wind gelegt hat? Wenn doch, dann versuche es mal so:

                                Bild_2021-07-19_150915.png

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                S 1 Antwort Letzte Antwort
                                1
                                • paul53P paul53

                                  @schweiger2 sagte: oder wie meinst Du das ?

                                  Den identischen Wert wie "Wert vom Objekt WIND_SPEED" liefert die lokale Trigger-Variable Wert. Ist nur etwas eleganter (Ressourcen schonender).

                                  @schweiger2 sagte in Gleitender Durchschnitt mit Blockly:

                                  "windig" und "dunkel" NICHT wahr sind, auf Null % (=komplett zu) fahren, oder ?

                                  Wahrscheinlich würde eine Warnung oder einer Error erzeugt. Was ist "0 % = komplett zu" bei einer Markise? Voll ausgefahren?
                                  Soll die Markise nicht wieder ausfahren, wenn sich der Wind gelegt hat? Wenn doch, dann versuche es mal so:

                                  Bild_2021-07-19_150915.png

                                  S Online
                                  S Online
                                  schweiger2
                                  schrieb am zuletzt editiert von
                                  #22

                                  @paul53

                                  ahaaa, danke, ist schon geändert.

                                  Zum "level": 0% = 0% Helligkeit = komplett herausgefahren. Ja, dies ist für mich nur eine Schutzschaltung, wenn das Schließen mal vergessen wurde; das Öffnen möchte ich manuell selbst bestimmen.

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • S schweiger2

                                    @paul53

                                    ahaaa, danke, ist schon geändert.

                                    Zum "level": 0% = 0% Helligkeit = komplett herausgefahren. Ja, dies ist für mich nur eine Schutzschaltung, wenn das Schließen mal vergessen wurde; das Öffnen möchte ich manuell selbst bestimmen.

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #23

                                    @schweiger2 sagte: nur eine Schutzschaltung, wenn das Schließen mal vergessen wurde; das Öffnen möchte ich manuell selbst bestimmen.

                                    Dann mache es so (ohne Probleme mit undefined) :

                                    Bild_2021-07-19_152317.png

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    S 1 Antwort Letzte Antwort
                                    1
                                    • paul53P paul53

                                      @schweiger2 sagte: nur eine Schutzschaltung, wenn das Schließen mal vergessen wurde; das Öffnen möchte ich manuell selbst bestimmen.

                                      Dann mache es so (ohne Probleme mit undefined) :

                                      Bild_2021-07-19_152317.png

                                      S Online
                                      S Online
                                      schweiger2
                                      schrieb am zuletzt editiert von
                                      #24

                                      @paul53

                                      es ist so einfach - wenn man den Wald vor lauter Bäumen sehen würde.

                                      Danke vielmals für Deine Hilfe.

                                      schweiger2

                                      1 Antwort Letzte Antwort
                                      0
                                      • AsgothianA Asgothian

                                        @marius-kossinna sagte in Gleitender Durchschnitt mit Blockly:

                                        Ich glätte damit meinen PH-Messwert von Pool, der sprang mir einfach zu sehr auf und ab.
                                        Ist etwas aufwändiger, aber nachvollziehbar

                                        Etwas aufwändiger ? Das ist ein Understatement.

                                        • Warum nutzt du überhaupt eine Liste wenn du sowieso jede variable einzeln hältst. Du kannst doch beim Umschreiben auch gleich addieren
                                        • 10 Variablen von Hand "schieben" ? meh.

                                        Wenn schon Schieberegister, dann wenigstens so:

                                        Screenshot 2021-07-12 at 16.02.09.png

                                        A.

                                        Korrektur: Fehler im screenshot.

                                        K Offline
                                        K Offline
                                        k_b
                                        schrieb am zuletzt editiert von
                                        #25

                                        @asgothian
                                        Ich hatte vor Dein Script zu nutzen und bin gleich zu Beginn daran gescheitert, dass mein JS-Adapter (5.1.3) kein Blockly-Element enthält, mit dem ich ein Element der Liste löschen könnte ("remove"/"first"):
                                        d5eae08c-469c-4d22-a21d-f95db30b69e2-grafik.png
                                        Mit dem was mir der Menüpunkt Liste anbietet, kann ich nur überschreiben:
                                        afd3bcd8-0da6-4de0-a3c8-bcafd2686458-grafik.png
                                        Das könnte ich funktional zwar durch das von vorne fortschreitende Überschreiben mit Nullen "abfangen", führt aber zu einer beständig steigenden Länge der Liste ...
                                        Hast Du einen Tipp zu meinem Problem?
                                        Schon mal danke

                                        paul53P R 2 Antworten Letzte Antwort
                                        0
                                        • K k_b

                                          @asgothian
                                          Ich hatte vor Dein Script zu nutzen und bin gleich zu Beginn daran gescheitert, dass mein JS-Adapter (5.1.3) kein Blockly-Element enthält, mit dem ich ein Element der Liste löschen könnte ("remove"/"first"):
                                          d5eae08c-469c-4d22-a21d-f95db30b69e2-grafik.png
                                          Mit dem was mir der Menüpunkt Liste anbietet, kann ich nur überschreiben:
                                          afd3bcd8-0da6-4de0-a3c8-bcafd2686458-grafik.png
                                          Das könnte ich funktional zwar durch das von vorne fortschreitende Überschreiben mit Nullen "abfangen", führt aber zu einer beständig steigenden Länge der Liste ...
                                          Hast Du einen Tipp zu meinem Problem?
                                          Schon mal danke

                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von
                                          #26

                                          @k_b sagte: kein Blockly-Element enthält, mit dem ich ein Element der Liste löschen könnte ("remove"/"first"):

                                          Bild_2021-07-24_173201.png

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          ChrisNettC 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

                                          846

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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