A Data-Driven Approach to Tackling Sydney's Mould Problem

A Data-Driven Approach to Tackling Sydney's Mould Problem

Using IoT devices to solve real world problems


5 min read

The Problem

If you've ever lived in a rental property in Sydney, then you know exactly what this post is about. In recent years with temperatures rising and buildings aging, Sydney has found itself in the midst of a real problem with mould. Many homes in Australia are approaching a point where the flaws in their construction are causing major headaches, rising damp (Moisture rising from poorly ventilated sub-floors) combined with years of negligent maintenance mean that in particular renters are finding themselves at major risk of personal damages, and worse - health problems that are caused by mould.

In my small rental apartment here in Sydney, I am tackling a unique mould problem in nearly every room of my apartment. Being on the ground floor means that rising damp is a serious concern - and property owner apathy prevents proper ventilation to be installed. Both my housemate and I suffer from Asthma and there are times of the year where it seems like I am constantly scrubbing away surface level mould, only for it to return.

This problem has, however, provided an interesting opportunity to take advantage of the decreasing cost of IoT devices to monitor, and hopefully prevent mould growth in my home. The NSW Government has a Helpful Article which lists dampness (surface moisture) and humidity (moisture in the air) as the primary drivers for mould growth. My first goal in tackling this issue is going to be collecting data on the humidity, and temperature in each distinct room in my home.

The Solution

After doing research into options for both "dumb" and smart sensors, I landed on a fairly cost effective solution. While there are plenty of high accuracy humidity and temperature sensors out there, the cost to place one in each room of my home is fairly high. Instead, I landed on purchasing a number of Xiaomi Mi Sensors. It's fairly common to find these in bundle deals online, and I was able to snag around 7 of them for about $50 AUD. I have experience with Xiaomi IoT products, and a big driver for this purchase was the fact that these sensors connect via BLE, as opposed to a protocol like ZigBee which would require me to purchase additional hardware.

Xiaomi BLE Mi 2 Sensor

|:--:| | One of my many Xiaomi Sensors |

After purchasing these sensors, I quickly realised that while they were relatively accurate and provided me with the ability to see the data I needed, the Xiaomi Home application was clunky and slow - thankfully I had already planned for this. While waiting for my sensors to arrive I set up a Home Assistant server on an old Raspberry Pi 4 I had lying around. The Home Assistant server acts as a 'hub' - passively logging data remotely from these sensors without needing to rely on cloud based applications - it all happen locally over my LAN. I also discovered a community of users who had developed open source firmware for the Xiaomi Sensors, allowing me to customised the rate at which they reported temperatures, and also allowed me to track their battery life as they are powered by button cell batteries.

Home Assistant allows for deep customisation, allowing you to build a home dashboard, and even set up smart automation to trigger actions based on the state of sensors (this will hopefully play into my plan to action the data I'm logging.) After some time tinkering with the Home Assistant home page, this is where I landed:

My Home Assistant Dashboard

|:--:| | My custom Home Assistant dashboard, accessible on desktop or mobile |

This dashboard allows me to track humidity in real time, but also allows me to dive into a 24 time series to track the temperature of each room on an hourly basis. On top of this, home assistant has powerful logging capabilities allowing me to query historical data, allowing me to create adhoc visuals like this:

A time series line chart showing the rise and fall of humidity across february

|:--:| | A time series line chart showing the rise and fall of humidity across February |

These tools so far have allowed me to identify the times of day that increase the humidity in my house, and also the variables that can contribute. This data logging is fairly robust, however in order to fully realise it's potential I am considering implementing a Time-Series databse like InfluxDB to track and query my data for long-term analysis, however this would likely burn out my poor little Raspberry Pi's SD card quickly - I'm looking to migrate to a more permanent server solution in the mean time.

Moving Forward

So far this journey has helped me to understand the factors that are causing mould in my house (Long showers, closed windows), and my next steps will be to discover how I can act on this data. My next ideas are:

  • Better data logging through InfluxDB, and visualisation using Graphana (Or my old favourite Power BI if I'm lazy)

  • Motion Sensors to qualify how human presence affects humidity

  • airflow/quality metering to see how ventilation affects mould growth

  • Mold Risk Detection through the amazing Mold Indicator integration

  • Smart dehumidification/ventilation if possible

I'll move forward with a new post once I've tackled these ideas, but I hope this is useful to anybody else out there struggling with tackling this problem.