Skip to main content

Smart wifi controlled irrigation system using Sonoff and Home Assistant on Raspberry Pi - Part 1

If you have a backyard just for the sake of having one or it came with the house and you hate watering your garden or lawn/backyard then you have come to the right place. I genuinely believe that it is a waste of my valuable time. I would rather watch bachelorette on TV than go outside, turn on tap, hold garden hose in hand to water. Too much work!!
Luckily, we have things like sprinkler system, soaker etc which makes things a bit easy. But you still have to get off that comfy couch and turn on tap (then turn off if there's no tap timer in place).


** Skip to the youtube video part if reading is not your thing 


When I first moved into my house at first it was exciting to get a backyard (decent size), but soon that turned on annoyance when it came down maintaining it, specially the watering part. I laid bunch sprinklers and soaker through out the yard and bought tap timer but I still needed to routinely turn on the tap timer. Eventually few days ago I had enough of this rubbish and decided to do something about.

In my opinion, we really should have had talking, walking robots (like the Jetsons) by now to do these pesky house chores; what a disappointment!!

But at least we have IoT; and that's exactly what I used to make the dumb tap timer smart (again).
  • I already have a home automation system (the voice controlled AI I built few years ago which is dumb as potato, but understands some basic commands).
  • I know of cheap wifi switches that's available these days.
  • I know how to program
  • I know how to watch youtube videos.
WHAT Did I Do?
Combining all of the above skills I decided to build a automated or semi automated watering system for my backyard that will
  • Fundamentally, remotely turn on off water in my backyard -- Part 1
  • I can turn it on or off from anywhere in the world using any mobile/tab/laptop. -- Part 1
  • Once it is turned on it will auto turn off after 15 mins -- Part 1
  • I will run without my intervention by analysing weather data and my manual usage -- Part 2
  • Cloud based automation but connected to home assistant -- Part 2

HOW did I do it, exactly? 

The Smart Watering System Project - Part 1

At a very high level 
  • I built a water control system using solenoid valve
  • solenoid valve is connected to a IoT device
  • the IoT device is controlled using home assistant
So, like a true Architect I started with a diagram and I came up with a plan, first.
(** yep I am very particular about planning, in my opinion people who jump on things before planning should go to Mars; Earth ain't a place for them)


  1. Measure tap to ground distance and where (how far away from the tap) the solenoid valve should be placed and cut/use poly pipes to connect waterflow from tap to solenoid valve and solenoid valve to garden hose/soaker/sprinkler.
Setup the water flow from tap:
  1. Attach a "Tap Nut & Tail" to the garden tap and fix poly pipe to ground.
  2. Attach elbow to the join poly pipe from tap and poly pipe to solenoid (so that the solenoid is away from the tap and closed to power source)
  3. Attach a joiner to the solenoid valve and fix the poly pipe to its other end. This is the input pipe to the solenoid.
  4. Attach a 2nd joiner to the other end (output flow) of the solenoid and fix a poly pipe. This is the output pipe.
Setup the power supply from mains:
  1. Solenoid valves are usually 24VAC which means a 220VAC to 24VAC power adaptor needs to be hooked up with the valve wires. You will also need 2 gel caps to secure and waterproof the wire joins.
  2. Get/Buy a Sonoff wifi switch (I bought basic, because I am cheap). And flash it with tasmota firmware so that it connect to Home Assistant using MQTT. !this is important. Because it makes you sound clever. Also there's no way to connect eWilink to HA. The main purpose is to not connect sonoff and HA via cloud rather use it locally as much as possible. In this case flashing with tasmota makes it work locally via MQTT and its super fast.
  3. Add the switch to Home Assistant. !important: this is how you show off to random people how clever you are.
  4. Add the Sonoff switch to an extension chord. This extension chord will plug into the mains power.
  5. Plug the connected adapter to the sonoff extention chord.

Some programming

  • Add Sonoff in Home Assistant (my code below)
switch
- platform: mqtt name: "smart water" state_topic: "smartthings/water/switch 01" command_topic: "cmd/smartthings/water/switch 01" payload_on: "on" payload_off: "off" retain: true
  • Create Script in Home Assistant to turn off the switch after 15 mins
- alias: Turn off water system after running for 15 mins
trigger: platform: state entity_id: switch.smart_water from: "off" to: "on" for: minutes: 15 action: service: switch.turn_off entity_id: switch.smart_water


Power on, Tap on, Switch from HA, See the magic. 
(Once you achieve this and see water flow in your lawn/backyard with a touch from mobile phone with or without being connected to wifi, if this doesn't bring smile/smerk on your face then you sir, are a monster.)

Video /


Photos / 

Bucket full of plumbing stuff

started to assemble things

Plumbing assembled

This is how it is powered

End to end finished system


Things I used to build it:
  • 2 x Tap Nut & Tail == $6
  • 1 x Elbow == $4
  • 2 x 1 metre long poly pipe = $2
  • 6 x poly joiners == $16
  • 6 x clams/rings == $9
  • 1 x Sonoff == $15
  • 1 x Solenoid Valve == $21
  • 1 x Power Cable Extension Chord == $4
  • 1 x 24VAC Adapter == $22



Poly Pipe

Joiner

Solenoid Valve 24VAC

Elbow

Tap Nut & Tail


Sonoff
power adaptor


Why not buy one of them off the shelf stuffs:
Well few reasons..
  • Bluetooth tap controls are shit; sometime works sometime doesn't. On top I am still stuck with "I have to be in the house to turn it on". So I am not truly free. Plus they are not really that cheap.
  • Irrigation controllers are dumb; You put input (they call it program, lolz) to turn on water on a certain day of the week, certain time of the day; But if at that time if it is raining the dumb crap will still turn on water. Plus they are expensive.
  • Finally there are some tap controls that are truly advanced like cloud based, programmable scheduling functionality etc. So these ones can be turned on remotely, programmed to auto turn on, some even comes with rain alert. So OK that would have worked. But I still have issues; like they are expensive as and I am cheap as; so we no match. And there's no "for fun's sake" factor in it. And of course I could not have written this blog post to brag about if I had bought one of these tap controllers.

Price Beat Guarantee

The total amount it costed me is $99. By far I have not found a off the shelf irrigation system that costs cheaper. Plus when I will join the 2nd solenoid valve I will just have to spend $30 more. So for $129 I am getting 2 controlled water flow system. The cheapest off the shelf I found is the B-Hyve wifi tap timer that cost's $139 each so 2 will cost me $278 AUD, that's super expensive for me.


What's next:

  • Build the cloud app (I will post on part 2)
  • Connect it to read from Evernote that will read my preferred days (of the week) for watering 
  • Connect it to trigger HA to trigger solenoid -- So I wont have


Then
Add a 2nd solenoid to water the other side of the backyard. And turn them on off in chrono order.


Pretty cool eh!!

Comments

Popular posts from this blog

Reimagining Logs: Building AI powered Conversational Observability System

It is mid-2025 and the cogs of AI are at full speed. So we (I and Mobin) decided to do our own AI project. We called it "IntelliLogs".  IntelliLogs at a glance: Demo:  https://www.youtube.com/watch?v=OXMlORwyMQk In this post I will describe why we did what we did, what is it that we did and how we did it. I will share my personal experience. I am hoping this will, at least, be an interesting read. Table of contents: Why IntelliLogs What is IntelliLogs How IntelliLogs was developed Future of IntelliLogs Conclusion References Why IntelliLogs: Personal motivation ðŸ’ª to this were: Explore and experience what does an AI app look like from an architectural and engineering perspective Explore the realm of Huge LLMs (eg: GPT-4.1-170B,  Gemini Pro etc) vs small LLMs (eg: granite-7b, gemma-4b) Explore the possibilities of model tuning / making a model without being a data scientist. How easy or hard it is, what tools available etc. We also wanted to tackle a "not too far from ...

The story of a Hack Job

"So, you have hacked it" -- Few days ago one of the guys at work passed me this comment on a random discussion about something I built. I paused for a moment and pondered: Do I reply defending how that's not a hack. OR Do I just not bother I picked the second option for 2 reasons: It was late. It probably isn't worth defending the "hack vs" topic as the comment passed was out of context. So I chose the next best action and replied "Yep, sure did and it is working great.". I felt like Batman in the moment. In this post I will rant about the knowledge gap around hacking and then describe about one of the components of my home automation project (really, this is the main reason for this post) and use that as an example how hacking is cool and does not always mean bad. But first lets align on my definition of hacking: People use this term in good and bad, both ways. For example: "He/she did a hack job" -- Yeah, that probably...

Understanding The Ingress and The Mesh components of Service Mesh

I wrote about the key concepts about service mesh and how to evaluate the requirements for a service mesh in my previous post here:  Deciphering the hype of Service Mesh . This post is a follow up from there covering the technical aspects. Part 1:   Deciphering the hype of Service Mesh Part 2:   Understanding The Ingress and The Mesh components of Service Mesh. Part 3: Uderstanding the observability component of Service Mesh (TBD in another post).  Almost all popular service mesh technologies/tools (eg: Istio, LinkerD) have both ingress and mesh capabilities. Conceptually, I see them as 2 mutually exclusive domain (integrated nicely by the underlying tool). Understanding  the ingress  and  the mesh  components individually, such as what they offer, what I can do with them etc, was the basic building block to my understanding of service mesh technology as a whole. This is arguably the most mis-represented topic in the internet. So, I thought,...

CKA Exam; May 2024: My take on it and cheat sheet

So, I finally got the little green tick of having CKA certification in my certification list. I put off this exam for so long that it seriously became not funny anymore. The internet has quite literally way more than 1000 posts on this topic. But what harm would one more post cause? So here's mine. I will write it from my perspective. I am writing this post just in case if anyone benefits from it, as I predict there could be many on the same boat as me. Background: Kubernetes, modern application architecture, DevSecOps etc are not new territory for me. In fact, I think I am fairly versed in K8s and related tech stack. But due my own imposter syndrome I have been putting off sitting the CKA exam. However, last week I thought about the CKA as "just another approval for my skills" and got the nudge to sit the exam.  Here's what I did till the day I sat for the exam. (Everybody is different but the below worked for me the best) The preparation: As I have been working with...

Openshift-Powered Homelab | Why, What, How

I wanted to build a Homelab for some time but it was taking a backseat as I always had access to cloud environments (eg: cloud accounts, VMware DC etc) and the use cases I was focusing on didn't really warrant for one. But lately, some new developments and opportunities in the industry triggered the need to explore use cases in a bare-metal server environment, ultimately leading to the built of my own homelab, called MetalSNO. In this post, I will discuss some of my key reasons for building a homelab, the goals I set for it, and the process I followed to building one from scratch. I'll conclude with some reflections on whether it was truly worth it and what I plan to do with it going forward. Compelling reasons (The Why ) My uses cases for a homelab weren't about hosting plex server, home automation etc (I have them on Raspberry PIs for some years now). My Homelab is really about exploring technologies and concepts that are on par with industry trend. Below are some of the ...