Home Automation Project: Automating hydroponics with Linux

I have a black thumb. It’s not a hammer-related accident. I can’t seem grow anything in a garden or pot. Over the years, I have bought hundreds (or even thousands!) of seeds and gadgets to help me grow a garden. I have spent thousands of dollars on seeds and gadgets to help me plant a garden. Every year it fails.
I was able to start gardening in the middle winter this year. In Michigan. My only option was hydroponics in my basement. This changed my entire gardening experience. Hydroponic gardening is amazing! !

My first experience with hydroponics was in a deep-water culture setup that used an analog timer plug to time the lights. (The deep water culture setup is amazing and worthy of an entire article, but it’s not Linux-related, just super cool!)
Learn how to become a security expert with SPOTO’s Cybersecurity Training
Start training
This worked perfectly in winter. It only required a power outlet and, with the exception of a 6-hour power interruption that messed up the timer for the winter, it worked flawlessly throughout the winter.
* Move hydroponics to the backyard (southside of house).
* Create a greenhouse to protect the lights from the rain
* Time lighting to add sunshine
This is the tricky part. My crops (basil and tomatoes) thrive on 16 hours of sunlight per day. It’s not that we get much sun in Michigan, even during the summer. Although the plants will thrive with less sun, I, like Mark Watney plan to scientifically study my garden! Although I could use my analog clock to calculate the sunrise and sunset times, it changes every day so I need something smarter. This is where home automation comes in. Home automation can often come with some disturbing features.
Kvetching about Clouds
My SmartThings hub is in my home. My house has Amazon Alexas. My house has Google Home devices. I also have a Jibo in the house. Each of these devices requires an internet connection and constant data flow to the cloud. This bothers me on many fronts. One, security concerns about personal data being transferred to and from third-party companies. My smart house can become really dumb if my internet connection is down.
The privacy and security aspect of technology should be the most concerning to a technologist. It does bother me, I have to admit. It is quite disruptive to have a smart home go dark when the Internet goes down. Both of these problems are valid reasons to question traditional home automation.
I don’t want my plants dying because the Internet goes down so I searched for an option to automate everything locally. Thanks to Adam, my friend, I found it. Home Assistant is a Linux-based platform for home automation that runs locally. Although it is difficult to learn, once you get started, you will likely never stop using it!
Meet Your Home Assistant
Home Assistant is a software program that can be integrated with a variety of home automation devices. It can also be integrated with cloud devices such as Amazon Echo and Google Home. However, it doesn’t rely on cloud services to function. It doesn’t even require an internet connection. While it is nice to have an internet connection to install updates and other such things, all automation takes place in the house. A Raspberry Pi running Linux. Awesome.
Although Home Assistant can be installed on any Linux machine it is possible to do so. However, they have been focusing their efforts on hass.io which handles system updates and includes a web-based GUI that allows configuration of the automation platform. The GUI is still in its infancy, but it’s very user-friendly. I wanted the best Home Assistant experience so I followed the instructions and created a MicroSD Card with the OS on it. I then popped it into one my Raspberry Pi devices.