top of page

The Outdoor Christmas Lights Caper

I have always adored Christmas lights. Ever since I got my first set (back when they came in sets of only 20 or 40 tiny incandescent lamps; my first set was a 20, coloured, shadeless) I've done some sort of decorating for Christmas with them. All the way through university (I had tolerant housemates) through renting (tolerant flatmates) and now to the family house (tolerant wife) I have covered wherever I happen to be living with hundreds - nay, thousands - of little bundles of sparkle.


Once I bought a house I went even further. With no-one to stop me attaching lights to anywhere I could, in recent years I've been honing the rig, adding sets here or there, changing which set goes where.. in recent years I've run out of trees and bits of the house to take fairy lights so I've branched out to colour-changing LED lighting.

I've not gone as far as some people. Everyone's probably seen the mad house on YouTube who syncs a whole display including fireworks to music. Looks great - but a little hard to justify running at that level for all of December. Besides, my wife is definitely not that tolerant.


I've kept my display fairly straightforward, but still the result is quite spectacular, even if I do say so myself. Here's 2024's look:


House adorned with vibrant Christmas lights, featuring blue, red, and yellow hues. Trees and bushes illuminate the night, creating a festive mood.

This post looks at what goes on behind the scenes to bring this to life. Oh, and scroll to the end of this page for the big turn-on video.


The Lights (fairy lights)

My fairy lights have been purchased over the years from a myriad of suppliers. I started my collection back in the days before you could pick up cheap low voltage LED sets off Amazon. Back then, the only way to have decent, safe, outdoor lights was to spend reasonable money on professional sets. Which is what I did, and they still work today. Huge, thick rubber cable is common to these - they're the sort of lights that the council uses to decorate the town centre. Sets like this are connectable, where each string of lights has a socket on the end of it to which you connect the next set. It makes lighting up a roof, or a tree, much easier.


  • The 'icicle' lights around the house roof line are from Idolight.

  • The lights up the big tree and the cascade down the railings are from Konstsmide.


If you were to be in the market for these, suppliers like ChristmastimeUK and Christmas Direct are good places to start.


