Outdoor soil moisture sensor

I came across this recently. Haven’t looked at it in depth yet.

It would be so cool to have a ble equivalent of ESPHome, and use sensors like that moisture one you’ve linked (and lux sensors etc)

If you have an Ecowitt weather station or a GW1100 gateway, I’ve had good results from these battery powered soil moisture sensors.

1 Like

Nice solution. I read good reviews. So i can do my job with only the Wifi/RF Gateway plus the soil moisture sensor, right?

Yes, that is my understanding (Looks like you can buy this kit.) You only need the GW1100 gateway and the sensor. I have this package with 2 soil sensors, leaf wetness detector (not ingergrated with HA yet) and the CO2 Monitor. All (except leaf sensor) working well in HA.

1 Like

I discovered if you angle the leaf sensor (for water run off) it works as an extremely fast detecting “rain sensor”. Detects rain way before the rain gauge does.

ALSO: Make sure you install the provided black rubber cap on the soil sensor battery cover.

I’m quite curious about how these sensors transmit data.

They appear to use RF?

I don’t suppose you have a RF receiver and could try to capture a few signal packages?

With them being RF they shouldn’t need to be paired with a gateway, they should just start transmitting data when powered up?

It is RF (North American:915MHz; Europe:868MHz; Other areas:433MHz) and no, I don’t have a receiver.

1 Like

Just saw your edit, No (traditional) pairing needed, the gateway finds the devices ‘automatically’.

1 Like

Thanks. I was about to order one to have a tinker with.

But I initially mistook the USD price for my AUD currency and thought they were quite good value, but with conversion and shipping, I think they’re slightly too pricey for me.

Think I’ll stick with my DIY waterproofed Mi Flora’s for the moment. Not happy with battery life like a lot of others though…

I bought a bunch of these for indoor use a while ago but haven’t gotten around to using them yet.

AU $0.61 50%OFF | NEW ! Capacitive soil moisture sensor not easy to corrode wide voltage wire for arduino

Hey Tom, I’m still relatively new to a lot of this but I’ve worked with VH400 for years outside of home assistant and currently am trying to integrate them into ESPHome. I’ve been attempting to use the ESP8266 NodeMCU because of the onboard A0 pin but I have a bunch of ESP32’s laying around as well- just curious what your setup is to connect the VH400 analog to the ESP32?

I’m not sure what you mean, you just replied to the details of my setup?

Sorry I wasn’t clearer- there isn’t an analog pin on the ESP32’s right? Did you use an ADC device? I guess my real question is whether there was some advantage to using an ESP32 instead of an ESP8266

No there is not one, there are actually eighteen analogue inputs on the ESP32 :slight_smile:

So I didn’t bother with an external ADC. Even though the ESP32 ADC suffers from a bit of non-linearity at the extreme ends of the range too, just like the ESP8266 ADC.

The advantage is that I needed the extra i/o for other things (irrigation control) and I pretty much only buy Quniled ESP32s now. The performance is better, there are more i/o and built in hardware peripherals for little extra cost.

2 Likes

Wow, I had no idea the ESP32’s had a multiplexing feature like that. Thank you for the response!

I bought the v2.0 of these (Capacitive Soil Moisture Sensor Corrosion Resistant For Arduino Moisture Detection Garden Watering Diy - Sensors - AliExpress) and designed an outdoor 3D printed cover for them (Printables). They are not meant for outdoor use, but with some conformal coating and the cover, I am sure they will last a long time. More details are in the link for the printed cover and here goes the code I use with ESP32 in ESPHome (calibration might differ for you, I used an empty cup and a cup of water to get the extremes):

  - platform: adc
    pin: GPIO34
    name: "Soil Moisture"
    update_interval: 5s
    unit_of_measurement: "%"
    device_class: humidity
    state_class: measurement
    accuracy_decimals: 1
    icon: mdi:water-percent
    attenuation: auto
    filters:
    - sliding_window_moving_average:
        window_size: 60
        send_every: 60
        send_first_at: 60
    - calibrate_linear:
        - 2.48 -> 0.00
        - 0.93 -> 100.00
    - lambda: |
        if (x < 0) return 0; 
        else if (x > 100) return 100;
        else return (x);
4 Likes

Jan,

  1. Thanks for the ESPhome analog config. That is very helpful and useful!!

  2. How are those AliExpress capacitive sensors doing 6months later? Are they corroded? The AliExpress website says “Capacitive Soil Moisture Sensor Corrosion Resistant”

  3. Would you buy them again?

Thx!
VoltVisionFrenchy

  1. You are welcome, it is a little bit outdated already. Nowadays we have the moisture device class and I also expose the raw voltage value for debugging purposes. See the updated code below.
  2. I did not pull the sensors out of the soil for some time (moving the sensors can wildly change the measurements), but they still work fine and looked ok the last time I had one out of the soil. I also did not observe any big shift in the measured values over time.
  3. Depends on the use case. It is a little bit inconvenient to run cables to your planters, but if you have them in one place, it is quite cheap and you do not have to replace any batteries. I do not regret buying them and would buy them again for the right use case.
substitutions:
  sampling_period: 5s
  samples: '60'
  decimals: '1'

sensor:
  - platform: adc
    pin: GPIO33
    name: "Soil Surface Moisture Voltage"
    id: soil_surface_moisture_voltage
    update_interval: ${sampling_period}
    state_class: measurement
    accuracy_decimals: 3
    attenuation: auto
    filters:
    - sliding_window_moving_average:
        window_size: ${samples}
        send_every: ${samples}
        send_first_at: ${samples}
  - platform: template
    name: "Soil Surface Moisture"
    unit_of_measurement: "%"
    device_class: moisture
    state_class: measurement
    accuracy_decimals: ${decimals}
    icon: mdi:water-percent
    lambda: |-
      return id(soil_surface_moisture_voltage).state;
    filters:
    - calibrate_linear:
        - 2.48 -> 0.00
        - 0.95 -> 100.00
    - lambda: |
        if (x < 0) return 0; 
        else if (x > 100) return 100;
        else return (x);

Are there any issues with the response time, I read(Amazon) that the eccobee sensors have a 70 second response time. That long of a response time could be and issue if watering thing like smaller pots(something I want to do)

Lora is good for lower power and longer distance

1 Like