How Many Technologies Does It Take to Turn on a Light Bulb?

July 10, 2019 Nicholas Cravotta

I’m going to start this column with something potentially controversial: the home network has taken a step back with the introduction of IoT technology. I’ll be even more daring: X-10 was arguably better than what we have today.

Let me be clear: I’m not bashing IoT. I’m excited about having a smart home and having many of the latest IoT devices installed. I also run into many of the problems these timesaving devices are causing me. So this rant is intended to help OEMs in the smart home market bring that better, more power-efficient world we’ve been promised to reality sooner.

Where shall we start?

Provisioning: The cornerstone of ease of use is provisioning. Many IoT devices are far from making this easy. Why do I have to stand there for more than a minute ‘close to the device’ to only have the app tell me it cannot find my light bulb, which is right there, ready to pair and blinking annoyingly enough to trigger a flashback. Or there’s the problem where my phone is on the 5 GHz Wi-Fi so it can’t connect with the device since it’s using 2.4 GHz (but the app doesn’t tell me why it can’t connect). It should not take 15 minutes to install a light bulb or outlet dongle and still not be able to connect. Kind of kills the fun of it all.

Loss of Provisioning: Here’s another fun one: Alexa just told me, “Nick’s Lamp isn’t responding. Please check its network connection and power supply.” Wait. Now it’s working again. What the heck? It seems devices get lost easier than they did with X-10. But at least with X-10 there was a button I could press to turn the device on manually when I got frustrated enough.

Better troubleshooting help: Clearly I’m at fault for my lamp disappearing from the network. But even after I acknowledge this, I am still no closer to knowing how to fix it. Sure, I could go on a forum and hunt down answers. Or I might do the math and figure out it’ll be easier for me to just put one of those old-school LED bulbs back in.

Better vendor interoperability: Different connected devices provision differently, which is a pain. But I can’t tell if it’s more of a pain when you’ve got multiples of the same smart device and the app gets them confused with each other. It’s like the light bulb OEMs figure you’re only going to use one or two of their products at a time, even though they sell them in six- and eight-packs.

Support all major platforms: You have to provision a device before you can hook it into a platform like Alexa. Wouldn’t be such a problem if my bedroom light bulb didn’t require one app to run it and another app for the smart extension splitter I’m using to operate my outside lights. Can’t we just have one app to rule them all?

Better device management: This one’s on Amazon: clean up the Alexa app. It’s almost as if Amazon wants you to have to talk to Alexa, and her app is more of an afterthought it’s so hard to use. And what’s with only supporting two adults in a household? I’ve got kids who are 18 and 20. My daughter is the true technophile so she keeps changing how the network ‘looks.’ I’d prefer if she just played pranks on me like telling Alexa to turn off my bedroom lights when I least expect it.

Default after power failure: After a power failure, some of my lights turn on and stay on. Others turn off. Default state is going to be extremely important for devices like thermostats that can burn through utilities if misconfigured while I’m on a two-week vacation. Holding configurations using non-volatile memory – not battery backed memory – seems essential.[1] However, maintaining the system clock is pretty important for some devices, like sprinkler controllers or connected pet feeders. These devices should have a protocol for confirming the clock is correct over Wi-Fi so the user doesn’t have to reset it.

Power Efficiency: A smart device, by its nature, is parasitic. That means it is always consuming power so it can receive a message to start doing something when it is doing absolutely nothing. Even at 3 a.m. So while my smart light bulb might be saving energy because it’s LED-based, its Wi-Fi radio is burning through energy 24 hours a day.

According to How-To Geek, today’s smart lights consume between 0 and .30 W when they are off. Assuming an average of 0.15 W, that’s 3.6 Wh per day per light. Just pennies a month, you might say. Except let’s put this into perspective: I’ve got a 9 W bulb by my bed. I use it for maybe 20 minutes a day or for 3 Wh. So the power cost of enabling me to use Alexa or my phone to turn on my light instead of flipping a switch more than doubles actual real-world consumption. I mean, I didn’t spend $20 on a light bulb not to save as much money as I can.

User Lock Out: Wireless networks go down for any number of reasons. And there’s nothing like not being able to turn on your bedroom or kitchen lights when there’s no internet. Depending upon the use cases for your product, consider what it would take to enable manual or non-Wi-Fi use of devices. If your device utilizes cloud capabilities, perhaps the most important ones could be implemented locally to ensure availability. For example, when my Wi-Fi provider is down, the local router is still up. However, Alexa is unable to process voice commands and my light stays dark. Ideally, the phone app would still be able to turn on the light since it can connect over the local network. Unless, of course, even button commands are run through the cloud first, meaning the light stays dark.

For as much as X10 has been denigrated, it did the job. While communications were often not received, this could typically be remedied by sending the same command multiple times to assure it eventually arrived.

The X-10 I played with did not support two-way communication. While two-way communication allows us to query the status of a device, the majority of use cases do not require the current status. Rather, most user actions change device status. And for those use cases where the current status is necessary (“Alexa, increase volume”), the controller software could maintain a copy of this status itself.

I understand. Making a smart device is complicated. There’s all these APIs you have to work around, myriad other devices you have to support and interoperate with, and endless protocols in use. There are lots of proprietary standards to accommodate as well. And then there’s all the complexity that comes with the cloud.

Just turn on a light. Maybe this smart stuff really is too complicated.


[1] Let’s be honest. Most battery-backed devices chew through batteries, especially if they keep the radio active when the power goes out. Replacing the batteries is often more expensive and more of a pain than not having access during a power outage. And what good does it do for the thermostat to be active during an outage when the heater and air conditioning can’t be turned on anyway.

About the Author

Nicholas Cravotta

Nicholas Cravotta is a long-time veteran of the embedded industry, cutting his teeth on the 8080 designing CNC machines using assembly. With Insider: Embedded Software, Cravotta explores the ever-changing world of embedded software by calling upon experts in the industry to share their knowledge and experience. Each column offers insight into the embedded software development process to help you avoid time-consuming mistakes and get the most out of your embedded systems.

Follow on Linkedin More Content by Nicholas Cravotta
Previous Article
Why is Long-Term Availability Important?

The demand from customers for long-term availability remains unchanged. This is especially problematic for ...

Next Article
Jumping Over Barriers to an Effective Intelligent Automation

In many cases the number one barrier to effective enterprise deployment of advanced technologies is the qua...