A modular, discrete-time control daemon for a hydroponic garden, written in Lua.
Lua CSS HTML
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
configs
controllers
inputs
outputs
postprocessors
tests
.gitignore
LICENSE
README.md
design.md
gardend.lua
state.lua

README.md

gardend

gardend is a modular, discrete-time control daemon for a hydroponic garden.

Design

See the design document.

File Structure

  • inputs/: Input blocks
  • controllers/: Controller blocks
  • outputs/: Output blocks
  • postprocessors/: Post-processing blocks
  • tests/: Unit tests
  • configs/: Daemon configurations
  • state.lua: state management
  • gardend.lua: garden daemon
  • design.md: design document
  • LICENSE: MIT license
  • README.md: this README

Dependencies

Lua 5.2 or greater

LuaRocks: lua-periphery (for I/O and sleep), lua-cjson (for state serialization), lsqlite3 (for state storage), lua-resty-template (for webstats), lua-discount (for microblog in webstats), busted (for unit tests)

$ sudo luarocks install lua-periphery
$ sudo luarocks install lua-cjson
$ sudo luarocks install lsqlite3
$ sudo luarocks install lua-resty-template
$ sudo luarocks install lua-discount
$ sudo luarocks install busted

Running

$ lua gardend.lua <configuration file>

Germination configuration:

$ lua gardend.lua configs/germination_config.lua

Issues

Feel free to report any issues, bug reports, or suggestions at github or by email at vsergeev at gmail.

License

gardend is MIT licensed. See the include LICENSE file.