The idea of a smart home sounds promising enough, and a house full of automated gadgets, from light switches to appliances to heating systems, will impress your friends.

But they need to be programmed. And that means either learning how to program or dealing with programmers. If you think a 'reboot your PC' response is annoying when it comes to asking why Microsoft Bob won't work on Windows 8.1, imagine the shame at calling tech support to turn on your lights.

Computer scientists from Brown and Carnegie Mellon universities say they have a workable programming solution - a style of programming they term "trigger-action programming" provides a powerful and intuitive means of talking to smart home gadgets.

It's like BASIC, except more basic.

New research from Brown University and Carnegie Mellon shows that 'trigger-action programming' or 'if this, then that' statements work just fine for programming potential smart home applications. Credit: Littman lab / Brown University

The trigger-action paradigm is used most prominently on the website IFTTT.com (If This, Then That), which helps people automate tasks across various Internet services. Users create "recipes" using simple if-then statements — for example: "If somebody tags me in a Facebook photo, then upload it to Instagram." The website interfaces with both service providers, and the action happens automatically each time it's triggered.

IFTTT.com started out as a tool to link websites, but it has recently added the capability to command a few Internet-connected devices, like Belkin's WeMo power outlet and the Philips Hue lightbulb. That got Michael Littman, professor of computer science at Brown, and his team thinking perhaps the trigger-action model employed by IFTTT might be a good fit for home automation.

"As a programming model, it's simple and there are real people using it to control their devices," Littman said. "But the question we asked in this paper was: Does it work for the [home automation] tasks people want to do, or is it perhaps too simple?"

To find out, the researchers started by asking workers on Mechanical Turk, Amazon's crowdsourcing marketplace, what they might want a hypothetical smart home to do. Then the team evaluated answers from 318 respondents to see if those activities would require some kind of programming, and if so, whether the program could be expressed as triggers and actions.

The survey responses varied from the mundane ("start the coffee pot from the bedroom") to the outlandish ("I would want my home to be able to shoot lasers at intruders."). A majority of activities people wanted — "Notify me when my pet gets out of the back yard" or "Start brewing coffee 15 minutes before my alarm" — would require some kind of programming to get the devices on the same page as the user.

Most of the programming tasks fit nicely into the trigger-action format, the survey found. Seventy-eight percent of responses could be expressed as a single trigger and a single action. Another 22 percent involved some combination of multiple triggers or multiple actions.

The next step for the researchers was to see how well people could actually design recipes to accomplish tasks. To do that, they used two interfaces designed by Brown undergraduate Elyse McManus, and enlisted Mechanical Turkers to make recipes with the interfaces.

"We based both [interfaces] on 'If This Then That,'" McManus said. "But then we made one of them slightly more complex, so you could add multiple triggers and multiple actions."

The study showed that participants were able to use both interfaces — the simpler one and the one with multiple triggers and actions — fairly well. Participants who didn't have any programming experience performed just as well on the tasks as those who did.

Taken together, the researchers say, the results suggest that trigger-action programming is flexible enough to do what people want a smart home to do, and simple enough that non-programmers can use it. Melwyn Pak, one of the Brown undergraduates on the project, finds that encouraging.

"People are more than ready to have some form of finer control of their devices," he said of the results. "You just need to give them a tool that allows them to operate those devices in an intuitive way."

Littman, who has been studying end-user programming of electronic devices for several years, agrees.

"We live in a world now that's populated by machines that are supposed to make our lives easier, but we can't talk to them," he said. "Everybody out there should be able to tell their machines what to do. This paper is our attempt to start thinking about how to bridge that gap."

Presented at the Conference on Human Factors in Computing Systems (CHI2014) in Toronto. Source: Brown University

Comments

Metaphor programming is almost certainly the wave of the future. I have been predicting that for about 20 years. I am sure someone predicted it before me.It will probably happen when someone invents a portable command interface. It will have to figure out how to convert the metaphorical instructions into native (or pseudo-native) code based on whatever device it connects to.

We call this "Star Trek Computing". But Tony Stark has made it look real, real simple, and really easy.