Potential WLED/xLights companion app?

I’m a programmer by profession and I’m tinkering with the concept of making a companion app for WLED and xLights (possibly more stuff as the need arises). I have a few specific ideas/needs in mind, but maybe others could chime on the idea…

My first thought is about backups. I have a some Halloween and Christmas props that I’ve created with integrated leds and have been using WLED on esp8266’s to run them. I end up making several presets and getting them all setup the way I want. Then the season is over and I pack up the props and put them in storage. But I normally just end up re-purposing the esp8266 on another tinkering project soon after. I’d like to basically just take an image/snapshot of the WLED settings and store them so they can be restored on the device at a later time. My thought was that I would be convenient to have a background “scanner” process running that would periodically check settings/config from known WLED controllers and store a snapshot of it if any changes are seen since the last scan. Then a controller could easily be restored from one of the auto snapshots.

The next goal of the companion app is to assist with some xLights stuff that I’ve been toying with lately. I’m not a light show expert. I’m just starting to play around with xLights and I’m working on setting up a small Christmas show this coming season. I’m going to see if I can get away with just using a couple of WLED controllers to run the show instead of diving in and purchasing a high-end Falcon (or similar) controller. I’m hoping that until I significantly level up my skills in that arena, running off WLED controllers will be fine.

I’m thinking of using an NFC tag reader that I built (using esphome with Home Assistant integration) as a way to allow people to manually choose from the sequences that will be in my holiday playlist. The thought is that I would make an NFC card for each sequence/song and allow people (mostly my kids who all have their favorites) to swipe those cards on the reader and watch house/yard light up with the sequence they choose. The reader would scan the NFC tag, then trigger an HA automation to call a url on the companion app (or customize the esphome firmware to do it directly without HA), which would read the tag value and send an API request to xSchedule to play the proper sequence from the playlist. I was also thinking about using the tag reader as a way for any spectators to give feedback using either a thumbs up or thumbs down card. Those cards would send another request to a companion app url letting me know their feedback about the current sequence or the light show in general. Ideally the companion app would allow setting up as many NFC tags as desired to trigger some sort of action based on it’s value.

If I can get it setup in a secure and waterproof way, I will setup the tag reader near the mailbox at the road in case anyone watching wants to “interact” with it. I don’t yet have a plan for setting it up outside. I’ll have to put some thought into that and see how feasible it would be to accomplish.

In a nutshell, my vision for this companion app would likely not be anything that couldn’t be done through other means, but rather a single place to manage them all together.

Is there anyone else who would be interested in something similar, or is this just too specific to my own needs/wants? If so, I’ll definitely post progress updates and/or share any of the code used to build the companion app. I’d also be interested to hear any other ideas that may be good to incorporate in such an app.


The NFC reader is an interesting idea. I’d like to hear how it goes.

Where I live, I’d be concerned with eventual damage or theft of the NFC tags and reader.

Have you considered capacitive touch buttons?

The article “Making capacitive touch sensors water tolerant - Embedded.com” provides some great background if you want to create a usable touch sensor.

The ESP32 has the capability for basic capacitive touch sensing built-in.
Although there’s some difficulty in rain (see above), touch sensors are quite favorable for weather-exposed locations: No moving parts, and the pad can be behind a think sheet of glass or plastic, so no button holes in your nice waterproof box for sand, salt, and water to enter.

If you don’t want to build the touch buttons yourself, you could pilfer the snap-off portion of some devkits, such as
CY8CKIT-145-40XX (~$15) or CY8CKIT-149 (~$20), either of which provides you a couple decent touch buttons (with ground shield) and a slider, with LEDs and acrylic overlay already in place.
:black_square_button: :black_square_button: :black_square_button: :level_slider:

That said, I think having an NFC solution would be really cool!

Fortunately, I’m in an area where I don’t really need to worry about theft (or at least not according to our history in the area). Though I guess if I magically come up with an amazing light show (not likely given my current skill level), there could be lots of non-regulars lurking around the block.

I’d mostly just be concerned about damage from my own kids, as they don’t seem to know how to be gentle with anything. Even though I’d like to implement a thumbs up/down feedback system and sequence selection via the NFC tags, I doubt it’ll actually get used by anyone outside my family (potentially a couple of the kids friends). This is more of an exercise in deepening my learning of WLED, xLights, etc and applying a skill I already have (programming) to have some fun with the whole thing.

Also, the NFC reader I built only cost a few bucks to make, so even if there is damage/theft it wouldn’t be the end of the world there. I’d be more worried about theft of the actual leds/props, as those would be of much more value.

I’ve made a small start on the companion app. Whenever I get some “real” progress, I’ll update here.