Not satisfied with the portable remote control for its outdoor patio lights, [timabram] decided to build a automatic timer using an ESP8266. He uses a string light set from Costco, but digging into his project you’ll find that the method he uses can be applied to almost any string light that has a remote control.
It does this by connecting the GPIO pins of the ESP8266 GPIO to the remote control to simulate a user pressing the button. The two boards are packaged together in a 3D printed case that uses the front part of the remote, so manual operation is always possible.
Its firmware gets the date and time from an NTP server, then makes an API call to an online service that returns the local sunrise and sunset times for a specific location. It tries to minimize power consumption by experimenting with different intervals to wake up from deep sleep and ping the time server. But in the end, he realizes that the RF remote is carrying a certain distance and has installed the unit in a closet where it could be powered by adapters connected to the mains.
We wondered how the remote knows if the lights are on or off, and [timabram] note that this is a deficiency which could be corrected in a future version. If you’ve ever seen a mechanical version of an astronomical timer, filled with gears, dials, and setting pins, you can really appreciate solutions without moving parts like this project. If you want to make one that doesn’t use the internet, check out this Arduino-based solution we talked about in 2013.