IoTa: A Calculus for Internet of Things Automation
Programmatically controllable home devices are proliferating, ranging from lights, locks, and motion sensors to smart refrigerators, televisions, and cameras, giving end users unprecedented control over their environment. New domain-specific languages are emerging to supplant general purpose programming platforms as a means for end users to configure home automation. These languages, based on event-condition-action (ECA) rules, have an appealing simplicity. But programmatic control lets users write programs with bugs, introducing the frustrations of software engineering with none of the tool support. The subtle semantics of the home automation domain—and the varying interfaces and implementation strategies that existing home automation platforms use—exacerbates the problem.
In this work, we present the Internet of Things Automation (IoTa) calculus, the first calculus for the domain of home automation. IoTa models an ECA language equipped with first-class notions of time, state, and device aggregation, and comes equipped with a precise semantics inspired by a careful analysis of five existing home automation platforms. We show that the IoTa calculus is useful by implementing two analyses from the software engineering literature, and expressive by encoding sixteen programs from these home automation platforms. Along the way, we highlight where the design of the IoTa semantics rules out subtle classes of bugs.
Thu 26 Oct
|13:30 - 14:00|
|14:00 - 14:30|
Aleksandar ProkopecOracle Labs
|14:30 - 15:00|