When I built my place a ‘few’ years back, I had plans of making my garden as smart as the rest of the rest of the place. I started this process in the same manner – making sure all the infrastructure was in place at build time and thus allowing the control system and various other parts to be ‘upgraded’ as I go along. My initial controller was one I brought from the previous place to ‘get things going’ that was quickly ‘upgraded’ to run from my initial CBUS black and white screen, then to my CBUS colour screen and now that my needs are getting more complex I am moving to a Pi!
My current system is ‘ok’ but I need to get rid of original 8 zone restriction and look at some advanced control … I could have expanded my CBUS system, but it meant buying another low voltage relay controller for around AUD400 and then analogue input devices – this adds up real fast and would still take a lot of coding to get it to do what I want! While this would have been fun a few years back, I would rather play with a Pi (or 4!) and then interface them back into CBUS system.
Wandering around the world wide wonder one night I came across the “TIAO Smart Sprinkler Pi V2” board that took my fancy. I had 16 zones that are controlled by the Pi GPIO so I have control over each zone easily as well as a rain sensor (digital) input – so it met my immediate requirements.
The only decision I had left was stay with my Pi thoughts or go for the Arduino version – since I couldn’t find specific details on the Arduino chip being used and hence its memory capacity, etc, I decided on the Pi version as I also had an idea what I wanted to ‘play’ with for functionality but hadn’t defined it too well either yet!
I live in Australia, so the board took a little over 2 weeks to arrive after order – quite good I thought, but I was expecting it to take a little longer and it clashed with a few other ‘life’ projects and my new supply of MicroSD cards hadn’t arrived yet!
Assembly took 5 minutes – as you can see from the below photo, I used an old Pi v2B board (that was originally used as media centre at my work house and has had a few other ‘tasks’ since!).
The initial build was quite standard … NOOBS started it all off in the standard way with everything sitting on my test bench. During the install I made the usual changes: hostname ‘irrigation’, enable SSH, locale en-au.utf-8, timezone Australia/Perth, sudo passwd.
With the basic system built, I could mount the board in one of my old controller housings that was going to also provide my 24v AC supply – this old system had also been providing the 24v AC supply for my CBUS system for the last few years!
With the hardware all mounted in its new enclosure and 24v run into the TIAO board I could start some checks to make sure all was working. On their WIKI site I found the TSSPiTest software. I used wget to get a copy on the Pi and it happily enabled each of the ports on my new board. Documentation for the tool is at their page software that is quite brief – on testing with the meter it seems that it just pulses each zone and does not latch for the test period – no problems, it is just for testing and all works ok!
Next was what software to run or roll my own!
I was aware of the OpenSprinkler project and it was the one I had intended to use. Installation was quite simple and followed the detail from the OpenThings page “Installing and Updating the Unified firmware“:
apt install authbind
chgrp webserver /etc/authbind/byport/80
chgrp webserver /etc/authbind/byport/8080
chmod 750 /etc/authbind/byport/80
chmod 750 /etc/authbind/byport/8080
adduser opensprinkler gpio
adduser opensprinkler webserver
adduser opensprinkler sudo
su - opensprinkler
git clone https://github.com/OpenSprinkler/OpenSprinklerGen2.git .
sudo update-rc.d OpenSprinkler remove
I selected to not run OpenSprinkler at startup as I was still evaluating it … running it could be done with:
authbind --deep ./OpenSprinkler
And the system could be accessed at http://irrigation:8080 (I think it asked for a password and it was opendoor). I configured the system for the 16 zones with #16 as my master zone, added Wunderground and all worked as on their site … I even managed to connect it to my OpenHAB installation using the standard extension .. however connectivity was very basic and it didnt really give me what I was looking for 🙁
So next off the cab was Sprinklers_pi, and using their upgrading page:
adduser sprinklerspi gpio
adduser sprinklerspi webserver
adduser sprinklerspi sudo
su - sprinklerspi
tar xf v1.1.4.tar.gz
sudo make install
sudo update-rc.d sprinklers_pi remove
sudo service sprinklers_pi start
The system was accessed the same way (http://irrigation:8080) and used the same logon details (opendoor) .. however, while I could find some references to a ‘pump’ function, I couldn’t work out what this meant as there was no other reference to it .. after reading a LOT more and looking into the code, it seems to turn zone 16 into a pump control output. But it was all poorly documented and wasn’t going to be much better than OpenSprinkler, so onto the next!
The last candidate I had before looking to roll my own was SIP – Sustainable Irrigation Platform.
Installation was fairly similar:
adduser sip gpio
adduser sip webserver
adduser sip sudo
su - sip
git clone https://github.com/Dan-in-CA/SIP
sudo python sip.py
The system was accessed in a similar way but on port 80 (http://irrigation:80) and used the same logon details (opendoor) – I could configure it for 16 zones by configuring for an extension board and could set the master to be zone 16 as well as a number of other things the others could do …
But … SIP also has plugins … and one of those is MQTT … yippee, the fun starts, lets see what we can do!
You can explore the options by going to PLUGINS -> MANAGE PLUGINS -> BROWSE MORE .. I selected the 3x MQTT ones, installed and then enabled them …
After restarting SIP, I now had some new options in the PLUGINS menu to configure MQTT … since I had also read in their WIKI about the dependence on MQTT running, I decided to also install mosquitto locally …
sudo apt install mosquitto
sudo apt install mosquitto-clients
sudo pip install paho-mqtt