Since we live in western Washington and the weather dramatically affects the time of day it gets light (regardless of sunrise/sunset times), we don't pay much attention to daytime as ECS is programmed.  We used to use sundowners (as mentioned here) but found them to be very unreliable as X10 can sometimes be.  The fix was to install a photocell on the roof where it couldn't be polluted by any light other than from the sky.  This is directly wired to an input on the SECU-16 that is configured to read a contact closure so it provides the voltage.  The point is then equipped in ECS as an analog point and basically reads the resistance of the photocell like an ohm meter would.  This makes programming simple since ECS only needs to watch the light level (ECS reads analog points once per minute).

It may not be necessary but just to get the resistance of the photocell to a point that the SECU-16 was designed to read a 10K variable resistor was placed in parallel with the photocell.  Not much to photograph here so all we have here is the extremely simple event:

If Sens, Daylight Is LT Now Daylight On
Then Daylight Set On
If Sens, Daylight Is GT Now Daylight Off
Then Daylight Set Off

The two items "Daylight On" and "Daylight Off" are variables (or Items as ECS calls them) that can be set without having to guess where this event appears.