
Seeed Studio sent us a review sample of the XIAO Soil Moisture Sensor powered by the XIAO ESP32C6 wireless module and running on a single AA battery. Designed for ultra-low power consumption, it’s supposed to offer long-lasting operation with dynamic adjustment of monitoring intervals. It’s preloaded with ESPHome firmware and is fully compatible with Home Assistant. It’s ideal for indoor plants monitoring, but it can’t be used outdoors since the 3D printed enclosure is not weatherproof.
In this review, we’ll start with an unboxing, do a quick teardown, and test it with Home Assistant to receive a notification on our smartphone when the soil is dry.
XIAO Soil Moisture Sensor specifications
- Wireless module – XIAO ESP32C6
- Wireless MCU – Espressif Systems ESP32-C6
- CPU
- 32-bit RISC-V core up to 160 MHz
- Low-power RISC-V core up to 20 MHz
- Memory – 512 KB SRAM, 16KB low-power SRAM
- Storage – 320 KB ROM, 4MB flash
- Wireless – 2.4 GHz WiFi 6 (note: the ESP32-C6 also supports Bluetooth 5.0 LE/Mesh and 802.15.4 for Zigbee 3.0, Thread, and Matter, but those are not listed in the specs of the soil sensor)
- CPU
- USB – USB Type-C for programming (requires opening the case, not used in this review)
- Wireless MCU – Espressif Systems ESP32-C6
- Misc
- Button for detection status and calibration process
- RGB LED – Green: normal, Yellow: almost dry, Red: dry (only active when the user presses the button)
- Power Supply – AA battery (not provided)
- Case – Black 3D printed case
- Certifications – HSCODE 9025800090, USHSCODE 9025801000, UPC, EUHSCODE 9013101000, COO (China)
Unboxing
The package only contains the XIAO Soil Moisture Sensor with its 3D-printed black enclosure. On the left side of the photo below, we’ll find the RGB LED, and on the left side, the sensor probe, which is a PCB designed to be inserted into the soil for measuring moisture. One side of the probe features a depth scale (0–80 mm) to help insert the sensor at the appropriate depth for different plant root systems, while the other side has decorative patterns and the words “XIAO / SOIL” on the silkscreen.
The button can be found on the top of the 3D printed case. It allows the user to instantly trigger a soil moisture measurement and see the status with the RGB LED.

We opened the case with a plastic prying tool. This provides access to the AA battery holder.

We can take the main PCB out of the enclosure after removing four screws. This reveals the XIAO ESP32-C6 modules soldered on the other side, along with a 2.4 GHz WiFi 6 antenna attached to the IPEX connector of the module.
First try of the XIAO Soil Moisture Sensor
The first step is to insert an AA battery. The XIAO Soil Moisture Sensor is pre-calibrated and ready-to-use, so we can just try it immediately. Just insert it into the soil, and press the button to get a reading of the three supported moisture levels.
- Normal – No need to water the plant. Green LED.

- Almost dry – Time to think about watering the plant. Yellow LED.

- Dry – Time to water the plant. Red LED

When connected to Home Assistant, the firmware will report the status at specific times depending on the humidity level:
- Normal: measurement once every 8 hours
- Almost Dry: measurement once every hour
- Dry: measurement every 15 minutes
This is done to extend the battery life. That also means watering your plant regularly before it gets to the dry level will help extend the battery life…
Review of the XIAO Soil Moisture Sensor with Home Assistant
We’ll use the same Home Assistant server (a Raspberry Pi 4) as in our review of the reTerminal E1001 and E1002 ePaper displays.
Now connect to the “XIAO-Soil-Moisture-Monitor” SSD with your computer or smartphone.

Access http://192.168.4.1 in a web browser to connect the sensor to your local WiFi access point by selecting the SSID and entering the password.
Now, go to the Home Assistant web interface and add the device in Settings -> Devices & Services -> Integrations -> ESPHome -> add device.

The XIAO “Solid Moisture Monitor” should now show up in the Home Assistant Dashboard, displaying both the “Battery measurement” and the “Soil Moisture Status” entities.


The detected battery level is rather low, probably because we used a rechargeable AA battery.
Next, we will create an Automation to send a notification to your smartphone when the soil is dry—every day at 5 PM. We’ll start by installing the Home Assistant Companion app on our smartphone and enabling notifications. We’ll need to find the phone’s name. To do so, go back to the Home Assistant web interface in Settings > Devices & Services > Mobile App. In our case, it is “STK-L22”

We can now create a new automation by going to Settings -> Automations & Scenes -> Create Automation -> Create new automation -> Start with an empty automation.

