Many user studies of home automation, as the most familiar representative of the Internet of Things, have shown the difficulty of developing technology that users understand and like. It helps to state requirements as largely-independent features, but features are not truly independent, so this incurs the cost of managing and explaining feature interactions. We propose to compose features at runtime, resolving their interactions by means of priority. Although the basic idea is simple, its details must be designed to make users comfortable by balancing manual and automatic control. On the technical side, its details must be designed to allow meaningful separation of features and maximum generality. As evidence that our composition mechanism achieves its goals, we present three substantive examples of home automation, and the results of a user study to investigate comprehension of feature interactions. A survey of related work shows that this proposal occupies a sensible place in a design space whose dimensions include actuator type, detection versus resolution strategies, and modularity.
The work closest to ours is @cite_16 , in which features interact by controlling the same object, resource, or environment variable such as air temperature. A feature can claim exclusive access to a resource for some period of time, some claims are not conflicting, and priority is used to resolve conflicting claims. It is difficult to make a closer comparison because their composition is not completely defined, and there is no formal semantics. Certainly the only kind of control considered in @cite_16 is automatic control as defined in , so there is no consideration of manual control or user-centric concepts.
@cite_16
1603485079
The feature or service interaction problem within home networks is an established topic for the FI community. Interactions between home appliances, services and their environment have been reported previously. Indeed earlier work by the authors introduced a device centric approach which detects undesirable behaviour between appliances and their effects on the environment. However this previous work did not address side-effects between components of the modelled environment. That is some appliances do not only affect the environment through their main function, but may do so also in other ways. For instance, an air conditioner cools the air as its main function, but also decreases the humidity as a side-effect. Here we extend our earlier approach to handle such side effects effectively and discuss previously unreported results.