Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Ventilation to avoid mold risk


knuth
 Share

Question

This is not a question but a small contribution, if anyone should be interested. The task was this:

How can I control indoor ventilation to avoid temperature/humidity combinations that risk growth of mold  or mildew? The first trick was to find a simple formula for this risk zone. I used a calculator in www.dpcalc.org which indicates risk/no risk for a given temp/hum combination. Testing this for realistic values for normal indoor or basement use, I found this simple linear correlation would work:

Humidity limit (%) = 91.2 - 1.184 * temp

For temp>22 the limit is set constant at 65 %. Temperature is in degrees C.

Example: If the temperature is 10 C, the relative humidity should stay below 79.4% to avoid the risk of mold growth. 

 

Assuming you have one or several ventilation fans, and one or several temperature/humidity measurements, you can use this to start the fans when the humidity level exceeds the limit. Alternatively, you can increase the set point for a relevant heater, to increase temperature and reduce relative humidity in the room. A push warning to the owner could also be included. I have chosen to only start the ventilation fans, and I include a small LUA script to achieve this. My temperature/humidity measurements are from two Aeotec Multi6 units, but any such sensor may  be used. Feel free to implement any part of this script to suit your purpose. Please share here if you use these ideas in other ways or have related ideas yourself.

Please login or register to see this attachment.

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 0
On 10/18/2019 at 10:50 AM, knuth said:

This is not a question but a small contribution, if anyone should be interested. The task was this:

How can I control indoor ventilation to avoid temperature/humidity combinations that risk growth of mold  or mildew? The first trick was to find a simple formula for this risk zone. I used a calculator in www.dpcalc.org which indicates risk/no risk for a given temp/hum combination. Testing this for realistic values for normal indoor or basement use, I found this simple linear correlation would work:

Humidity limit (%) = 91.2 - 1.184 * temp

For temp>22 the limit is set constant at 65 %. Temperature is in degrees C.

Example: If the temperature is 10 C, the relative humidity should stay below 79.4% to avoid the risk of mold growth. 

 

Assuming you have one or several ventilation fans, and one or several temperature/humidity measurements, you can use this to start the fans when the humidity level exceeds the limit. Alternatively, you can increase the set point for a relevant heater, to increase temperature and reduce relative humidity in the room. A push warning to the owner could also be included. I have chosen to only start the ventilation fans, and I include a small LUA script to achieve this. My temperature/humidity measurements are from two Aeotec Multi6 units, but any such sensor may  be used. Feel free to implement any part of this script to suit your purpose. Please share here if you use these ideas in other ways or have related ideas yourself.

Please login or register to see this attachment.

 

Thanks, this looks useful. 

For anyone using EventRunner the following rules implements the logic in the script provided by @knuth

Please login or register to see this code.

