I made some good progress on the software side in past couple of days. These were aimed at making the backend (go based controller) code modular, so individual subsystem (temperature, relay, lighting, ato etc.. ) are different and pluggable in the core controller. This should allow the reef-pi UI to only reflect sub-system that are available. i.e. if someone builds a temperature controller only build, the UI (and API) won't show lighting or other irrelevant UI.
reef-pi now has a /capabilities API endpoint, which gives a list of available modules/sub-system. This allows the UI to auto-configure itself, and show only the components that are available. Currently we have equipments (relay), lighting (pwm, 24 hour cycle) , dashboard (provides controller health information), timer (on/off equipments at specific times) and admin (shutdown/restart reef-pi controller itself) modules. ATO and temperature controller has backend code, but UI still needs to be worked on. Doser module is empty (empty code with no functionality).
I am working on making the equipment addition/deletion from UI (api). Only things related to electronics configuration (GPIO, pwm pins) will be in configuration file.
Sample, a pi-zero based kessil A80 controller:
And the classing AIO reef-pi look, with all the tabs
Notice, now we can change the name of the controller as well.