With ever more devices being connected to the Internet and everyday objects becoming "smart" due to embedded processors and communication capabilities, the provisioning of intuitive user interfaces to control smart things is quickly gaining importance. To address this issue, we present a model-based interface description scheme that enables automatic, modality-independent user interface generation. User interface description languages based on our approach carry enough information to suggest appropriate and intuitive interfaces. Still, they are simple enough to enable developers to describe the interaction semantics of a smart thing using very little, easily producible markup. This is enabled by describing the atomic interactive components of a device rather than the device as a whole, and capturing the high-level semantics of an interaction. As a concrete language based on this approach, we propose a taxonomy of abstract sensing and actuation primitives and present a smartphone application that can act as a ubiquitous device controller. An evaluation of our approach in a laboratory setup, home environments, and a lecture hall automation system as well as the results of a user study highlight the accessibility of the proposed description scheme for application developers, its suitability for controlling smart devices, and its generality with respect to describing heterogeneous smart things.