Turn a mains light on slowly

The basic circuit is pretty simple. C1 charges through R1 and turns on the triac when the threshold voltage of the diac is reached.


simulate this circuit – Schematic created using CircuitLab

Now you've got the choice over how you vary that resistance with time. ThreePhaseEel mentioned the excellent idea of using a Negative Temperature Coefficient resistor (aka the common thermistor), tied somewhere near the lamp. Note though, that the lamp will not light up linearly with time as NTCs' resistanceVStemp is a decreasing exponential. This might be a problem.

The first thing that pops into my mind would be a 555 timer in astable configuration supplying a clock to a 555 in PWM configuration, with the modulation input being the charge of a capacitor (either through constant current or within one time constant to make it linear). The output of the PWM 555 could be either optocoupled to a MOSFET or directly tied to a solid state relay. However this sounds like overkill. If you prefer simplicity over cost effectiveness, you could replace the 555 with a microcontroller, which gets everything down to wall DC adapter-uC-optocoupler-gate resistor-MOSFET. Still, sounds like overkill.

I personally like ThreePhaseEel's solution, and I'd like to hear that someone else has an idea as simple that makes the lamp light up linearly.