iobroker Blockly Script absolute Feuchte berechnen

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>
Like
Like Love Haha Wow Sad Angry
1721

11 Replies to “iobroker Blockly Script absolute Feuchte berechnen”

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

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

  2. 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?

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

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

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

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.