Now click “Add trigger”, select Entity -> State + -> Entity: Soil Moisture Status, and set the To: field to Dry, and save.

We want to send a notification to our smartphone when the soil is dry, every day at 5:15 PM. To do this, add another trigger with Add trigger → Time, set the time to 5:15 PM, and save.

Click on Then do -> Edit in YAML.
Add the following code:
|
1 2 3 4 |
action: notify.mobile_app_Device-name data: message: The soil is dry! It’s time to water the plants. title: Soil Alert |
and save. You’ll get a notification daily at 5:15 pm whenever the XIAO soil moisture status is “Dry”.

After we water the plant…

… we can check the status in Home Assistant, and it will report “Normal Moisture”, and somehow 0% for the battery, even though the sensor is still working normally…C
Conclusion
Based on our testing, Seeed Studio’s XIAO Soil Moisture Sensor works as advertised. When inserting the sensor into the soil and pressing the button for an instant measurement, the LED clearly displays the status (dry/moderate/wet), allowing immediate checking of soil moisture levels. However, one hardware drawback I noticed is that the button is quite stiff and hard to press.
It comes pre-loaded with ESPHome firmware and integrates with Home Assistant out of the box. The system reads soil moisture values accurately and displays them in the Home Assistant Dashboard. We could also set up an automation to receive a notification when the soil is dry. We have some concerns about battery life since it’s based on ESP32-C6, although it stays in deep sleep for eight hours at a time when the plant is watered regularly, helping to extend the battery life. Be prepared to recharge or change the battery every few months.
The XIAO Soil Moisture Sensor can be purchased on Seeed Studio for $9.90 or AliExpress for $11.29.
CNXSoft: This article is a translation of the review on CNX Software Thailand by Suthinee Kerdkaew.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.










Nice. But instead of the annoying notification, proceed with activating some automated device which water the plants for the necessary time, please. Thanks.
That’s totally up to you Caio, we have esphome powered sprinklers all around so would be straight forward to setup. How does your setup looks like?
The issue with these is that they corrode and fail. Any way to test longevity?
Hello Al Sneed,
can you explain what exactly can corrode? Due to the lack of Cathode and Anode and the usage of captive measurement I see no physical reason for an early failure.
Any way thanks for post and I hope you are able to accurate your worries in the future!
Their product page says Anti-corrosion, which should be more resistant to corrosion than traditional PCBs
Why didn’t they use the C6 Zigbee radio instead of Wi-Fi?
That would be much more power efficient.
I see an advantage in skipping ZigBee and use WiFi instead. No hub needed and present WiFi infrastructure can be used. Also with the default measurement interval of 8 hours a battery lifetime of half a year or more can be expected
I’ve coded both Wi-Fi and Zigbee apps on the C6 and measured power consumption. A Wi-Fi session to deliver a few sensor values using MQTT used as much as 10x the power of Zigbee. The fastest I’ve been able to deliver data by Wi-Fi is about 2.8 seconds. Zigbee can deliver the same data in about 600 mS
Most Home Assistant systems already use Zigbee, or a USB Zigbee controller can be added. NO additional hub is required.
When the moisture level drops, this implementation ups the report frequency to as often as every 15 minutes.
I actually created and used my own soil moisture sensor using the very good, but expensive, VH400 probe from Vegetronix for years using an ESP32-S2/Wi-Fi/MQTT. I used the VH400 because it is sealed, has a long cable, and I can bury it at root level in my lawn.
When the C6 w/ Zigbee came out, I switched to Zigbee and never looked back. I’ve created other C6/Zigbee sensors as well. I get much better battery life
2.8 seconds sounds very excessive, probably with DHCP and WPA encryption? If you work on it, you can get it lower than 1 second! Most HA systems actually don’t use zigbee according officiam?m
stats (https://analytics.home-assistant.io/integrations/) and ZigBee does not work without dedicated device (controller/hub) which in most circuim stances is a single point of failure
Go ahead and use battery-powered Wi-Fi devices if you insist.There’s a reason there are very few battery-powered Wi-Fi devices for use with home automation systems and there are at least 5000 Bluetooth, Zigbee, and Z-Wave devices: lower power consumption. I have 60+ trouble-free battery-powered Bluetooth, Zigbee, and Z-Wave devices. Some have been running for three years+ without battery replacement.
I developed some DIY sensors because nothing on the market met my needs. Originally they were ESP32-S2/Wi-Fi. When the ESP32-C6 came out and Espressif released Zigbee libraries for the C6, I converted all to Zigbee and never looked back. The C6 is not as power efficient as dedicated Zigbee SOCs used in commercial devices, but better than using Wi-Fi. And, I dont have to give up encryption to eek out power savings