Btw, does it often happen that you get nil back when you try to read a value? (I'm thinking about the lines " intHum[1] = intHum[1] or 0...")

Edited by jgab
Link to comment
Share on other sites

  • 0
  • Inquirer
  • 14 minutes ago, jgab said:

    does it often happen that you get nil back when you try to read a value?

    In my Aeotec sensors: no, not really. 

    This solution is part of a larger script called "Climate monitoring" which runs continuously and checks a number of things, indoor and outdoor.  I want to make sure that a continuously running script does not stall because a value is missing, for some reason. In that script I use a similar test for values from my Qubino weather station - and for those sensors it happens more frequently.

    Besides - I thought the coding for substituting nil by a default value (picked up from a LUA book) was clever:

    x = x or defaultValue

    Nice and compact ?

     

    Thanks for adding the EventRunner implementation! 

    Link to comment
    Share on other sites

    • 0
    7 minutes ago, knuth said:

    In my Aeotec sensors: no, not really. 

    This solution is part of a larger script called "Climate monitoring" which runs continuously and checks a number of things, indoor and outdoor.  I want to make sure that a continuously running script does not stall because a value is missing, for some reason. In that script I use a similar test for values from my Qubino weather station - and for those sensors it happens more frequently.

    Besides - I thought the coding for substituting nil by a default value (picked up from a LUA book) was clever:

    x = x or defaultValue

    Nice and compact ?

     

    Thanks for adding the EventRunner implementation! 

    x = x or default 

    is a standard idiom in Lua, that’s fine, just worried about you having many devices randomly returning nil..

     

    Link to comment
    Share on other sites

    • 0

    Hello,

    Very nice!!!

    When I started with my first motion sensor from Aeotec I noticed if wify was cooking the humidity was going up.

    I modified the kitchen hood with a Fibaro relays but did did it wrong and unfortunately I blew up the motor. (I should have used a so called French plug, this one can only plugged in on one way)

    Later I had a problem with the sensor, the value off the lux sensor was not realistic and returned it to supplier. Replaced by a Fibaro one.

    With your idea I strongly consider to buy a new Aeotec sensor and let him switch on or of my mechanical ventilation (also containing a Fibaro relays).

    Now in use to raise the ventilation debit in the bathroom.

    Off course also @Jgab thank you very much for the ER  rule, service excellence!!!

     

    Link to comment
    Share on other sites

    • 0
    15 hours ago, jgab said:

    is a standard idiom in Lua, that’s fine, just worried about you having many devices randomly returning nil..

    It’s so good if devices return null... my Qubino weather station sometimes return 255 for temp or 256 for humidity ;) 

    cuz Fibaro sometimes get confused values from multi-sensors devices ;) and provide value for wind directions as humidity ;) ha ha ha   

    Link to comment
    Share on other sites

    • 0

    I received the MS6 for humidity measurement. Are line 12, 23, 24, 27 and 28 the only ones which need to be filled in with right device IDs? 

     

    How did you integrate your ventilation, just on/off? Because I installed it with a RGBW Controller. 

    Edited by pnutp0wer
    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • I don`t quite recognize your line numbers (you may have taken out some blank lines and comments, possibly?). What you need to check is this:

    My line 6 lists three fans and their id numbers {idFan1, idFan2, idFan3}. If you have fewer or more fans, just include their id`s between the brackets.

    In my lines 17 to 22, there are four id numbers, since I have two MS6 to consider. If you only have one, this part may be simplified to:

        intHum = tonumber(fibaro:getValue(id11, "value"))

        intTemp = tonumber(fibaro:getValue(id12, "value"))

    where id11 and id12 are the id numbers for humidity and temperature from your MS6.

    You can then skip the math in lines 30 and 31, and use intHum and inTemp in line 32 and 37, instead of hiHum and hiTemp. 

     

    Yes, I only use on/off for the fans, using a Fibaro Switch 2. My fans are 220 V and do not appreciate being driven by a normal dimmer. If you have low voltage DC fans, connected to a RGBW controller, you can choose what speed to use. I would turn them on full speed anyway.

     

    An added note: The whole script assumes that a high "mold value" indoors will benefit from introducing fresh air from the outside. That is only true if the outdoor air has a lower absolute humidity than the air indoor. I have worked on a simple approximation to check this, and will report on this separately. Humidity charts are a bit messy, so simplifications are necessary. What you could consider now, if it is relevant in your situation, is this: Instead of turning on the fan(s), increase the room temperature by a few degrees. That will in most cases bring you outside the "mold danger" zone by reducing relative humidity. 

    Link to comment
    Share on other sites

    • 0

    Please login or register to see this code.

     

    the script will walk by your home and check all rooms where ventilation needs.

    if you defind fans table by room => vents powers - script can turn on / off your vent automatically.

     

     

     

    Edited by 10der
    Link to comment
    Share on other sites

    • 0

     

    14 minutes ago, 10der said:

    Please login or register to see this code.

     

     

    Ooooh, higher order functions - classy ?

    Link to comment
    Share on other sites

    • 0
    10 minutes ago, jgab said:

     

     

    Ooooh, higher order functions - classy ?

     Considering, you  my LUA teacher :D

    Edited by 10der
    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • @10der and @jgab : You guys are getting way ahead of me. Have fun! 

     

    Let me return to my previous point about checking absolute humidity before starting ventilation. My starting point was having simple exhaust fans, which will

    extract indoor air, to be replaced by outdoor air (through vents or leaks). The absolute humidity outside will be introduced inside, and heated to the indoor temperature. If this absolute humidity is higher than the current one inside, this will make matters worse. So, I suggest including a check to see that the difference between absolute humidities inside and outside is positive before starting the fan. I have played around with a psychrometric chart (actually with a calculator at 

    Please login or register to see this link.

     ) and tried to find a simple model for this difference which is reasonably accurate for our purpose. The approximate result is this:

       delta=3.2*(temp_in - temp_out) + (relHum_in - relHum_out) 

       If delta > 0, the outdoor air probably has a lower absolute humidity than the indoor air, and ventilation makes sense. 

    Here temp.. are temperatures in deg C, while relHum.. are relative humidities in %. I make the assumption here that both these values are available both indoor and outdoor. The model is not very accurate, as it linearizes the iso-humidity curves, but close enough for most realistic situations. Note that the first parenthesis normally will be positive, the last parenthesis often negative, as in my climate the air outside is most often cooler and with a higher relative humidity. 

     

    If delta < 0 , increasing the indoor temperature by a few degrees will be a better option, as relative humidity for a given absHum drops off quickly when temperature is raised, and more quickly than the formula for mold risk. 

     

    Link to comment
    Share on other sites

    • 0

    @knuth

    Please login or register to see this code.

     

    btw. all forumulas doesn't woks at my location :( I am leaving near the sea (300m) and outside humidity always at least equal to 50% ha ha ha

    Link to comment
    Share on other sites

    • 0

    Hi guys,

    Is there a way to extract from?

    Please login or register to see this link.

    or do I need  humidity sensor outside?

    //Sjakie

    Link to comment
    Share on other sites

    • 0

    idk, sorry.  I have 2 devices outside. but if 

    Please login or register to see this link.

     can provide api - yes we can grab

    Link to comment
    Share on other sites

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

     Share

    ×
    ×
    • Create New...