Hey there, good work and glad to see someone experimenting with a RPi based aquarium controller. I'm working on something similar myself and had a question.
I'm trying to duplicate the default "on" or "off" functionality some controllers have. This is where the outlet is on even if the device is disconnected from the head or control unit. Have you figured out a way to do this? I'm using a simple relay board similar to the one you're using, but I just can't seem to figure a good way to do this. I'm just trying to think worst case scenario. If the RPi dies, freezes on reboot, or the GPIO SoC dies, the relays would be shut and anything running off a relay (pumps, dosers, lighting, etc) would all be shut down and wouldn't come back on until I was able to manually intervene.
The only thing I could think of was wiring the loads to the NC terminals of the relay and energizing the relays as soon as possible after boot. This would, however, turn on ANY equipment plugged into a relay until the OS boots. This means dosing pumps would be dosing, lights would be on, etc, until a startup script could be run and shut them down. In the event the OS never boots, they would never be shut off. I suppose I could wire some outlets as "default on" for things that we generally want to be on all the time, like powerheads and skimmers, but leave the dosing pumps on the "default off" outlets. This way, worst case scenario, the tank still has flow and some filtration.
What are your thoughts on this?