I played around with a few setups for the part of the system that will actually control the LED lighting but everything always ended up messy from a cabling point of view and, as all good development projects go, unmaintainable for anyone else let alone useful for anyone out in the world to try an replicate.
I eventually decided on this current solution after looking for DC circuit breakers (which I didn’t end up using as suppliers kept sending AV versions instead) and came across a site that mounted everything in a rack mount zippy box:
I liked this idea and this led me to my current setup of separated control/signal boxes. This also allow for easy replication and scaling if I wanted to use more LED’s and even redundancy.
About half way through building the first one, just trying to get it is a point where all the major electronics are inside the box rather than all over the desk (which has led to shorting out and smoking a Nano board).
The front, the bit that will be seen in a standard server rack, is at the top of the picture and has 16 (one per channel) 5×20 fuse holders, as well as holes for small LED mounts that will has RGB LEDS to display channel status (power level or fuse blown).
Right side is the power distribution, just some hefty copper buses to split the power nicely. I will also put and inline digital AMP meter that will hook into the Arduino and find some space for the shunt that this will need. And a 12V to 5V regulator of some sorts, I have found that a car USB charger is pretty cheap way of doing this.
The middle is the four MOSFET4 v04 boards, each connected to the Adafruit PCA9685 at the top. I need to do some testing to see how much wore I can do away with here, I think that I only need to send signal and one power to each board. Another thing to note it that these boards separate the 5v low current signals from the high current 12v LED drivers, practical and easy isolation.
To the left is a Mega, which is only being used because I fried the Nano with a short from a messy table, that is running the Dimmer.ino and will eventually be running a, I2C Bluetooth module for communicating back to another Arduino that will handle all the level management, and a nifty little I2C LCD screen for some GUI.
The back of the box is a output and feed connections, this is just a bank of screw type banana plugs.
My plan is that once I have one of these finished and working then I can make a few more fairly quickly as it is all standard parts. As I went a little overboard with my down light wiring, I have at least two feeds going into every room. This will be good for when I have two controllers running, I can split the load between the two for some form of redundancy; if one controller is removed I will still have half the lights in the house working. If I have a backup built then I can quickly replace the controller and get the system back online.
At the moment, the Dimmer code is working to an alpha release state, it can do the basic functions of fade and delay. There is a cool block of code from the TLC5940 library that is a fade buffer setup, I will start looking into adapting that for this setup.  I did look at the TLC fade library but didn’t really like how it was done so wrote my own Dimmer library.