On our most recent IoT Podcast, Jonathan called in with an interesting smart home problem to solve. He’s looking for a button or some other simple device that, when pressed, will disable any smart home routines. Jonathan’s wife has an irregular sleep schedule due to her job so he doesn’t want automations or routines to activate when she’s sleeping. If she could just hit a connected button to put the smart home in “do-not-disturb” mode, the home wouldn’t interrupt her sleep.
Unfortunately, there’s no such mode on any of the current smart home platforms. But there ought to be.
Why should Jonathan’s wife be woken up by the Roomba’s scheduled cleaning time? Or from sunlight when the connected shades open up? We’ve faced the same challenge in our smart home when someone is taking an afternoon nap only to be woken up by our connected lights turning on at dusk.
Depending on the devices Jonathan has (aside from the Roomba and shades that he mentions), there are some less than optimal workarounds that could help.
Some smart home platforms support geofencing, for example. So it might be possible to use advanced automation rules that turn a device on only if someone isn’t home. This rule would use the phone’s GPS location to determine if a specific individual is present. In Jonathan’s case, that would be his wife, but it could apply to any smart home family member.
We considered suggesting the addition of smart outlets to certain devices because those can easily be turned off with automation rules. And the trigger event to kick off those rules can be a connected button such as the Flic.

But a smart outlet won’t stop a Roomba from vacuuming if the device is already charged. Nor would it disable any automated blinds, smart bulbs, or smart switches. Even worse, any inactive devices can be overridden by someone in the home; there’s simply no universal method to temporarily turn off the smart home.
The closest solution we’ve seen so far is specific to Home Assistant, an open-source, self-hosted smart home solution. A Home Assistant forum member was seeking the exact same do-not-disturb functionality so that automation scripts wouldn’t run during a user-defined period of time. The solution is a custom script but again, it’s specific to Home Assistant. There’s no way to do this with Amazon, Apple, or Google smart homes. At least not yet.
To hear Jonathan’s question, as well as our discussion in full on the topic, tune in to the IoT Podcast below:
Hopefully the Thread protocol has something like this in the works. I ran into this same issue recently when I went out of town for a few days. Going through the disparate apps to set vacation modes or disabling automations was painful and re-enabling them possibly more so!
This is actually really easy to do with smartthings. You just create a virtual switch for “quiet mode“ or whatever you want to call it. Then whenever you add a new routine that you want to be able to disable, you include the condition that the quiet mode switch is off.
From then on, just turn the quiet mode switch on anyway you want to (in the app, by voice, even with a physical battery operated switch if you set one up) and as long as it is on, those routines will not run. Then turn the quiet mode switch off again to allow the routines to run.
Obviously, this will only control routines which were created in smartthings, but that can cover a lot of devices and situations.
You can use this same method on any home automation platform that allows for “and“ on the IF side of an automation. If the system doesn’t support virtual switches, you can use a physical Device like an inexpensive smart plug that you allocate for this purpose. Just when quiet mode device is off AND any other conditions you use to trigger that particular routine.
Home automation platforms that don’t allow for an and condition can’t use this, but fortunately more do these days. For example, you can do it in HomeKit as long as you are using Shortcuts. You can do it in the advanced version of Ifttt. You can certainly do it with Hubitat or home assistant and again, any platform that supports this logic structure.
At our house we use a “guest mode“ for a somewhat similar purpose, to change the way some of the routines work when we have guests staying with us. Some people do something similar with a “child napping “switch so that specific routines don’t run when the baby is asleep.
It’s a useful idea and widely applicable as long as the platform you are using supports a compound if.