At a much lower cost - yet looking almost as good - these days it's easy to find low voltage stuff from Amazon or the garden centre. I don't go near the cheapest junk off Amazon (seriously, it's not worth the fire risk) but sticking to trusted brands feels fine to me. I have a number of such sets from Premier. I remember Premier fairy lights when I was a child, they've been going for decades and if you look at the selection of lights at most garden centres, chances are you'll find Premier products. They're good.


Their SuperBright series is decent, not expensive, and comes in very long strings great for large shrubs in the garden. My largest shrub has two sets of 1500 SuperBrights on it. They do require a lot of care when rigging, as the tiny thin wire can easily be ripped by large branches. But in terms of overall value for money, they're much more sensible than the big pro stuff, for most (of even my) purposes.


The Lights (sculptures)

I have a small number of sculptures, but not much to mention. You can see the set of robins in the foreground of the above photo. This is one area I'd like to expand upon in future, but the bigger sculptures are expensive (hundreds of pounds for a large reindeer, for example), always sell out so are never in the sales, are hard to store and even harder to find places to put them in the display.


The Lights (LED colour-changing)

Having run out of places to put fairy lights I needed something more. Taking inspiration from the plethora of Christmas light trails that have started cropping up at stately gardens recently - which use LED stage lighting fixtures instead of just fairy lights - I added some LED parcans to uplight the large tree in the garden. Full disclosure: Stage/event lighting is a side-job of mine so I've used this kit professionally.


They looked stunning, so fast-forward to 2024 and I've got a number of LED parcans and batons lighting up the tree and house. The better fixtures are from Thomann, are IP-rated for outdoor use, made of heavy metal with exterior grade cabling. They're rock solid and really bright. But, even though they're very much at the consumer end of pro lighting kit, are expensive.

IP-rated outdoor LED lighting fixtures from Thomann.de
IP-rated outdoor LED lighting fixtures from Thomann

To supplement these on the cheap I also have a some much lower quality LED PARs from eBay. They're not even IP-rated so I have to wrap them in clear plastic bags.. I will replace these in time with 'proper' ones.

Cheap eBay LED PAR - with custom stand I made and "weatherproofing"
Cheap eBay LED PAR - with custom stand I made and "weatherproofing" (I do not recommend doing this)

The Control

Stage lighting is commonly controlled by a protocol called DMX. I won't go into details here other than to say you need a controller (e.g. a lighting desk), which sends a digital signal down a cable that loops through each fixture. Every fixture has a unique address so the lighting desk can send it unique commands. Simple!


When I got my first fixtures I wrote a simple little DMX controller myself that could fade colours up and down. Getting more fixtures, and incorporating control of my LED batons (which operate as four individual cells, each independently controllable) meant that this year I needed to upgrade my lighting control.


I use an Avolites T2 dongle for this purpose. Avolites are a manufacture of moving light control consoles used widely in the industry. The dongle versions of them allow for their software to run on a standard PC and output DMX via a USB port. I know the consoles from my stage lighting side-job (hence having a dongle already), and importantly - as we'll see later - their software has a web API for remote control. PC-wise I have a small Intel NUC I picked up off eBay.


Their software, called Titan, presents with a lovely large array of buttons and sliders.


Computer screen shows lighting control software, keyboard and mouse on floral tablecloth. Mug reads "DAD IS MY HERO" beside papers. The lighting software is Avolites' Titan.
Avolites Titan (lighting desk) software running on my dining room table
Avolites "T2" lighting desk dongle with white "AVO" text on top. Compact design with rounded edges. Background is white, emphasizing the device.
The Avolites T2 dongle. USB in one side, DMX out the other

So, thanks to Avolites and my little NUC PC, I have a professional lighting desk to create the DMX control signal to send to all my lighting fixtures. Nice.


The Control of non-DMX lights

The LED stage lighting fixtures take in power and DMX data, the data then tells the fixture whether it should be on, off, bright, dim, what colour etc. You simply give it power and data.


Fairy lights aren't that smart. They can't handle DMX data, indeed all you can do is give them power, or not. So I needed a way of converting from DMX data to a "power/no-power" scenario. A DMX-controlled relay (switch).


Fortunately these are easily available, and I picked up some super cheap ones on AliExpress:

Black DMX512 decoder with labeled ports and red switches, surrounded by text: "3CH RELAY" and connection details.
AliExpress-sourced 3-channel DMX relay

Each one of these does three independent channels of control so I spread a few of them around the rig to let me control sets individually. In practice I just turn them all on at one, but nice to have the level of control to do sets one-at-a-time if I wanted.


The Programming

My new lighting desk afforded me a new avenue of control. I can program in effects where colours slowly change, where colours sweep across the house, where colours alternate between fixtures. There's almost a limitless number of options even in a really simple rig like mine.


In October I set up the rig in the living room and spent a couple of days programming. I didn't know exactly what it would look like when rigged on the house, but by lining the fixtures up in the positions in which they would eventually be rigged I could approximate it. And, programming in the warm was infinitely better than it would have been to program from the driveway.


The pre-programming sessions worked well. I created an hour-long set of different looks and effects then made it loop indefinitely, changing look once every five minutes.


I needed a little fine-tuning once the rig was up, which involved balancing the laptop (VNC'd to the PC inside that ran the lighting desk) on the car in the driveway.


Living room with purple lights, cables scattered on the floor, and a sofa. Plants and a window with green trees in the background.
The LED rig being prepped in the living room

Stage lights with purple LEDs on a beige carpet, surrounded by cables and power strips. A wooden table is visible in the background.
Sparkly lights

Brick house with multicolored lights and lit windows at night. Laptop on car hood shows screen with lighting control software.
A bit of fine-tuning once the rig was set up outside. Note the working position is not DSE compliant.

The Wiring

Wiring comprised three parts:

  1. Power to the "always on" parts, i.e. the LED fixtures and the DMX relays

  2. DMX looping through all the active fixtures and relays

  3. Various wiring for the fairy lights


Power Wiring

All outdoor connections happen in weather proof junction boxes. Sometimes these were too small to take all the connections so I had to deploy secondary boxes in the same location. The boxes I use have 5 cable holes, where this wasn't enough I added additional ones using IP-rated cable glands.


Schematic diagram showing power connections.
The wiring diagram for the waterproof boxes along the front of the house

Gray waterproof wiring junction boxes on a concrete surface with tangled cables, adjacent to a brick wall and iron railing. Appears orderly but cluttered.
Close up of waterproof boxes by the house (the rightmost four in the wiring diagram)

13A mains plugs and other connectors sort of neatly nestled into a waterproof junction box.
Waterproof box showing the DMX relay and some power connections. The DMX relays have terminal outputs, note the use of Wago connectors here. And yes these terminals are live so care was needed, but they're safely enclosed in the sealed box during operations.

A black LED stage lighting fixture and green waterproof junction box with cables lie on grass and leaves; background of ivy and trees.
How the waterproof box looked in the end.

Power Supply

All power was wired back to the garage.


To optimise wiring it ended up connected to two 13A outlets on which I had power monitoring relays (I use the MyLocalBytes Power Monitoring Smart Plugs). This gave me the option of totally killing power to the outdoor rig, and also lets me sum the power used for interest.


All power cabling is a minimum 1.0mm2, 1.25mm2 where possible. The lengths aren't crazy, it's probably 30m to the furthest set of lights once the cable route around the garden is taken into account. But keeping the cable as beefy as possible will improve trip times in a fault situation.


I have a dedicated RCD-protected spur from the consumer unit for the Christmas lighting, so any trips caused by water getting in wouldn't kill power to anything in the house. Yes, before you ask, it was genuinely installed for Christmas lights.


Black interface showing power distribution: Total Power: 310W. Group A: 271W, Group B: 39W. Yellow power icons present.
Home Assistant card showing the main switches

The interesting observation is that the whole outdoor rig uses between 300 and 400W, depending on the combination of colours displayed on the LED fixtures.


DMX Wiring

The DMX cable loops around the lighting fixtures in turn. All runs use specific DMX cable (which has a 120 ohm impedance) and 3-pin XLR connectors. Where the cable connects to the Thomann IP-rated fixtures, which use special connectors, I had a variety of jump cables to convert between the connector types.


At the end of the run I fitted a terminator, which is recommended to stop reflections on the cable and helps keep the DMX working nicely. In practice, with a rig this small, I probably didn't need this but it didn't hurt to have it.


Each fixture also has a unique DMX address, shown in the diagram.

Schematic showing the DMX cabling route in the garden. The starting addresses for the DMX fixtures are also noted. As is the length and type of interconnection cables.
DMX wiring and numbering diagram

I tried to use cables of more or less the right length, to avoid having to hide coils of excess around the place. Keeping it as short as possible also helps for DMX reliability.


Fairy Light Wiring

This always ends up a bit of a mess because most sets need little low-voltage transformers, and invariably they're all different sizes and shapes. Getting them all connected neatly to 4-way extension cables in the waterproof boxes requires a fair bit of wrangling and is a major reason why I need quite so many boxes in the first place.


The Switch On

Enter the VIPs! Or rather, the children. I have a special box I made for this purpose which holds two large illuminated push-buttons. The children have to press both together (one button each) for it to engage, this is to prevent either one of them pressing their button prematurely in the countdown.


The box just contains the switches and button LEDs connected back by a long umbilical cable to the GPIO interface of a Raspberry Pi in the garage. I intentionally didn't want any wireless to the box itself as the driveway isn't blessed with a strong WiFi signal, and in any case the box would need power. Easier to just run a long length of 8-core alarm cable and put the Pi inside.


I wrote a little Python script to interact between the physical buttons and Home Assistant. Essentially when the buttons are pressed (together), the script sends a "switch on" message via MQTT to Home Assistant, which in turn switches on all the lights. I wanted the act of pressing the buttons to really engage the lights, rather than it relying on me in the background coordinating a button on my phone with the children's action on the button.


A toggle switch on the box puts the unit into "test" mode, where it fires a dummy event in Home Assistant that serves to check everything is working, but doesn't turn on any actual lights.


Black box with two red buttons on top, placed on a wooden table outdoors. A cable is connected, and a green light is on.
The Big Switch.

The Automation - Home Assistant

At the heart of the system lies Home Assistant. All it's doing is turning the lights on and off, really, but there are a couple of points worth noting.


A Quick note about the indoor lights

There's not that much to be said about the indoor Christmas lights. I use a bunch of WiFi switches running Tasmota around the house, all Sonoff devices but of a few different types as size/shapes/availability-at-time-of-purchase dictates. These are then all arranged by Home Assistant Group helpers into functional groups, e.g. "windows", "sitting room" etc.


Parent Controls

I created Input Boolean Helpers to give me a virtual toggle switch for each of four functions of Christmas light:


  • Outside

  • Windows

  • Sitting Room

  • Stairs


This reflects how we like the lights controlled. For example, the outside and window lights are fully automated by time but the sitting room lights are fully manual.


These virtual parents don't actually do anything themselves. User buttons operate the toggles and show their status, also their status is used to inhibit various functions e.g. the PIR-operated floodlights on the driveway don't come on if the Christmas lights are lit.


They are the single point of truth for the different parts of the Christmas light system.


Automations

To actually make the lights happen, I use Automations to perform actions based on the status of the parents.


For example, if the Windows parent switches ON, the Automation will turn on all the WiFi switches operating lights in the windows.


Some Automations can be inhibited, too. For example there's a toggle that stops the stairs light switches being triggered if the stair lights aren't rigged. This is because the stairs lights nick a WiFi switch from something else for the Christmas season, and setting a togle switch to change behaviour is easier and neater than rewriting Home Assistant Automations.


Automating the Lighting Desk

The lighting desk has a REST API that easily allows control by a third-party system. Home Assistant has a quick REST API control, of course. So I created a super simple REST API entity that calls the correct API in the lighting desk to recall the pre-programmed cue list, or to switch all the lights off.

rest_command:
  dmx_lights_on:
    url: 'http://172.16.1.4:4430/titan/script/Playbacks/FirePlaybackAtLevel?titanId={{titan_id}}&level=1.0&bool=false'
    method: get  
  dmx_lights_off:
    url: 'http://172.16.1.4:4430/titan/cript/Playbacks/KillPlayback?titanId={{titan_id}}'
    method: get  
  dmx_lights_all_off:
    url: 'http://172.16.1.4:4430/titan/script/Playbacks/KillAllPlaybacks'
    method: get

The variable {titan_id} has to be ascertained by another API call during setup, and coded into Home Assistant when I add this REST command to a button or Automation.


The Switch On Video

Also giving you a little tour of what the rig looks like. Note my neighbour's house is almost as mad. Mine is the house on the left. Between the two of us we create an exceptional display in the street. People genuinely stop on the pavement, or slow down in their cars as they pass.



Rig Timetable

  • September: Go over cabling plans, ensuring I have the right number of waterproof boxes, lengths of DMX cable, etc.

  • October: Programming sessions in the living room, also checking that the DMX control of all the different fixtures works as I expect it to.

  • November: Rigging. It takes a good couple of days to rig everything outside (plus one for inside). The outdoor rig is also weather-dependent, so starting early in November means I can lose a day or two to inclement weather and not end up needing to be up ladders in the dark on November 30th.

  • December: Lights on! We actually turned them on after dark on November 30th as we decided we couldn't wait.

  • January: We strictly turn the lights off after New Year's. Although it takes me some days to de-rig everything afterwards, lights aren't lit after we head to bed after midnight.


Bootnote

Now, what to do differently in 2025?


Comments


Follow me:
  • Mastodon
  • Twitter
  • Youtube
  • flickr

 Technical Capers © Giles Moss 2023

bottom of page