Singapore's rainfall average of 2,340 mm per year sounds generous. In practice, it falls inconsistently — three weeks of near-daily afternoon showers followed by a dry stretch can stress container plants on a balcony within days. Automated watering removes the guesswork, but setting it up correctly for tropical conditions requires more consideration than most guides acknowledge.
A home automation network diagram illustrating sensor-to-controller communication — the same underlying logic applies to automated irrigation systems linked to weather data.
The Balcony Context
The balcony in this setup measures 6.2 sqm, faces northeast, and holds 14 containers: four large planters (40–50 cm diameter) with edible herbs, six medium planters with tropical ornamentals, and four hanging baskets. Total water requirement on a dry, sunny day is approximately 8–12 litres depending on which plants are in active growth phases.
Standard HDB balcony regulations prohibit running water pipes through external walls without approved works — meaning the water source must come from indoors via a temporary connection or from a dedicated outdoor tap if the flat has one. This unit had an outdoor tap (a feature of older HDB blocks pre-2000 that many newer flats lack).
Components Selected
The irrigation system consists of four distinct components:
- Solenoid valve: Orbit 57860 24V AC solenoid — a US-market component that requires a 24V AC transformer rather than standard DC power. Selected for its documented resistance to debris clogging at low flow rates.
- Controller: Linktap G2S — a Singaporean product (unusual in this category) running on AA batteries with Wi-Fi connectivity, compatible with the Home Assistant via a local API. Battery life claimed at 2 years; actual observation at 14 months is 68% remaining.
- Soil moisture sensors: Capacitive sensors (STEMMA QT type, connected to an ESP32 board) placed in two large planters and one hanging basket. Readings transmitted via MQTT to Home Assistant every 15 minutes.
- Rain sensor: Normally-closed rain gauge sensor connected directly to the Linktap's skip-watering input. Calibrated to interrupt scheduled watering if accumulated rainfall in the sensor cup exceeds 3 mm.
The Rainfall Calibration Problem
This is where Singapore's tropical weather pattern creates a specific complication. Standard rain sensors sold for temperate-climate irrigation systems are calibrated for sustained, relatively low-intensity rainfall. Singapore's convective storms deliver high intensity over short durations — 30–60 mm per hour for 20–40 minutes is not unusual.
At standard sensitivity, the rain sensor triggers within the first 2 minutes of a storm and remains active for 4–6 hours as the collection cup drains. By that time, the intense rain has already passed and the topsoil surface — though wet — may have limited actual water penetration into container growing medium due to hydrophobic surface crust formation. The system was therefore suppressing watering based on rain that had largely run off the container rims rather than reaching the root zone.
The resolution involved adjusting the cup volume by filing the drainage port to a slightly larger diameter, reducing retention time to approximately 2 hours and allowing the system to resume watering earlier on the same day as rainfall. The alternative — purely soil-moisture-based triggering — was tested but proved less reliable because capacitive sensor readings in organic potting mix drift significantly over 90 days as the mix compacts and changes dielectric properties.
On container mix and moisture sensors: Capacitive soil moisture sensors are calibrated for mineral soil. Singapore balcony containers typically use coco peat, perlite, and compost mixes that have significantly different dielectric constants. Factory calibration curves do not apply. A custom calibration using the dry-weight/wet-weight method at three moisture levels produced readings accurate within ±8% — adequate for zone-level scheduling decisions but not for precise moisture targets.
Scheduling Logic
The final automation schedule runs as follows:
- 6:30 AM — primary watering cycle, 4 minutes at moderate flow (approximately 0.8 L/min through 4 mm drip emitters). This runs before the day's heat builds.
- Rainfall skip: if the hardware rain sensor was triggered in the past 2 hours, the 6:30 AM cycle is skipped.
- Moisture override: if the ESP32 soil moisture readings from the two large planters both read above 65% volumetric water content (approximately field capacity for this mix), the morning cycle is reduced to 1.5 minutes.
- 4:30 PM — secondary cycle, 2 minutes, conditional on ambient temperature reading above 32°C (sourced from a nearby weather station via the OpenWeatherMap API in Home Assistant). This targets supplemental cooling for the ornamentals which show heat stress above 35°C on exposed balcony surfaces.
Over three months, this schedule delivered 187 automated watering events, skipped 34 due to rainfall, and ran reduced cycles 22 times based on moisture readings. Manual intervention was required twice — once when an emitter clogged with sediment and once when the outdoor tap was closed during building maintenance without prior notice.
Water Consumption
Before automation, estimated manual watering delivered approximately 15–20 litres daily on non-rain days. The automated system averages 8.4 litres per watering day — a reduction of roughly 50%. Container plants that previously showed intermittent wilting due to inconsistent weekend watering showed no wilting events during the three-month observation period.
PUB (Singapore's national water agency) charges residential water at SGD 1.21 per cubic metre for the first 40 m³. At these consumption volumes, the water cost saving is marginal — approximately SGD 2.80 per month. The value is in consistent plant health rather than cost reduction.
What Would Be Done Differently
The 24V AC solenoid valve requires a transformer that adds a point of failure and an always-on standby draw of approximately 3W. A battery-powered DC solenoid (12V DC, opened only during watering) would have been more reliable for outdoor use in a humid environment and would not require mains power at the balcony. This change is planned for the next revision.
Secondly, the ESP32 moisture sensor board was mounted in a weatherproof box with a cable gland — but the cable gland on the soil sensor leads itself is not rated for continuous outdoor use. At the 11-week mark, moisture ingress into the connector showed up as erratic readings. Conformal coating on the connector would prevent this.
Singapore's National Environment Agency publishes historical rainfall data by station and hour, which can be pulled via API into Home Assistant to supplement or replace the hardware rain sensor — this integration is in progress and will be documented in a follow-up article.