Skip to content

Instantly share code, notes, and snippets.

@danielscottjames
Last active March 4, 2026 20:43
Show Gist options
  • Select an option

  • Save danielscottjames/c68bf6119bd834573a41c8fe03ebcd4a to your computer and use it in GitHub Desktop.

Select an option

Save danielscottjames/c68bf6119bd834573a41c8fe03ebcd4a to your computer and use it in GitHub Desktop.

Why do you want smart lights?

Smart lights allow you to remotely control your lights. This is usually via:

  • Voice Assistants (Siri)
  • Automations (turn on the porch light at sunset, motion/occupancy sensors)
  • battery powered remotes
  • an app on your phone

Smart lights are often dimmable and many are color changing.

A “Scene” is a pre-configured state of your lights in your room/area that can be triggered via your smart home system.

When would you want color changing lights?

It can be really fun to play with color changing lights, but in general they can end up feeling gimmicky. Once you get over having your house look like a strip club, you probably won’t often utilize this feature. However, there are still some popular use cases here:

  • Holiday lighting
  • Music and Video syncing (ex Hue Sync)

The real reason you might want color changing lights

While the full spectrum of colors is often gimmicky, temperature control and “Adaptive Lighting” can be very nice.

Adaptive Lighting is when your smart home system slowly changes the color temperature (and sometimes brightness) of your lights throughout the day. You’ll automatically get cool bright lights during productive hours and warmer lights in the evening.

You often don’t need full color changing just for temperature changing. For example, this is Hue’s lineup:

Gotcha:
Note that smart lights that can change color often advertise a max brightness that assumes one specific color (cool white). Adjusting the color or color temperature will prevent your light from reaching maximum brightness. (Because individual LEDs inside the light must be dimmed to achieve the desired color.) AKA consider “sizing up” when buying such lights.

What is a Smart Light Bulb?

A smart light bulb has a networking chip directly in the light itself. Every light in a fixture must be replaced with a smart light. Note that smart lights (and quality LED lights in general) have a long life span.

Smart light bulbs have an achilles heel: they must be always powered on! You will see people replace light switches with a blank plate, tape their switch, mount a remote above the switch, etc… most of which are not ideal solutions. Additionally, many smart lights communicate using a mesh network, and frequently cutting power to your lights can interrupt the reliability of the mesh network. (With smart lights, you must ensure the fixture is always hot.)

If you are not interested in Adaptive Lighting or color changing lights, then it’s usually best to just use a smart light switch to control your dumb lights. You may also need to use smart light bulbs if you are renting and do not want to fuss with wiring switches.

However, even if you plan to use smart light switches for the majority of your lightning, it can still be worth figuring out how smart lights work within the big picture of your smart home for lamps and accent lighting.

What is a Smart Light Switch?

A Smart Light Switch is a device that replaces an existing hardwired light switch. Smart light switches have a relay that opens and closes the circuit. Smart light switches can be remotely controlled, and therefore let you remotely control existing dumb light bulbs. One smart light switch controls all lights connected to that circuit and is often cheaper than replacing all light bulbs with smart light bulbs individually. Almost all LED light bulbs are dimmable and almost all smart switches are capable of dimming. (Dimming performance may vary between devices, though.)

Because Smart Light Switches can be controlled remotely, they are often buttons and LEDs instead of switches and sliders. (Otherwise the state of the lights would become out of sync with the physical state of the switch after remote changes.) For example, a smart switch may still look like a paddle switch but the paddle is always centered and can just be pressed “up” or “down”.

Some (but definitely not all) smart switches have a “Smart Bulb Mode” feature. This essentially disables the physical relay in your switch leaving the circuit always on and turning your switch into a mains powered remote.

Gotchas:

  • Some light switches do not work without a neutral wire. This may be a problem in older buildings. If a light switch doesn’t require a neutral wire, some features may not be available without one.
  • Verify if the switches will work in 3-way / 4-way setups and what is required to make them work. Multi-way setups may require multiple smart switches (sometimes cheaper auxiliary switches are provided).

Hubs

Both smart light switches and smart bulbs may work hubless and/or require a hub. Often they will not require a hub if they are controlled via WiFi. A hub can be provided by the manufacturer specifically for the lights and/or the lights will integrate with an existing hub.

A hubless approach is not generally recommended. Not all light fixtures may be within a good range of your WiFi router. Poor signal quality can lead to high latency when controlling your lights. Residential WiFi networks often struggle when you start adding dozens of IoT devices. Latency can be generally high even under good circumstances. Some hubless lights are controlled via Bluetooth which has even more (but more obvious) restrictions.

Automations are often executed via a hub. If a hubless solution supports automations, it’s usually dependent on an internet connection. (Another point of failure!)

For these reasons, a hub and mesh network (Zigbee, ZWave, Thread, etc…) is often recommended. However, if you really only want a smart light here or there, a hubless solution can be just fine. (My dad is perfectly happy with his single WiFi smart switch that controls his front porch.)

Thread & Matter

Thread & Matter are relatively new but have general support among most major smart home device manufacturers. However, note this XKCD comic: Standards (As of early 2024, it’s still too early to say if Thread/Matter have delivered on their promise to unify competing smart home ecosystems, but it looks promising.)

