A moisture value on a dashboard and a pump button can make automatic watering look finished.
There is still a large gap between that demo and a system that can safely care for a plant.
Safety scope: This is a design record for short, supervised trials with M5Stack Unit Watering. The official page does not specify a continuous-duty limit, dry-run tolerance, or outdoor ingress rating, so this article does not infer them or recommend unattended operation.
On July 21, 2026, the live API returned the state of one soil-moisture sensor and one pump.
At that point, home-worker automation was disabled, no trigger threshold was configured, and auto.waters—successful automatic decisions since the current process started—was zero. That counter is not a total: it excludes manual watering, direct ESP requests, and the separate timer path.
This is a point-in-time record of the running system, not evidence of long-term unattended operation.
Connection details, wiring identifiers, and credentials are not published.
What we verified
The July 21, 2026 check queried one controller and returned one soil-moisture sensor and one pump.
There is also a pump-control path, but that review did not verify physical pump operation or water delivery.
home-worker automation state includes sensor and pump state, threshold, duration, interval, cooldown, and auto.waters. The last field is an in-memory count of successful automatic decisions since process start, not watering history across every path.
The reviewed state was as follows.
Item
State on July 21, 2026
What it means
Sensor
A value was available
The reading path responded
Pump
Reported as off by the API
Physical stopping and absence of water flow were not independently verified
Automation
Disabled
Automatic watering will not run, and no dry-soil threshold is configured
Threshold
Not configured
The dry-soil decision was not calibrated
home-worker automatic decisions
Zero since process start
Excludes manual, direct, and separate-timer watering; it is not total watering history
A real grow bed showing plants, lights, and wiring
Photo: a grow bed with plants, lights, and wiring. It records the physical arrangement but does not demonstrate pump operation or a history of automatic watering.
This is not necessarily a fault report.
It may be a deliberately safe initial state, but the API response alone does not prove that intent.
A raw sensor value is not a percentage
A soil-moisture probe's raw output changes with the sensor, soil, insertion depth, power, and temperature.
A raw sensor value cannot be interpreted directly as a moisture percentage.
Before choosing a threshold, measure at least two reference conditions in the actual planter.
The dry side: just before the plant would normally be watered.
The wet side: after watering thoroughly and allowing excess water to drain.
Collect a range over several days rather than one sample.
Recalibrate after moving or replacing the probe.
The controller also needs a cooldown and a new reading after watering so it does not chatter around the threshold.
The complete cycle is not “dry means pump.”
It is “validate, water briefly, wait, and measure again.”
Design one safe cycle
Before enabling automatic watering, fix the order of operations.
Read the sensor and reject missing readings or values with implausible sudden jumps.
Compare the result with a calibrated threshold.
If it is dry, run the pump briefly with a hard upper limit.
Stop the pump unconditionally and enter a cooldown.
Wait for water to spread through the soil, then measure again.
If the value does not move, alert instead of adding more water.
The final step prevents a serious class of failures.
With an empty reservoir, detached tube, or displaced sensor, repeated pump runs can damage the floor or the pump before they help the plant.
Software should enforce maximum runtime, daily limits, no rapid repeats, and a manual stop.
The physical setup needs a low-voltage pump supply, backflow protection, a catch tray, and secure tubing.
Before unattended use, observe several complete cycles in person, from dry-soil detection through watering, stopping, and remeasurement.
Check both controllers independently
The deployed setup has two independent ESP controllers, each with its own sensor and pump. The home-worker garden proxy targets one configured controller, so a successful proxy response does not prove both are healthy. A status check must query each controller's /status and report connectivity, raw moisture, pump state, safe mode, and fault flags separately.
Two planters dry at different rates. Keep sensors, pumps, thresholds, run times, cooldowns, and records separate, and cap each path so one failure cannot consume the other planter's budget. Never present one proxy response or one automatic-decision counter as whole-system state or total watering history.
The next verification sequence
The safe next step is not to flip automation on immediately.
Measure dry and wet references for the actual soil and planter.
Run the pump manually for a short period, then verify the delivered water volume and that the pump stops.
Record how the sensor changes after watering.
Simulate an empty reservoir non-destructively with mocked input or a level sensor, and verify that the system does not add watering cycles.
Do not intentionally run an unspecified pump dry; keep physical tests supervised with an immediate stop available.
Run an observation-only mode that alerts without watering.
Enable short daytime automation windows only after those checks pass.
Plants do not dry at the same rate every day, which is why a sensor can outperform a fixed timer.
But attaching a sensor does not make the system intelligent by itself.
Only a design that measures, stops, and verifies again is ready to look after a planter while nobody is watching.
The official materials confirm the capacitive sensor, 5 W pump, and 5 V pin. They do not state continuous-duty time, dry-run tolerance, or an ingress rating, so the article treats those limits as unknown.