<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Tak jsem si řekl, že se nakonečně naučím s tím Android Studiem a
    Kotlíkem.<br>
    První funkční výsledek:<br>
    <a class="moz-txt-link-freetext" href="https://dejvice.cz/edison/tmp/tv.rar">https://dejvice.cz/edison/tmp/tv.rar</a><br>
    <br>
    Není tam žádné řešení co je zadáno a co ne, prostě vždy vypočítá
    všechno.<br>
    Hlavně by to teda asi chtělo zjistit, jak se v Androidu pracuje s
    registrem, nebo kam se ukládají nastavení, aby všechno nebylo
    pokaždý default.<br>
    <br>
    Nevím zda jsou všechny výpočy správně, tak pro jistotu tady je ta
    výpočetní část, prosím zkontrolovat:-)<br>
    -------------<br>
    <pre style="background-color:#ffffff;color:#000000;font-family:'JetBrains Mono',monospace;font-size:9,8pt;"><span style="color:#000080;font-weight:bold;">var </span>tempExt = <span style="color:#0000ff;">15.0f
</span><span style="color:#000080;font-weight:bold;">var </span>rhExt = <span style="color:#0000ff;">50.0f
</span><span style="color:#000080;font-weight:bold;">var </span>tempInt = <span style="color:#0000ff;">15.0f
</span><span style="color:#000080;font-weight:bold;">var </span>rhInt = <span style="color:#0000ff;">50.0f
</span><span style="color:#0000ff;">
</span><span style="color:#000080;font-weight:bold;">fun </span>rosBod(t: Float, rh: Float) : Float {
    <span style="color:#808080;font-style:italic;">//<math>T_{dp} = \frac{243,5 \ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})}{17,67-\ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})}</math>
</span><span style="color:#808080;font-style:italic;">    </span><span style="color:#000080;font-weight:bold;">var </span>lnrh = <span style="font-style:italic;">ln</span>(rh/<span style="color:#0000ff;">100.0 </span>* <span style="font-style:italic;">exp</span>(<span style="color:#0000ff;">17.67</span>*t / (<span style="color:#0000ff;">243.5</span>+t)))
    <span style="color:#000080;font-weight:bold;">return </span>(<span style="color:#0000ff;">243.5 </span>* lnrh / (<span style="color:#0000ff;">17.67</span>-lnrh)).toFloat()
}
<span style="color:#000080;font-weight:bold;">fun </span>relToAbs(t: Float, rh: Float) : Float {
    <span style="color:#000080;font-weight:bold;">return </span>((<span style="color:#0000ff;">6.112 </span>* <span style="font-style:italic;">exp</span>(<span style="color:#0000ff;">17.67</span>*t / (<span style="color:#0000ff;">243.5</span>+t)) * rh * <span style="color:#0000ff;">2.1674</span>) / (<span style="color:#0000ff;">273.15</span>+t)).toFloat()
}
<span style="color:#000080;font-weight:bold;">fun </span>absToRel(t: Float, ah: Float) : Float {
    <span style="color:#000080;font-weight:bold;">return </span>((ah * (<span style="color:#0000ff;">273.15</span>+t)) / (<span style="color:#0000ff;">6.112 </span>* <span style="font-style:italic;">exp</span>(<span style="color:#0000ff;">17.67</span>*t / (<span style="color:#0000ff;">243.5</span>+t)) * <span style="color:#0000ff;">2.1674</span>)).toFloat()
}