Thread is the mesh networking protocol, analogous to Zigbee and ZWave. (Thread is closely related to Zigbee.) Powered devices (like smart lights and switches) repeat packets, while battery powered devices remain leaf nodes. This can give a much better experience with battery powered devices compared to other solutions like BTLE. With a robust network of powered Thread devices throughout your house, your smart lights and light switches can become the literal backbone of your smart home!

Matter is a higher-level protocol for smart things to talk with other smart things. If a device speaks Matter and your hub speaks Matter, then you’re good to go. However, consider that Matter might not be as sophisticated as competing standards, yet.

In the past, devices only supported certain hubs/ecosystems. If you really wanted a device that didn’t support your chosen ecosystem, you had to bridge it. For example:

  • I reeeeeally like the Nest Learning Thermostat Third Gen, however, it does not work via HomeKit. I could of course just use the Nest app directly but it is annoying using multiple smart home apps. Before you know it, you’ll have 5 separate apps to control your smart home and your family hates you. Instead, I used software on a raspberry pi to communicate with the thermostat and proxy it to HomeKit. (Another failure point!)
  • The above is a good example of how some existing manufacturers are bringing Matter compatibility to their lineup. Hue supports Matter but this is being proxied via their hub. The Hue lights still communicate with their own Zigbee mesh network. It’s important to consider if the device itself is actually Thread/Matter capable.

Some Concrete Hub Examples

(It can be difficult to talk about all of this so abstractly, so this section describes more specific setups.)

Hue is a popular smart light brand that provides a hub. The Hue app on your phone communicates with the hub over WiFi/Ethernet which communicates with Hue’s lights via Zigbee. It is possible to control other manufacturers’ Zigbee bulbs with Hue’s hub/app. Likewise, It’s also possible to pair and control Hue lights without the Hue hub/app via any hub that supports Zigbee.

While Hue’s hub and ecosystem (Hue provides sensors, etc…) could be considered your “main hub”, it is often synced to your “main hub” instead. This is because Hue is primarily focussed on smart lighting and not all of “smart home things”. Your main hub may be Apple’s HomeKit, Samsung’s SmartThings, Google’s… whatever bastard thing they’ve done to Nest. It could also be a popular open source platform like Home Assistant (AKA a Raspberry Pi sitting in your closet).

Let’s say you use Hue and HomeKit. You turn a light on via the Homekit app on my phone (or via Siri). This sends a command over WiFi to my HomeKit hub (an Apple TV) which sends a command over ethernet to my Hue Hub which sends commands to the light I toggled via Zigbee.

  • Even in this simple example, note how many points of failure there are!

Because Hue supports Matter, it can work well with any other hub that also supports Matter. In the past, you were limited by the hubs that Hue was willing to support directly.

  • Even though you could technically use Hue lights without their hub, you may want to still include it in your setup. Hue’s hub supports features that other platforms (including Matter) do not such as Dynamic Scenes and Hue Sync.

Latency and Reliability

If your lights don’t respond 100% of the time or are sluggish (takes more than a few hundred ms to respond), you are probably not going to be happy. It’s not fun to walk into a dark room and wait seconds for the lights to respond. It’s not fun to have to press the “on” button a second time because the first time didn’t work. It’s not fun to HAVE to use an app to control lights. It’s not fun to HAVE to explain to guests how your lights work because your system has quirks.

Smart light switches controlling dumb lights are generally fast and reliable. They will basically always work locally.

Smart bulbs can get messy. Imagine this setup:
You walk into a room and press a button on the remote you mounted to the wall. The remote first communicates with your main hub, which then communicates with the lights (maybe indirectly via your router through to their hub). There’s a lot that can go wrong here and even in the best of circumstances it can add perceptible latency. You can do better than this, see “Direct Bindings”.

If your light switch has LEDs to indicate the status of the light, you’ll want to keep those in sync with the status of the light. This sounds easy, but it’s not. If you use an app to turn off your lights, the LEDs on the light switch should indicate that. This often means you should control the light switch itself via the app (instead of controlling the lights directly). You can also use the hub to keep these in sync. You could also not worry about this or buy switches that don’t have LED indicators.

Direct Bindings

Zigbee, ZWave, and Matter all support direct bindings. This allows a smart switch to send commands directly to the smart lights that it controls (assuming the switch and light speak the same language.) No hubs involved. No mesh network involved. No WiFi/Ethernet router involved. Minimal latency. Hubs can still communicate with the switch and lights with this setup, but they are not necessary. The important thing is that you can unplug all of your hubs and your light switches controlling your smart lights will still work just fine.

My Ideal Setup

(Note, this describes the ideal setup that I am moving towards. I’ve been patiently waiting for Thread light switches to be released before going “all in”)

All devices use Thread. I’ve been happy using Hue but will be replacing my Hue lights with bulbs that support Thread directly.

All fixtures have smart light switches that can be configured to control dumb lights or smart lights (for visual uniformity among all light switches). Direct bindings are used when switches control smart lights.

The “main hub” is highly configurable. I’m currently playing with Home Assistant and I’ve been happy with it.

The “main hub” proxies the devices to HomeKit so that I can control my smart home devices via Siri and iOS widgets. In this sense, HomeKit is how I access all smart home devices on the daily while Home Assistant is the source of truth, runs automations, etc…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment