The user connects sensors and controllers to the network.
The user enters in the species of the plant and the system mainains levels appropriate to that plant. The user could also manually configure the options.
Basic sensors i can think of: soil moisture, air humidity, soil temperature, light levels, soil acidity.
Some or all of these would be activated depending on the setup of the user. There should be ways for the user to add new kinds of sensors.
A GUI would be useful to specify the layout of the garden if there are many different plants and sensors.
There could also be a library of custom parameter sets that users have found to work well for particular species. These should be easily shared, and should have the option of being monetized. I could imagine the marijuana business make heavy use of this feature because of the many hybrid species that exist, each of which has different optimal growing conditions.