<span style="color:#000080;font-weight:bold;">fun </span>vypocet() {
    tempExt = sbTE.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat() *<span style="color:#0000ff;">0.8f </span>- <span style="color:#0000ff;">25.0f
</span><span style="color:#0000ff;">    </span>rhExt = sbRhE.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat()
    tempInt = sbTI.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat() *<span style="color:#0000ff;">0.8f </span>- <span style="color:#0000ff;">25.0f
</span><span style="color:#0000ff;">    </span>rhInt = sbRhI.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat()

    txtTE.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"T ext: " </span>+ tempExt.toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;">    </span>txtRhE.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"RH ext: </span><span style="color:#000080;font-weight:bold;">$</span>rhExt<span style="color:#008000;font-weight:bold;"> %, RB: " </span>+ rosBod(tempExt, rhExt).toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;">    </span>txtTI.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"T int: " </span>+ tempInt.toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;">    </span>txtRhI.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"RH int: </span><span style="color:#000080;font-weight:bold;">$</span>rhInt<span style="color:#008000;font-weight:bold;"> %, RB: " </span>+ rosBod(tempInt, rhInt).toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;">
</span><span style="color:#008000;font-weight:bold;">    </span><span style="color:#000080;font-weight:bold;">var </span>rhPV = absToRel(tempInt, relToAbs(tempExt, rhExt))

    txtOut.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"Po větrání:</span><span style="color:#000080;font-weight:bold;">\n</span><span style="color:#008000;font-weight:bold;"> RH int: </span><span style="color:#000080;font-weight:bold;">$</span>rhPV<span style="color:#008000;font-weight:bold;"> %, RB: " </span>+ rosBod(tempInt, rhPV).toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span>}
</pre>
    ------------<br>
    a poznámky k tomu:<br>
    <math>T_{dp} = \frac{<br>
        243,5 \ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})<br>
    } {<br>
        17,67-\ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})<br>
    }</math><br>
    <br>
    243.5 * ln(rh/100.0 * exp(17.67*t / (243.5+t))<br>
    17.67 - ln(rh/100.0 * exp(17.67*t / (243.5+t))<br>
    <br>
    <br>
<a class="moz-txt-link-freetext" href="https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/">https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/</a><br>
    AH = (6.112 * exp(17.67*t / (243.5+t)) * rh * 2.1674) / (273.15+t)<br>
    <br>
    AH = (6.112 * exp(17.67*t / (243.5+t)) * 2.1674 * rh) / (273.15+t)<br>
    <br>
    RH = (AH * (273.15+t)) / (6.112 * exp(17.67*t / (243.5+t)) * 2.1674)<br>
    <br>
    PH<br>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">Dne 08.01.2023 v 9:48 Petr Labaj
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:abc94cff-21b2-70ad-b3da-93fe903dda24@volny.cz">Děkuji za
      nabídku, vážím si ji.
      <br>
      Ale tak moc obtěžovat nechci.
      <br>
      Já jsem si naivně myslel, že taková věc přece musí existovat. A že
      to tedy bude ta snazší cesta.
      <br>
      Ale zřejmě ne.
      <br>
      <br>
      Takže nakonec nějaká HW cesta bude asi průchodnější.
      <br>
      Já pro Android programovat neumím. Ale jednochipy celkem jo.
      <br>
      Tak asi koupím dvě vlhkostní čidla (zřejmě BME280 od Bosche) a
      slepím s tím nějaké zařízení.
      <br>
      Jedno čidlo ven, druhé dovnitř.
      <br>
      Na displeji pak vnější a vnitřní hodnoty, a k tomu ty přepočtené a
      doporučení větrat/nevětrat.
      <br>
      <br>
      Při tom blbnutí s vlhkostí jsem si uvědomil, že asi nastal čas
      koupit si aspoň nějaké aspoň malé rekuperační větrání.
      <br>
      Při nízké vlhkosti pocitově nevadí ani o dost nižší vnitřní
      teplota.
      <br>
      No a tak potom ten udělaný měřák použiju pro adaptivní řízení té
      rekuperace.
      <br>
      Ony sice ty rekuperační jednotky většinou nějaký automatický režim
      umožňují.
      <br>
      Ale když já víc věřím vlastnímu měření a řízení, než nějakým
      blackboxům.
      <br>
      <br>
      Díky všem za odpovědi. A Tobě za nabídku zvlášť.
      <br>
      <br>
      PL
      <br>
      <br>
      **********************
      <br>
      <br>
      Dne 8.1.2023 v 0:44 Petr Zahradník napsal(a):
      <br>
      <blockquote type="cite">Tak mi (normálně mimo konferenci) pošli
        slovně ty výpočty, které chceš pro ty jednotlivé případy
        provádět, ať to nemusím studovat a vymýšlet. A nějaké další
        informace jako počty desetinných míst, jak to má vypadat, jak to
        chceš ovládat apod. Já ti tu aplikaci ve volné chvíli udělám.
        <br>
        <br>
        Petr Zahradník, počítačový expert
        <br>
        e-mail: <a class="moz-txt-link-abbreviated" href="mailto:clexpert@clexpert.cz">clexpert@clexpert.cz</a>
        <br>
        mobil: 602 409 601
        <br>
        <a class="moz-txt-link-freetext" href="http://www.clexpert.cz">http://www.clexpert.cz</a>, <a class="moz-txt-link-freetext" href="http://www.zahradniksebavi.cz">http://www.zahradniksebavi.cz</a>
        <br>
        Petr Zahradník, Computer Laboratory
        <br>
        Obvodová 740/14, 400 07 Ústí nad Labem
        <br>
        <br>
        -----Original Message-----
        <br>
        From: Hw-list <a class="moz-txt-link-rfc2396E" href="mailto:hw-list-bounces@list.hw.cz"><hw-list-bounces@list.hw.cz></a> On Behalf Of
        Petr Labaj
        <br>
        Sent: Saturday, January 7, 2023 9:57 PM
        <br>
        To: <a class="moz-txt-link-abbreviated" href="mailto:hw-list@list.hw.cz">hw-list@list.hw.cz</a>
        <br>
        Subject: Re: [OT] Přepočet relativní vlhkosti vzduchu podle
        teploty
        <br>
        <br>
        4 vstupní políčka, jedno výstupní.
        <br>
        Vstupy:
        <br>
        vnější teplota, vnější Rh
        <br>
        vnitřní teplota, vnitřní Rh
        <br>
        <br>
        Vnější teplota a Rh musí být zadáno vždy.
        <br>
        U vnitřních:
        <br>
        - je-li zadána teplota a ne Rh, program počte, jaké Rh bude mít
        vnější vzduch po vpuštění dovnitř a zahřátí na vnitřní teplotu
        (tedy jaká bude vnitřní vlhkost po vyvětrání)
        <br>
        - je-li zadáno Rh a ne teplota, program spočte, při jaké vnitřní
        teplotě dosáhne vzduch to zadané Rh
        <br>
        - je-li zadána vnitřní teplota i Rh, program řekne, jestli se
        vyvětráním vlhkost sníží nebo zvýší
        <br>
      </blockquote>
    </blockquote>
  </body>
</html>