Light Bulb Template 1.0
1. Introduction
The User Interface Socket Description for a light bulb contains all elements necessary to control the on/off state of the bulb and, optionally, its brightness. The template documents in this specification can be used directly by service implementers or extended to add manufacturer-specific features without breaking interoperability with controllers that implement the base template.
The light bulb is one of the simplest controllable devices in any home automation deployment. Its simplicity makes it a useful test case for the URC framework: a template that cannot describe a light bulb cleanly is unlikely to handle the more complex devices found in real installations. The template defined here was developed in the i2home and Cloud4all projects, where it served as the canonical example used to onboard new implementers to URC socket description authoring.
2. Conformance
A service conforms to this specification if either of the following is true. First, the service’s user interface socket inherits from the template socket provided in section 3 of this document. Second, the service’s user interface socket description has all of the following characteristics:
- The socket description references the template socket through the Dublin Core
sourceelement<dc:source>. - The socket description contains all sets of the template socket in an unmodified form.
- The socket description contains all mandatory (non-optional) socket elements from the template, and any optional elements implemented are present in the form defined by the template.
- Additional elements may be added beyond those defined in the template, provided that they do not change the semantics of the template elements.
Conformance is intended to give controller authors a stable contract: any service that conforms to this template can be controlled by any controller that knows the template, regardless of which implementation produced the service.
3. Master Documents
The master documents for this template comprise three files: the User Interface Socket Description in XML, the supporting Resource Property file describing the template metadata, and the example Atomic Resource files used in the controller-rendered presentation. All master documents are stored in the openURC Resource Server and may be retrieved using the operations defined in Resource Server HTTP Interface 1.0.
The socket description defines two variables. The first is a Boolean variable named state that takes the values on and off. The second is an optional integer variable named brightness that takes values in the range 0 to 100, representing percentage brightness from fully off to fully on. A service that implements only on/off control omits the brightness variable; a service that implements dimming includes both. Notifications are defined for state changes and for brightness changes.
4. References
- [ISO/IEC 24752-1] — ISO/IEC 24752-1:2014, Information Technology — User Interfaces — Universal Remote Console — Part 1: Framework.
- [ISO/IEC 24752-2] — ISO/IEC 24752-2:2014, Part 2: User Interface Socket Description.
- [ISO/IEC 24752-4] — ISO/IEC 24752-4:2014, Part 4: Target Description.
- [ISO/IEC 24752-5] — ISO/IEC 24752-5:2014, Part 5: Resource Description.
- [RES-SERV-HTTP] — Resource Server HTTP Interface 1.0, openURC Alliance, March 2014.