Power Outlets, Strips and Controllers - Automation
How to automate your garden. One of the more challenging aspects of running a automated system at home is setting up the infrastructure needed to control power to the various devices in any home growing operations.
We can break this down into the most common components that need a timer.
High pressure Cycle Pump and or Solenoid (most difficult; needs seconds timer)
Low pressure drain pump
Lights for VEG
Lights for Bloom
Exhaust Fan
Humidifier
Air pump/stones for RES
Below are the various products I have used and tested in my grow tents over years.
Solutions and Products
Kasa Power Strips
Summary:
Overall a good little power strip for very little money; can automate most of the functions in grow tent. The exceptions being the cycle pump due to the lack of resolution of timer (does not support seconds).
App is mostly ok; take about 10mins to figure out. Ran for about 6 months with no real issues; had it kicking on the grow VEG light, exhaust fan and drain pump on a daily basis. Around 800 watts draw.
Product page:
Pros
15 amp
Cheap
simple to use with mobile app interface
Can schedule timers down to minute resolution through the app
Supports both cycle and time/day ops
Has metrics on power usage for each outlet
wifi
Cons
cheap
Relays seem a bit “home grade”; not sure I would use for 10+amps (ie: would probably relay larger grow lights)
Cheap, not a commercial product.
API is somewhat available, they had a firmware that disabled for awhile and then patched back in. Overall some open source around for better automation.
Conclusion
Strong Buy for starting out; for 50 bucks it is hard to go wrong and can cover 90% of garden automation. Cannot believe how cheap it is.
DLI - Digital loggers Web Power switch
Summary:
Industrial grade power switch that allows control via wireless ethernet. Works 100% offline and no cloud / remote mgmt. required; has a embedded Linux OS.
Product Page:
https://www.digital-loggers.com/lpc.html
Pros
15 amp
well/over-built; heavy duty cycle
custom scripting
Supports just about everything
wifi
Massive relays can support grow lights
Full API
Cons
Complex and requires some basic LUA scripting
Expensive - commercial product.
Hard to setup, no wizards here
LUA code for controller sample
--[[ Power controller user script code.
The scripting implementation has changed, and is no longer compatible
with the older BASIC implementation. The most important changes are:
- Now Lua-based.
- No more line numbers, blocks of code identified by functions.
- Most of ON, OFF, etc. are kept as legacy functions, which can be called like
e.g ON(2345), ON("2345") or ON "2345", your choice.
Execution is still based on threads. Now threads are more visible and
manageable. Try starting some and you'll see them appearing in the
list.
Scripting samples are now available as snippets (below), separate from
the main script code. You can copy/paste them from/to the main script.
Stock snippets have names starting with 'default.'; changing or
creating snippets with such names is not recommended as your changes
may be erased on an upgrade.
]]--
function start_all_the_things()
-- freaking lua
-- thread.run(outlet_glight1_on_schedule, "azsis lighttttt!", "outlet_glight1_on_schedule")
thread.run(outlet_pump2_on_schedule, "zeee pump!", "outlet_pump2_on_schedule")
thread.run(outlet_exhaust_on_schedule, "kill all the skunks", "outlet_exhaust_on_schedule")
end
function outlet_glight1_on_schedule()
-- light grow switch, runs for 12 hours on / 12 hours off
while true do
local event = wait_until({hour=13,min=20},{hour=1,min=20})
if event == 1 then
outlet[1].on()
else -- event == 2
outlet[1].off()
end
delay(120) -- prevent it from running more than once in the same minute
end
end
function outlet_pump2_on_schedule()
-- drain pump, runs for 1 min per hour
while true do
local event = wait_until({min=1},{min=2})
if event == 1 then
outlet[8].on()
else -- event == 2
outlet[8].off()
end
delay(55) -- prevent it from running more than once in the same minute
end
end
function outlet_exhaust_on_schedule()
-- exhaust fan run for 15 mins per hour
while true do
local event = wait_until({min=1},{min=45})
if event == 1 then
outlet[2].on()
else -- event == 2
outlet[2].off()
end
delay(55) -- prevent it from running more than once in the same minute
end
end
Buy me a coffee here (all donations will go back into garden!) https://www.buymeacoffee.com/jasoncae