After considering several options I'd suggest an alarm clock that activates a human who's programmed to execute the following code:

if light_level = desired
exec press_shutter_release
else
wait 60 seconds; retry