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:

<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?+4fqzM
eV%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 