
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.












