Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Script - Messwert dämpfen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script - Messwert dämpfen

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      SuFra last edited by Jey Cee

      Hallo, da ich schon viel von dem Forum profitiert habe möchte ich auch was zurück geben.

      Um schwankende/streuende Messwerte zu dämpfen verwende ich folgendes Script/Blockly:

      blockly 1.jpg


      <xml xmlns="http://www.w3.org/1999/xhtml">
      <variables>
      <variable type="" id="kRhg6c?fJoJ9=+LlrgA">wert_alt</variable>
      <variable type="" id="(TABrixguC}L}$SJVufv">wert_neu</variable>
      <variable type="" id="7@ka{W0ZcZB2/**V0U6
      ">wichtung</variable>
      <variable type="" id="lfJi=yL5G#a:Dd7PtwU8">result</variable>
      <variable type="" id="1M(LjWsX%UA(R)fKp??#">mittelwert</variable>
      </variables>
      <block type="procedures_defreturn" id="B#E__0$8BpSc7r[Bofss" x="-237" y="463">
      <mutation>
      <arg name="wert_alt" varid="kRhg6c?fJoJ9=+LlrgA"></arg>
      <arg name="wert_neu" varid="(TABrixguC}L}$SJVufv"></arg>
      <arg name="wichtung" varid="7@ka{W0ZcZB2/**V0U6
      "></arg>
      </mutation>
      <field name="NAME">Mittelwert</field>
      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      <statement name="STACK">
      <block type="variables_set" id="Zi1FnxY2kj4lviI7i,e2">
      <field name="VAR" id="1M(LjWsX%UA(R)fKp??#" variabletype="">mittelwert</field>
      <value name="VALUE">
      <block type="variables_get" id=",!3YAuQN)lMpRR:uzC4k">
      <field name="VAR" id="_kRhg6c?fJoJ9=+LlrgA" variabletype="">wert_alt</field>
      </block>
      </value>
      <next>
      <block type="variables_set" id="0@Rf;rIK5zvOAwPQQ~v"> <field name="VAR" id="1M(LjWsX%UA(R)fKp??#" variabletype="">mittelwert</field> <value name="VALUE"> <block type="math_arithmetic" id="W]H*D_nL_0:uWa^8SoK*"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="jo=%2ESl]DW675#~y_y)"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="{7lBnx2$pVQ;|^bsX2RT"> <field name="VAR" id="1M(LjWsX%UA(R)fKp??#" variabletype="">mittelwert</field> </block> </value> <value name="B"> <shadow type="math_number" id="iE_)$$#[-G-Q%ZarD#ob"> <field name="NUM">8</field> </shadow> <block type="variables_get" id="P]tZ,e:8tnrjKD6XE7Q/"> <field name="VAR" id="7@ka{W0ZcZB2/**V0U6_" variabletype="">wichtung</field> </block> </value> </block> </value> <next> <block type="variables_set" id="}q?xIB(,#[F%4kPn6s3s"> <field name="VAR" id="1M(LjWsX%UA(R)fKp??#" variabletype="">mittelwert</field> <value name="VALUE"> <block type="math_arithmetic" id="ZLK|t.|=AON10u2GkN%="> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="jo=%2ESl]DW675#~y_y)"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="GL/zBCI6JBWBm{H1V2{J"> <field name="VAR" id="1M(LjWsX%UA(R)fKp??#" variabletype="">mittelwert</field> </block> </value> <value name="B"> <shadow type="math_number" id="0uqpP?KFLpIPY{DzYN"> <field name="NUM">59</field> </shadow> <block type="variables_get" id="L2It^Y?+,pPC+tp@Xn}7"> <field name="VAR" id="(TABrixguC}L}$SJVufv" variabletype="">wert_neu</field> </block> </value> </block> </value> <next> <block type="variables_set" id="z~UqNL()E%=)$,e[kSB?"> <field name="VAR" id="lfJi=yL5G#a:Dd7PtwU8" variabletype="">result</field> <value name="VALUE"> <block type="math_arithmetic" id="P4*6eJobY6]wO+$$$/X@"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="jo=%2ESl]DW675#~y_y)"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="--3,IL|K6f:j%U7ltA9J"> <field name="VAR" id="1M(LjWsX%UA(R)fKp??#" variabletype="">mittelwert</field> </block> </value> <value name="B"> <shadow type="math_number" id="BZ=:rI^)+#p7SL1/@g#2"> <field name="NUM">9</field> </shadow> <block type="math_arithmetic" id="iVuXVRhlB|Jlxn$lHHS">
      <field name="OP">ADD</field>
      <value name="A">
      <shadow type="math_number" id="xS?Rk{MQv67t?#(C94#(">
      <field name="NUM">1</field>
      </shadow>
      <block type="variables_get" id="wRcL-3pD1-|)~#lK?d,"> <field name="VAR" id="7@ka{W0ZcZB2/**V0U6_" variabletype="">wichtung</field> </block> </value> <value name="B"> <shadow type="math_number" id="h^}W~,D?+4fqzMeV%OX">
      <field name="NUM">1</field>
      </shadow>
      </value>
      </block>
      </value>
      </block>
      </value>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </statement>
      <value name="RETURN">
      <block type="variables_get" id="b(49sz,]N]h#WiV+J[BW">
      <field name="VAR" id="lfJi=yL5G#a:Dd7PtwU8" variabletype="">result</field>
      </block>
      </value>
      </block>
      <block type="update" id="%DGY;rhA~gKYgsdUsusY" x="-262" y="688">
      <mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Datenpunkte.Sensoren.Rayniman.Temperatur</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="math_rndfixed" id="@4tF6rwFN+BkPNMrsO9^">
      <field name="n">2</field>
      <value name="x">
      <shadow type="math_number" id="]UN4rmYb4$3|$Jmxmut2">
      <field name="NUM">3.1234</field>
      </shadow>
      <block type="procedures_callreturn" id="JY2#uFZ1?(w!7nN629#!">
      <mutation name="Mittelwert">
      <arg name="wert_alt"></arg>
      <arg name="wert_neu"></arg>
      <arg name="wichtung"></arg>
      </mutation>
      <value name="ARG0">
      <block type="get_value" id="%c5M1.mdbqZ2v?x:+uw"> <field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Sensoren.Rayniman.Temperatur</field> </block> </value> <value name="ARG1"> <block type="get_value" id="e|iA9EL58Qq9MhE,wiIh"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <value name="ARG2"> <block type="math_number" id="^IGxdx.qY,FQa^Bx9f$0"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="6{Kt2T?m}nAO(-07ocFV"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="VMAcBIC9W]qaGtwpP?o/"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="iafZpPSzx+x0gUB_eUF;"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="j[#I;1lQcKK|:RpQ^Q8">
      <field name="TEXT">Temperatur : </field>
      </block>
      </value>
      <value name="ADD1">
      <block type="get_value" id="K%=@V$.lF[,eGwgm3wfE">
      <field name="ATTR">val</field>
      <field name="OID">javascript.0.Datenpunkte.Sensoren.Rayniman.Temperatur</field>
      </block>
      </value>
      <value name="ADD2">
      <block type="text" id="3GvGbfvb`=KI}kXd/](S">
      <field name="TEXT">°C</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </next>
      </block>
      </xml>

      als Script:

      var wert_alt, wert_neu, wichtung, result, mittelwert;
      
      function Mittelwert(wert_alt, wert_neu, wichtung) {
        mittelwert = wert_alt;
        mittelwert = mittelwert * wichtung;
        mittelwert = mittelwert + wert_neu;
        result = mittelwert / (wichtung + 1);
        return result;
      }
      
      setState("javascript.0.Datenpunkte.Sensoren.Rayniman.Temperatur"/*S-Rayniman_Temperatur*/, Math.round((Mittelwert(getState("javascript.0.Datenpunkte.Sensoren.Rayniman.Temperatur").val, getState("ID auswählen").val, 3))*100)/100, true);
      console.log((['Temperatur : ',getState("javascript.0.Datenpunkte.Sensoren.Rayniman.Temperatur").val,'°C'].join('')));
      
      

      Je höher der Wert der Wichtung, um so stärker die Dämpfung.

      Viel Spaß damit 😊

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

      Support us

      ioBroker
      Community Adapters
      Donate

      372
      Online

      31.8k
      Users

      79.9k
      Topics

      1.3m
      Posts

      blockly javascript template
      1
      1
      383
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo