While taking care of everything else the Arduino serves a JSON REST interface which the jQuery Mobile UI communicates with using backbone.js. The index page Arduino generates contains references to js and css.
This way it's quite easy to control multiple devices and the UI gets updated to all of them at once.
Data measurements and logging
Measures electric conductivity (amount of nutrients), pH, water temperature, air temperature and humidity
Measurements are stored to a SD card as CSV files.
Logs can be viewed from the UI by day, week and month
8 relay outputs outputting 12V
Each output can be configured to react to user defined thresholds: eg. when nutrients level or pH goes outside
the desired range the device will run the dosage pumps for the user defined time until target value is reached
Each relay output can be configured with timer eg. for lights and irrigation
When timer is active it can be configured to perform an on-off cycle set by the user
The 12V outputs can drive larger solid state relays to control high power devices such as ballasts
Network and UI
User interface can be accessed with standard web browser
User configurable basic HTTP-authentication
UI designed for tablets
Responsive UI to support low resolution mobile clients
Ethernet connection (wifi bridge makes it wireless)