iobroker Blockly Script absolute Feuchte berechnen
Code für den Blockly import:
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id=")Vz0,u.-.k*4g:m~W}7W">temperature</variable>
<variable id=")(A+CMXkz]`wvY;?c89W">relFeuchte</variable>
<variable id="l*On1=aiKKj0p:|T=fm{">absfeuchte</variable>
<variable type="timeout" id="timeout1">timeout1</variable>
<variable type="timeout" id="timeout2">timeout2</variable>
</variables>
<block type="procedures_defnoreturn" id="a.7eeV[s:u5??`4e3Od;" x="-37" y="-413">
<mutation>
<arg name="temperature" varid=")Vz0,u.-.k*4g:m~W}7W"></arg>
<arg name="relFeuchte" varid=")(A+CMXkz]`wvY;?c89W"></arg>
</mutation>
<field name="NAME">feuchte</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK">
<block type="variables_set" id="GLoUl42Ssmd5x{%ngji+">
<field name="VAR" id="l*On1=aiKKj0p:|T=fm{">absfeuchte</field>
<value name="VALUE">
<block type="math_arithmetic" id="$9dk$%bCfi).WmTQ0YvS" inline="false">
<field name="OP">DIVIDE</field>
<value name="A">
<shadow type="math_number" id="@|]|kf(~;UXSj{r-Py.}">
<field name="NUM">1</field>
</shadow>
<block type="math_arithmetic" id="drl{z6M9~)QK=1jWZwS1" inline="false">
<field name="OP">MULTIPLY</field>
<value name="A">
<shadow type="math_number" id="?(XoR_CDs1f)=_zC_s`c">
<field name="NUM">1</field>
</shadow>
<block type="math_arithmetic" id="Ii^SaP2Kig/a4yQeL2Kp" inline="false">
<field name="OP">MULTIPLY</field>
<value name="A">
<shadow type="math_number" id="W]Ok6Ex(k9gJWN%Vl0(?">
<field name="NUM">1</field>
</shadow>
<block type="math_arithmetic" id="G_aJ68Y!9?zmeHy=4+6O" inline="false">
<field name="OP">MULTIPLY</field>
<value name="A">
<shadow type="math_number" id="rS7,,?%z$GHN(0DP-)Wa">
<field name="NUM">1</field>
</shadow>
<block type="math_number" id="Ss;2=UpBXrr%ru]F/HcD">
<field name="NUM">6.112</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="Q_;jA]edTjm#:$`BlH8l">
<field name="NUM">1</field>
</shadow>
<block type="math_single" id="PgF}b=!D4^{n0iWk|%7z">
<field name="OP">EXP</field>
<value name="NUM">
<shadow type="math_number" id="tV|:2_[M=j?P!6L7vh1^">
<field name="NUM">9</field>
</shadow>
<block type="math_arithmetic" id="4A4-v3;A2z}(iC1}/|;J" inline="false">
<field name="OP">DIVIDE</field>
<value name="A">
<shadow type="math_number" id="/DEPg%|MS4iI54Xg6-E:">
<field name="NUM">1</field>
</shadow>
<block type="math_arithmetic" id="s9-wArpJZT$DZJF(:oe_">
<field name="OP">MULTIPLY</field>
<value name="A">
<shadow type="math_number" id="wU{rm.Y~Cc:*cKP-pI6n">
<field name="NUM">17.67</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number" id="(6gfCw,CHBNtyNrq4xf6">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="_K@|_[8M3NUw?.VA(],?">
<field name="VAR" id=")Vz0,u.-.k*4g:m~W}7W">temperature</field>
</block>
</value>
</block>
</value>
<value name="B">
<shadow type="math_number" id="._D6XRUnVpSD:3e;r6u[">
<field name="NUM">1</field>
</shadow>
<block type="math_arithmetic" id="};.N1a,UzboZAd@o+^jr">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="[:o6ZaA4M%CmKmi}Fb07">
<field name="NUM">1</field>
</shadow>
<block type="math_number" id="?e~,rPM[rLNAX88SQw6*">
<field name="NUM">243.5</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id=")0kFf`)/(A}-,6o=d9]?">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="Gw.PQ]#i.P)4H?q0:uis">
<field name="VAR" id=")Vz0,u.-.k*4g:m~W}7W">temperature</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="B">
<shadow type="math_number" id="=QJ@}_89oaSc6TkLXqL{">
<field name="NUM">1</field>
</shadow>
<block type="math_number" id="+-RP-jJ/Cl8j~X(iqtKk">
<field name="NUM">2.1674</field>
</block>
</value>
</block>
</value>
<value name="B">
<shadow type="math_number" id=";`Yd*+h-@*2XfUACe)O8">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="tMo|!n{{H-zc)qWU3Be9">
<field name="VAR" id=")(A+CMXkz]`wvY;?c89W">relFeuchte</field>
</block>
</value>
</block>
</value>
<value name="B">
<shadow type="math_number" id="H=hU4(hGj-[YSN#G(cZ}">
<field name="NUM">1</field>
</shadow>
<block type="math_arithmetic" id="=Xf0xz;M.wOqwduBl|O+">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="*=pAEW@=`5jlHQO4GUyX">
<field name="NUM">1</field>
</shadow>
<block type="math_number" id="(11}Qz2^*N(([RQo~/lT">
<field name="NUM">273.15</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="cS*9f1Zsst}!M]qx+5mO">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="lzNp]xQRt$;C}pPC=%vO">
<field name="VAR" id=")Vz0,u.-.k*4g:m~W}7W">temperature</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="debug" id="a%5zx.dK7PlF5.J+8MkO">
<field name="Severity">log</field>
<value name="TEXT">
<shadow type="text" id="6-p*!}%Tylz*Wa5W=np`">
<field name="TEXT">test</field>
</shadow>
<block type="variables_get" id="Is`6[Nqd5u4(DbI=P;{|">
<field name="VAR" id="l*On1=aiKKj0p:|T=fm{">absfeuchte</field>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
<block type="schedule" id=";E?1!*zS91l}%a,0h1C%" x="-137" y="38">
<field name="SCHEDULE">*/5 * * * *</field>
<statement name="STATEMENT">
<block type="timeouts_settimeout" id="KPzO`l37})U;e~rx$H0t">
<field name="NAME">timeout1</field>
<field name="DELAY">1</field>
<field name="UNIT">sec</field>
<statement name="STATEMENT">
<block type="procedures_callnoreturn" id="1V~xi_[Zomm@ztc/%bI4" inline="false">
<mutation name="feuchte">
<arg name="temperature"></arg>
<arg name="relFeuchte"></arg>
</mutation>
<value name="ARG0">
<block type="get_value" id="_!-?=(~4ef@V5qpBlO,^">
<field name="ATTR">val</field>
<field name="OID">hm-rpc.0.KEQ0053726.1.TEMPERATURE</field>
</block>
</value>
<value name="ARG1">
<block type="get_value" id="/=IW.6p:Yr~G/BWJyvu@">
<field name="ATTR">val</field>
<field name="OID">hm-rpc.0.KEQ0053726.1.HUMIDITY</field>
</block>
</value>
<next>
<block type="update" id="9o$7%?OYK5%`,iE_jsQs">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Temperaturen.abs_Feuchte_aussen</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_rndfixed" id="2H0+CS^7XG6oop`R3~Wo">
<field name="n">2</field>
<value name="x">
<shadow type="math_number">
<field name="NUM">3.1234</field>
</shadow>
<block type="variables_get" id="F:bp0~(,=KpV`w8hx6Fu">
<field name="VAR" id="l*On1=aiKKj0p:|T=fm{">absfeuchte</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="timeouts_settimeout" id="vIK,Gi?|U3FAp#,z@bnh">
<field name="NAME">timeout2</field>
<field name="DELAY">1</field>
<field name="UNIT">sec</field>
<statement name="STATEMENT">
<block type="procedures_callnoreturn" id="w,!Qcnja}mlB3hIg,syx" inline="false">
<mutation name="feuchte">
<arg name="temperature"></arg>
<arg name="relFeuchte"></arg>
</mutation>
<value name="ARG0">
<block type="get_value" id=";V5{}tqG$$S`r)Yr?M^_">
<field name="ATTR">val</field>
<field name="OID">sonoff.0.DVES_072BA1.SI7021_Temperature</field>
</block>
</value>
<value name="ARG1">
<block type="get_value" id="#60#sZdE++8+M+~nvL3A">
<field name="ATTR">val</field>
<field name="OID">sonoff.0.DVES_072BA1.SI7021_Humidity</field>
</block>
</value>
<next>
<block type="update" id="3z/W0Yn;?O{^$p?oRWR]">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Temperaturen.abs_Feuchte_Keller</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_rndfixed" id="JT8-9U#`14B|DPm_QGHZ">
<field name="n">2</field>
<value name="x">
<shadow type="math_number">
<field name="NUM">3.1234</field>
</shadow>
<block type="variables_get" id="N@xPx|:LDn8Y:FMOdet3">
<field name="VAR" id="l*On1=aiKKj0p:|T=fm{">absfeuchte</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</xml>
1721
Pages: 1 2
15 Replies to “iobroker Blockly Script absolute Feuchte berechnen”
Hallo Andy,
bin auf de Suche nach einer Lüftersteuerung für den Keller auf deinen Blog gestoßen.
Das mit der Berechnung verstehe ich, aber wie genau gestaltest du die Steuerung danach?
Gruß Frank
Hi Frank,
stimmt, ich habe nur die Berechnung gezeigt, weil ich zu der generellen Umsetzung einiges im Internet gefunden habe. Aber du hast recht, vielleicht sollte ich das noch beschreiben. Zusammengefasst ist es so, das ich die absolute Feuchte aussen und innen vergleiche und wenn aussen geringer ist als innen, dann wird ein Lüfter aktiviert. Somit sinkt dann auch die Luftfeuchte im Keller.
Viele Grüße Andy
Ah okay,
danke dir.
Gruß Frank
ENDLICH konnte ich es auch bei mir realisieren – vielen Dank für das wertvolle Script!!!
Hallo Frank,
vielen Dank für das knackig kurze Script. Endlich zu wissen man man Lüften kann ist ein Segen. Das Script hat seinen Weg auch schon in andere iobroker im Umfeld gefunden.
Mir scheint dass die Variable „hysterese“ nicht genutzt wird.
Um bei mir kurzfristige Schwankungen auszugleichen meldet mein iobroker erst bei einer Differenz von > 1g/m³ dass belüftet werden kann.
Wie hast du dass bei dir gelöst?
Hi Robert,
du hast recht, hysterese wird glaub ich gar nicht genutzt. das war noch von den versuchen beim bauen des skriptes übrig geblieben.
Ich mache es aber auch so, das ich erst bei einer Differenz von >1g/kg schalte. Alternativ hatte ich auch schon so eingestellt, das es unter 8 g/kg erst schaltet, denn dann ist die Luft schon ziemlich trocken.
vg andy
Hallo,
ich bedanke mich recht herzlich für das kurze und knackige Script. Eine Frage zum Verständnis möchte ich jedoch gerne stellen, da ich in Blockly bisher noch keine Funktionen verwendete. Berechnet sich die Absolute Feuchte automatisch im Hintergrund sobald sich Temperatur oder rel.Luftfeuchtigkeit ändern oder muss ich da noch einen Trigger einfügen?
Danke
Toor
Hi Toor,
das Blockly Script muss mit einem Trigger starten. z.B. wenn sich die Luftfeuchtigkeit ändert. Dann berechnet das script den wert der absoluten feuchte für z.B. einmal innen und einmal aussen. Beide Werte schreibst du in einen Datenpunkt. Mit einem weiteren Script vergleichst du beide und schaltest z.B. einen Lüfter.
Viele Grüße
Andy
Hey,
vielen Dank für das Script! Genau das habe ich gesucht. Ich wäre so dankbar wenn du uns das Komplettpaket zur Verfügung stellen könntest. Also die Steuerung der Lüfter, wann getriggert wird etc? Ginge das?
1000 Dank,
Viele Grüße,
Ole
Hi Ole, ich habe mal einen neuen Beitrag erstellt, wo ich beschreibe, wie ich den Lüfter starte. siehe hier: https://etscheid.biz/blog/2023/02/17/iobroker-blockly-script-luefter-steuern/
Ich hoffe, das hilft dir weiter.
Viele Grüße Andy
Hallo.
Ich muß einfach mal nachfragen. Du schreibst in dem Beitrag oben „Die Variable “absfeuchte” enthält dann den berechneten Wert.“.
Ist das nicht die Temperatur des Taupunktes?
Grüße
Manfred
Hi Manfred, die absolute Feuchte ist ein Wert die angibt wieviel Wasserdampfmenge in Gramm, in 1 m³ Luft enthalten ist.
Der Taupunkt ist ein anderer Wert.
Viele Grüße
Andy
Noch etwas. Der berechnete Taupunkt liegt immer ca. 2°C unter denen der Taupunkttabellen.
Der Taupunkt war für mich nie wirklich relevant, deshalb habe ich den nicht geprüft. Die absolute Feuchte kam aber immer ganz gut hin.