Connected Lighting Project
The Connected Lighting Project develops the Lighting Service Framework (LSF) providing an open and common way of communicating with AllJoyn-based connected lighting products, regardless of manufacturer. This will enable lighting manufacturers to make their products interoperable with each other as well as other connected things, and provide 3rd party application developers with a common interface (API) to communicate with lights across manufacturers.
Examples of features of LSF include the ability to group lamps together and control their hue, saturation, brightness, and color temperature to match a users preference or mood. Other features include the ability to personalize the lighting experience to an individuals tastes and preferences by setting lighting Scenes, and the ability for users to add lighting Effects like pulsing lights for notifications purposes.
To participate in the working group, please (Subscribe) to the the Mailing List: email@example.com
- AllSeen Summit Presentation - November 2014 - Download the Presentation
- For an Overview Presentation on LSF from Uplinq 2014, please Watch via YouTube and View the Presentation
- Connected Lighting Working Group Announcement
- Blog post by Marc Alexander, CTO LIFX, Working Group Chair Read
What's New (Last Update: July 29th)
- October 23th 2015 - Lighting 15.04 Released. Release Note
- July 29th 2015 - Lighting 15.04 Feature-Complete milestone has reached and code is available
- June 9th 2015 - Getting Started with Android Sample and Lighting SDK Getting Started
- April 10th 2015 - Lighting 14.12 Released. Release Note
- March 18th 2015 - Added Getting Started Guide for Lighting SDK for iOS
- February 2nd 2015 - Added Lighting Controller Test Case Specification
- December 18th - Beta Lighting SDK for iOS 14.06 Released. More Here
- November 14th - Lighting Service Framework 14.06 Released. Read More
- November 11th - Added AllSeen Summit Nov 2014 Presentation - Download
- November 8th - Updates to the LSF Sample apps and Beta Lighting SDK for Android.
- November 8th - Update to Luminaire in Google Play
The LSF is a multi-tier architecture with components that reside inside and outside the Lamp (light bulb), and will run over any IP bearer capable of running AllJoyn. Components include:
- Lamp Service
- Lighting Controller Service
- Sample Applications for Android and iOS
- Lighting SDK beta for Android (and iOS, see Roadmap)
1. Lamp Service
The Lamp Service is implemented by the Lamp (light bulb) Manufacturer inside the connected Lamp firmware to make the Lamp LSF compatible. The Lamp Service is designed to run in a very small footprint (1KB SRAM/5KB Flash) on an embedded RTOS in the Lamps Microcontroller (MCU), and works in conjunction and is dependent on the AllJoyn Thin Client ajtcl and base_tcl. If you are building lamp hardware and want to make it compatible with the Lighting Service Framework and certified “Designed for AllSeen”, you will need to implement the Lamp Service in your Lamp and pass the Lamp Service tests included in the certification tool.
- Designed for AllSeen Certification Process and FAQ
Who should implement the Lamp Service?
- Lamp Manufacturers building IP connected Lamps
2. Lighting Controller Service
The Lighting Controller Service is a mandatory component of the LSF and works in conjunction with and is dependent on the AllJoyn Core Standard Client and Router. It stores group, scene, and preset information and discovers and connects with devices on the same network running Lamp Service. If multiple Lighting Controller Services are running on the same network, they arbitrate and one becomes a Leader and the rest become Followers. Group, Scene, and Preset information is synchronized between Leaders and Followers, and if a Leader leaves the network a Follower will be promoted and take over controlling the Lamps. Lighting Controller Service runs outside of the Lamp on a Hub, Router, Switch, Gateway, or any other Linux-based device (such as OpenWrt) on the same network as the Lamps. It can also be bundled in with the mobile application running on an Android or iOS Smartphone or Tablet that the end user uses to discover and control the Lamps. The Lighting Controller Service footprint is roughly 270KB Flash / 25KB RAM not including the AllJoyn Core.
- Designed for AllSeen Certification Process and FAQ
Lighting Controller Support for AllJoyn Events & Actions
A significant and powerful feature of the Lighting Controller Service is that it exposes every Scene as an AllJoyn Event & Action. Events and Actions are loosely coupled integrations that enable just in time interoperability.
- Actions allow Scenes in the Lighting Controller to be discovered, introspected, and invoked dynamically by other devices and applications. This makes it very easy for other devices to trigger a Scene. The Lighting Controller automatically exposes every Scene as an action with a text descriptor that includes the Scene name. Create a new Scene and that Scene is instantly discoverable and invokable as an AllJoyn Action.
- Events allow Scenes in the Lighting Controller to notify other devices and applications when a Scene is applied, allowing other devices to react when they receive the Scene's Event. The Lighting Controller automatically triggers an Event whenever a Scene is invoked. The Event is discoverable with a text descriptor that includes the Scene name. Create a new Scene and that Scene is instantly discoverable and will emit an Event when the Scene is applied.
Actions are an extremely powerful way of integrating IoT products using AllJoyn. For example, a Hub, Gateway, or Router running the Lighting Controller can host a rules engine to discover all devices on the network emitting Events (Including the Lighting Controller itself) and allow the consumer to create rules that bind those events to Lighting Scenes exposed as Actions. This can (for example), allow the door lock to launch a “Welcome Home” scene when the door is unlocked or allow the wearable baby monitor to pulse the lights when the baby is waking up. All of this can be accomplished proximally on the local network without the need to go to the cloud.
- Events & Actions Description: Read
- Events & Actions API Guide: Read
- Events & Actions Overview: PPT
- Events & Actions Presentation Overview: Watch on YouTube
- Events & Actions Test Case Specifications (For Certification): Doc
- Events & Actions Browser Android Application: Source
- Notifier Application in Google Play generates Events: Download
Who should implement the Lighting Controller Service?
- Lamp Manufacturers bundling the Lighting Controller in their Hub or Gateway
- Lamp Manufacturers bundling the Lighting Controller in their iOS or Android Application
- CE Manufacturers who develop routers, gateways, hubs, or other Connected Devices running Linux who want their products to interoperate with AllJoyn-based lamps out of the box. For example, a CE OEM who builds a Home Automation Controller may elect to implement the Lighting Controller within their hub to make it interoperable with Lamps in the AllJoyn lighting Ecosystem.
- Connected Device Manufacturers who developer appliances, white or brown goods, or other Connected Devices running Linux who want their products to interoperate with AllJoyn-based lighting out of the box.
- Application Developers who want their applications to be able to discover and control AllJoyn-based Lamps.
3. Sample Applications
The Sample Applications are turnkey applications for iOS and Android that can be used by a Lamp Manufacturer to jumpstart the development of their own branded AllJoyn LSF-compatible mobile applications. The Sample Applications provide a full implementation including Lamp discovery, controlling lamp preferences (Hue, Saturation, Color Temperature, Brightness), Creating and managing Presets, Groups, and Scenes, and adding Effects.
- Sample Application for Android 15.04: Source | APK Download
- Sample Application for Android 15.04 Build Instructions Configure
- Sample Application for iOS 15.04 Build Instructions: Configure
- Lighting Controller Service 15.04 Client Source written in C++ for low level interfacing with the Lighting Controller Service.
- Sample Application for Android 14.12: Source | APK Download
- Sample Application for Android 14.12 Build Instructions Configure
- Sample Application for iOS 14.12 Build Instructions: Configure
- Lighting Controller Service 14.12 Client Source written in C++ for low level interfacing with the Lighting Controller Service.
- Sample Application for Android 14.06: Source | APK Download
- Sample Application for Android 14.06 Build Instructions Configure
- Sample Application for iOS 14.06 Build Instructions: Configure
- Lighting Controller Service 14.06 Client Source written in C++ for low level interfacing with the Lighting Controller Service.
Who should use the Sample Applications?
- Lamp Manufacturers who want to developer their own custom branded applications for lighting control
- Application Developers who want low-level API's for interfacing with the Lighting Controller Service such as creating Scenes, Groups, and Presets. Application Developers should start with the Lighting SDK, which includes many of the standard functions for interfacing with Lamps using higher level API's that can speed development.
4. Lighting SDK (beta)
The Lighting SDK provides Application Developers with a high level toolset for discovering and manipulating LSF-compatible lamps, allowing them to discover individual or groups of lamps, manipulate their Hue, Saturation, Color Temperature, and Brightness and discover and apply Scenes. Starting in v15.04, the Lighting SDK provides a complete set of APIs such as manipulating groups, scenes, and presets. v15.04 Sample Applications (for both Android and iOS) are completely written using v15.04 Lighting SDK. These SDKs are also available in Alliance Download
- Lighting SDK 15.04 for Android: Download (zip)
- Lighting SDK 15.04 for Android Build Instructions: Configure
- Lighting SDK 15.04 Tutorials View
- Lighting SDK 15.04 for iOS (Beta): Download (zip)
- Lighting SDK 15.04 for iOS (Beta) Build Instructions: Configure
- Lighting SDK 15.04 iOS Tutorials View
Who should use the Lighting SDK?
- Mobile Application Developers who want to quickly begin interfacing with AllJoyn compatible lamps.
- Watch the Overview Presentation on LSF from Uplinq 2014: Watch via YouTube and View the Presentation
- Download and install the V.14.06 Sample Application for Android on an Android Smartphone (Device 1): APK Download
- Download and install the Lamp Simulator Application, called Luminaire, from Google Play on another Android Smartphone (Device 2): Download from Google Play
- Make sure that both the Sample Application running on Device 1 and Luminaire running on Device 2 are both on the same Wi-Fi network.
- Launch Luminaire on Device 2 and enable the Lighting Controller via the on/off switch under the Controller tab.
- Launch the Sample Application on Device 1.
- You should now see the virtual lamp in Luminaire from the Sample Application, and can control its properties just like a physical bulb, e.g. control Hue, Saturation, Color Temperature, and Brightness and create Presets, Groups, and Scenes that include Effects. Protip: Run multiple instances of Luminaire on separate devices to simulate multiple lamps.
- Download the Lighting SDK 14.06 for Android (Beta): which can be used to manipulate the virtual lamp in Luminaire.
- Create a Scene with the LSF Sample and Experiment with the Scenes Events and Actions exposed via Luminaire's instance of the Lighting Controller. Events & Actions are powerful ways to interoperate with the LSF.
- If you're new to Android development, see Building a sample Android app using the AllJoyn Lighting SDK
The Features of the Lighting Service Framework include a common implementation into the open source, which accomplish the following:
- Controlling individual state of a Lamp such as On/Off, Hue, Saturation, Color Temperature, or Brightness.
- Managing Groups of Lamps, including creating, naming, and deleting groups allowing them to be controlled together as if they were a single lamp.
- Saving lighting preferences called “Presets” allowing a particular state to be named stored for future use.
- Applying lighting Effects like pulsing the Lamps or transitioning them to a particular state over time.
- Creating Lighting Scenes and Master Scenes comprised of Lamps or groups of Lamps and associated preferences and Effects that can be applied to set a mood or ambiance.
For a complete list of features please see the AllSeen Summit Presentation
The project is dependent on the 14.12 of AllJoyn Core and Base Services. Please refer to each component (above) for details. There are no external dependencies.
Committers and Contributors
- Marc Alexander, CTO, LIFX
- Bharanee Rathna, Engineer, LIFX
- Marc Alexander, CTO, LIFX
- Dean Camera, Engineer, LIFX
- Shane Hanna, Engineer, LIFX
- Eric Rongo, Senior Engineer, Qualcomm Connected Experiences
- Padma Narayanan, Senior Engineer, Qualcomm Connected Experiences
- David Diplock, Staff Engineer, Qualcomm Connected Experiences
- Jason Fullen, Engineer, Qualcomm Connected Experiences
- Brian Vogelsang, Director Product Management, Qualcomm Connected Experiences (brian at qce.qualcomm.com}
- Kenny Fok, Director Engineering, Qualcomm Connected Experiences
- Mailing List: firstname.lastname@example.org (Subscribe)
- Issue Tracker: ASALIGHT JIRA
- Overview Presentation on LSF at Uplinq 2014: http://youtu.be/3lNzNj5ytqM?list=PLxeazpXYyqtNm2EnCbfSzy7aKOkHjiaSi
- Lighting Service Framework Repository
- Lighting Sample Apps and SDK Repository
Features being considered for Q3 2015, based on AllJoyn Core 14.12.
- Support for AllJoyn Core 14.12
- Lighting SDK Support for creating presets, groups, and scenes.
- Lighting SDK Support for bundled Lighting Controller
- Sample Apps for Android and iOS developed on Lighting SDK