I found switches that actually had an embedded processor that you told the latitude and longitude and the time and it calculated sunset/sunrise.
That seemed straightforward but it was not to be.
She added an additional requirement that she wanted to be able to turn them on from her bed. That complicated it tremendously. Now the switches had to be networked.
Well, this did simplify the timing. The clock/timing could be managed centrally and the switches could just be sent on and off commands.
What I found was Smarthome.com's Insteon system.
The switches would fit in a regular plate.
Let's just say "Don't do that." Smarthome replaced the Controller with their Hub.
Smarthome has an app that controls the Hub.
That seemed so simple. It wasn't.
Thankfully the 3 circuits involved were all single switched circuits. 3-way circuits are much harder.
So I removed the old switches and installed the Insteon switches. After lots of reading manuals and a couple of calls to Smarthome's support (actually pretty good) I got 2 of the 3 working.
To net it out, the switch that wasn't working was on a different leg of the breaker box. I had an electrician come out and move the breaker for the non-working circuit to the "right" place.
He didn't understand it either. He just moved it around in the breaker box and it was still on a different leg.
So I started looking for alternative ways to bridge the legs.
I found a Range Extender that bridges the legs.
Total elapsed time - 18 months!
Then she moved. I inherited the parts and pieces and moved them to my house where they worked fine the first time.
I'm so satisfied that I have expanded my system with a lamp module.