Having experimented with a few Zigbee soil moisture sensors, I’ve discovered that they vary wildly in what they report for soil moisture between brands. That’s fine, since I’m trying to decide on one brand to buy, so the variance between brands doesn’t concern me as much as the variance between two devices of the same brand. With that in mind, I decided to buy two of all of the cheap Zigbee soil sensors I could find. I bought two of the following and stuck them all into a bucket of soil:
- Plaid Spruce
- Third Reality
- Afra II
- Haozee
- Giexpress (“Giex”)/Tuya
A few notes about pairing and stuck-value issues:
- The Giex/Tuya was the biggest pain to deal with. One of the units was just dead, completely (I have had the two Geix for about a year, so one of them had died in that time). The second one was reporting incorrect temperatures (stuck at 32F, then I’d remove and re-pair and it would be stuck at 129F, then remove and re-pair and it would be stuck at 32F… so I eventually just tossed both of these out of the test. I’m kinda fine with that, because these were the clunkiest of the brands… needing four screws for accessing the battery compartment, and these were the only resistive-type sensors in the batch, which aren’t as good as capacitive type). So, they got eliminated quickly.
- The Plaid Spruce are getting harder to find, these days, and they used to be quite pricey (compared to other sensors). They use a magnet instead of a button in order to trigger inclusion or calibration. It’s a cute idea to prevent needing to access the electronics inside, but it’s just too fiddly. You have to get the magnet in just the right spot. Most of the time, I had to remove the top just so I could see exactly where to put the magnet… at which point, what’s the benefit in the magnet idea? One of the Spruces got stuck on certain moisture readings until I removed/re-paired it.
- One of the Afra II’s was quite a pain. All entities became “unavailable”, then I re-paired, but moisture was stuck at 0%, then temp got stuck at 86F, and I re-paired and temp got stuck again, then I re-paired, then moisture and battery entities were “unavailable”, then moisture got stuck at 0%, re-pair, re-pair, re-pair… I finally got it to work, but what a headache.
- The Haozee and Third Reality sensors had no issues with unavailable entities or stuck values.
So, on to the values these things were reporting. Keep in mind that I’m not looking for a particular value for a particular moistness of soil. What I want is for the difference between the two sensors of a given brand to be much less than the change they report for wet and dry soil. In other words, if one reports “100%” for wet soil and “90%” for dry, while the other reports “40%” for wet and “20%” for dry, that’s not good, since my plan is to have a universal threshold automation that alerts me whenever any sensor dips below a certain percentage. What’d I’d prefer to see is one reporting, say, “70%” for wet and “30%” for dry while the other reports “60%” for wet and “25%” for dry, since the overall change in their reporting between wet and dry soil is greater than the difference between the two devices.
With that in mind, I let all of the sensors be in dry soil for a few day, and then added a cup of water, evenly, to the bucket, and then let it be for about a week so that the moisture could evaporate away, giving me this:
So, the first take-away, here, is that the various sensors are reporting very different values for the soil moisture, but they all jumped up when I added water. The other thing to notice is that the values change with temperature. All brands did this, to some extent, so we’d like to see these intra-day ripples be smaller than the day-to-day drop from evaporation.
So, let’s look at each of these brands, individually.
AFRA II
These report 0% when dry and around 10% when wet. Not a great range, even though the two devices were fairly close in their readings.
PLAID SPRUCE
These had a huge difference between each other in their readings, with one reporting 7% for dry soil and the other reporting around 25%. For wet soil, they reported around 20% and 30%. I had previously calibrated these units (not all brands have instructions for calibrating the dry/wet points, but Spruce does). Maybe I’ll try calibrating them again.
THIRD REALITY
I liked that the Third Reality units had no pairing nor stuck-value issues, but their reporting range was a little tight (around 50% for dry soil and around 70% for wet). One really strange thing about these was that the intra-day temperature-induced ripple was up for one unit and down for the other.
HAOZEE
Now this is what I like to see! Low values for dry soil, close to 100% for freshly-watered soil, and then a steady decline over the days (with the day-to-day drop being greater than the intra-day temperature-induced spikes).
A word about temperature
All of these units also report temperature, and they all report similar measurements up until about 80F. After that, they start reporting very different values. In the graph, I’m also including the reading from an Aeotec temperature sensor under a radiation shield.
Notice that:
- Beyond about 80 degrees, we see the temperatures vary by as much as 20F
- Those weird moisture level spikes that we see correspond to the mid-day temperature spikes.
Anyway, I’m going to see if any of these models have calibration procedures. Meanwhile, I’m really leaning toward the Haozee sensor.