For this build I used a H11AA1 for the zero-cross detection and a (3 channel) TRIAC optically isolated by a MOC3020. The basic schematic can be seen on the image on the left.
The ENC28J60 module comes assembled and is essentially plug and play after the appropriate libraries are downloaded. The controller I used was an Arduino Nano. It has a small footprint and all the capabilities of a regular sized Arduino UNO, plus it fit on a breadboard which makes the wiring a lot easier.
To handle the AC dimming I used the TimerOne library to count the number of milliseconds after the zero-cross has been detected and trigger the TRIAC accordingly. This video was a good reference for this project.
As a work in progress I also have a 'XdimFromToIn' function which specifies the light letter, initial and final light brightness value and the time in which to perform a fade. There is currently no button to perform this, it's manually put onto the URL as a GET request.
To make everything more portable and powered from a single line I took apart a 5V switching power supply from a phone and placed it near the zero cross detector. The system works as expected, dimming the lights as the the slider is dragged, blinking and turning on/off when the buttons are pressed for each channel. The ethernet module operates well and remains connected after many days of being constantly on. The TRIACs do not show any signs of overheating when the lamp is operating.
The video shows a few of the functions the controller can take, including blinking and dim to a particular level. The next step is to put it into a box and experiment with plugging it into other devices.