r/SpaceBuckets • u/i-error • 30m ago
Builds My bathroom grow runs on a Shelly dimmer: VPD control loop, radiator via FRITZ!Box, printable humidifier - all open source
OpenGrow is my home grow (two plants in a 60×60 cm tent in my bathroom, legal in Germany) and everything I built to run it, published as it happens: https://opengrow.app/
The controller is a single JavaScript script on a Shelly 0–10 V dimmer. It drives the EC exhaust fan, dims the LED lamp on a weekly PPFD schedule, and switches a dehumidifier. It also sets the bathroom radiator through the FRITZ!Box's thermostat API, because the tent breathes bathroom air. The loop is a PI controller on VPD (vapour pressure deficit), with feed-forward and a check that notices when more exhaust only cools the tent instead of drying it. A second script on the lamp's dimmer is a watchdog.
The site has:
- a live device map (5 s updates)
- a diary with daily climate charts and photo time-lapses
- the controller source with a deploy tool
- a 3D-printable fan humidifier (STL/OpenSCAD, Three.js viewer)
- a changelog of every control change
Full disclosure: I used AI quite a lot to help write the code. The hardware, the testing and all the tuning happened on the real tent, though, and every control change is documented in the changelog, including the ones that didn't work.
Code is MIT, content CC BY 4.0. Happy to answer questions about VPD control, Shelly scripting, or running a grow in a bathroom :)