I’d thought I’d add my two penneth worth.
Initially I had considered going the OpenSprinkler route, but at the end I decided to save the money or effort and go my tried and tested route. So what I’ve used:
- 1 x Wemos D1 Mini - to drive relays and sensors
- 1 x Wemos D1 Mini + OLED to show zones states. This one is yet to be implemented, but I’m nearly there. The way I have set it up means that it’s an independent piece that plugs in my PCB once it is ready. It has no effect on the main function.
- 4 x Wemos relay shields
- 5 x momentary push buttons. Four of which are a manual override for the watering of my four zones. The last is a “all zones off” soft kill switch. If things were going pear-shaped there is a 240V mains switch as well.
- 4 x LEDs to show state of play on my 4 zones. I decided for this addition, as my OLED display code was slow coming and in my opinion is is quicker and more obvious to see the state on LEDs than on a small little 1" display.
- 1 x 240V - 24VAC transformer
- 1 x 240V - 5VDC transformer
- 4 x Hunter 24VAC solenoids (PGV-101G and PGV-101JT - G)
- a few other bits like PCB development boards and connectors.
- and … hass, obviously.
The main wemos (ESP8266 board) control board is running the brilliant arendst/TASMOTA firmware and communicates with the Home Assistant via MQTT.
The firmware sports options for driving relays, as well as switches that are internally coupled with the relay controls. This means that you can equip your design with hardware over-ride buttons, eliminating the sole dependency on HA to be the ring master. In my designs I always like to introduce manual redundancy control mechanisms, just in case the WiFi is down, the Home Assistant goes down or is experiencing issues, etc.
The only stumbling block was a flexible enough system for automating the sprinklers. I had considered using a 3rd party solution, such as OpenSpinkler or custom development app Blynk. After much deliberation I scrapped those plans and instead decided to keep all control to HA. That means there is one app to control everything, it minimises and communication issues between systems and reduces complexity for users, aka my wife.
Creating a scheduling system is not HA’s strength though, certainly not on par with OpenSprinkler. But it is possible to have something pretty near good.
I have built upon the solution detailed in this community forum “Creating a[sic] alarm clock”. Basically, hardcoding four Zones with control i.e. enhanced “an alarm clock” for each of them. Currently I have UI elements allowing the user to set time and duration of watering upon the condition there is no rain predicted (WUnderground). This is executed everyday according to the schedule. I will further enhance the logic with a slider dictating repeating pattern from hours to days. Whilst not perfect this should cover most automatic situations. If there is any other situation when the user wants the sprinklers to come on there is the HA manual control via the standard interface, manual buttons on the control box and voice activation via Google Home + IFTTT.
If there is any interest I can show the code and hardware solution.
Now off to plant some veggies!