LoT w/ HOS (Lab of Things with the HomeOS)
Today's project is one that's a mix of interesting and cool... Not sure the average hardware hacker will directly use this, but all the source is available and this just looks like allot of fun stuff to spelunk...
Make sure you check out the Lab of Things Intro video;
What is the Lab of Things?
Lab of Things (LoT) is a flexible platform for experimental research that uses connected devices in homes.
- LoT enables easy interconnection of devices and implementation of application scenarios, using HomeOS.
- LoT enables easy deployment and monitoring of field studies and analysis of data from experiments.
- LoT enables easy sharing of data, code, and participants, further lowering the barrier to evaluating ideas in a diverse set of homes.
Frequently asked questions
If you have a question about the Lab of Things, and you do not find it on this FAQ page, please send us an email.
How do I join the Lab of Things?
Simply download the Lab of Things SDK and Platform from CodePlex. You can start deploying immediately.
How do I get support for the Lab of Things?
You can visit our CodePlex page and post questions at the developer forum. Our developer team will answer.
Who owns data generated from my field studies?
You own this data. You also own your own deployment and participants. All study related data generated as part of your deployments is accessible only to you in your own Windows Azure Storage account.
Microsoft collects monitoring data from Lab of Things deployments as a service to you so you can monitor your deployments and studies via the Monitoring Portal. Data collection and usage in this case is guided by the Microsoft Research Privacy Statement
Can I use the Lab of Things for my research?
If you are an academic researcher, you can freely use the Lab of Things for your research. The Lab of Things license does not allow commercial use.
Is the current version of Lab of Things the final version?
The Lab of Things released in July 2013 is the Beta 1 version, and will continue to improve with subsequent releases. We plan to add more features in the coming months.
Do I have to connect my home deployment to the LoT cloud services?
If you are testing your deployment, you do not have to connect to the LoT cloud services. We provide sample code for a reference implementation of our cloud services which you can see for understanding how our services work. Once you want to deploy at scale, we would highly recommend you to use LoT cloud services for storage, update and monitoring. We will be updating our cloud services to reflect the latest features.
What is the relationship between HomeOS and Lab of Things?
Built on top of the HomeOS software platform, Lab of Things provides a common framework to write applications and has a set of capabilities beneficial to field deployments including logging application data from houses in cloud storage, remote monitoring of system health, and remote updating of applications if needed (e.g. to change to a new phase of the study by enabling new software, or to fix bugs). HomeOS is the core platform for interconnection of devices in the home and LoT provides the services required for monitoring, updates and storage.
Guideline for Contributing to the LoT Repository
To maintain overall stability and consistency of the platform, the team at Microsoft Research will be working in the core areas of the platform for enhancements, new features, and bug fixes regularly.
We welcome you to share driver and app modules with the community. Please check your code only in the following directories:
To get started:
- Contact firstname.lastname@example.org with your CodePlex username and we will add you as a developer.
- Add modules that communicate with devices to the Drivers subdirectory, and others to Apps subdirectory
- To add a module, add the directory containing the VS project. This will let others to directly add your module in their solution. Add all source files, including those auto-generated by VS such as Properties/AssemblyInfo.cs and the .csproj file.
- For each driver that you add, consider adding at least one example application that uses the driver.
- Provide a readme.txt in the root folder for your module with the following information:
- A simple description of what the module does and how it works
- Any prerequisites in order for the module to work (e.g. any binaries or SDK required?)
- Quick steps to build the project.
- Provide a license.txt to define any license terms you would like to apply to your module. To allow for easy sharing within the community we encourage you to use a license similar to the MSR-LA, which is the default license for this repository.
It is no secret that homes are ever-increasing hotbeds of new technology such as set-top boxes, game consoles, wireless routers, home automation devices, tablets, smart phones, and security cameras. This innovation is breeding heterogeneity and complexity that frustrates even technically-savvy users’ attempts to improve day-to-day life by implementing functionality that uses these devices in combination. For instance, it is impossible for most users to view video captured by their security camera on their smartphone when they are not at home. Heterogeneity across devices and across homes also makes it difficult to develop applications that solve these problems in a way that work across a range of homes.
To simplify the management of technology and to simplify the development of applications in the home, we are developing an "operating system" for the home. HomeOS provides a centralized, holistic control of devices in the home. It provides to users intuitive controls to manage their devices. It provided to developers high-level abstractions to orchestrate the devices in the home. HomeOS is coupled with a HomeStore through which users can easily add obtain applications that are compatible with devices in their homes and obtain any additional devices that are needed to enable desired applications.
In addition to the publications and talks below, the following resources provide more information on the HomeOS prototype and what it supports:
- Programming guide
- Applications and drivers that we developed
- Applications and drivers that others have contributed
... More demos!
We are licensing (free; non-commercial use) the HomeOS prototype to encourage teaching, research, and prototyping on connected homes and devices. Thanks to Sigma Designs, we also provide an SDK for Z-Wave devices.
Many research groups have licensed our prototype, including those at the Georgia Institute of Technology the University of Arkansas, the University of Michigan, the University of Washington, the University of Wisconsin, and the University of Waterloo.
Go to http://labofthings.codeplex.com/ for the code and documentation.
I said there's allot of code to check out? Here's some snaps of the Hub Solution;
Then there's the Cloud Solution, there's doc's and more... In short, there's lots to check out and play with...
Added Lab of Things Intro video