Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
#The Thing System
The home has evolved from one computer in a back room to a network of computing devices all over the house. Many of these are user-facing devices, such as tablets, laptops, and desktops. However increasingly, the home network has a number of special-purpose devices — things — that turns the home network into a network not just for the user, but for their devices; a network of things.
The trouble with these things is that none of them talk to each other. They might be informing us, quantifying the world around us and allowing us to make better decisions, but it's still us that has to make the decisions, and the more things there are, the more decisions there are to make. The Internet of Things isn't connected together, not like the other Internet, the digital one. Right now its a series of — mostly proprietary — islands that don't talk to each other. We’re become a mechanical turk inside other people's software.
The Thing System is a set of software components and network protocols that changes that. Our steward software is written in node.js making it both portable and easily extensible. It can run on your laptop, or fit onto a small single board computer like the Raspberry Pi.
The design and architecture of the system is governed by the philosophy that Internet of Things should revolve around rules in which things observe events, and in response, other things perform tasks. Not every choice needs to be presented to the user all the time. Not every option offered to them. The Internet of Things should be context sensitive, but not just that, it should be anticipatory, not responsive.
##The Thing Architecture
The steward is at the heart of our system and connects to things in your home, and allows them to connect to one another. Whether those things are media players, such as the Roku or the Apple TV, your Nest thermostat, your INSTEON home control system, or your Philips Hue lightbulbs — whether your things are connected together via Wi-Fi, Zigbee, Z-Wave, USB or Bluetooth LE. The steward will find them and bring them together so they can talk to one another and perform magic.
Our philosophy is that the Internet of Things should reduce the friction in our lives. Things should work like magic. The more buttons, switches, dials and other interface elements that stand between us and our thing doing what we expect it to do, when we expect it to, makes the thing harder to use. It increases the friction between us and our things.
There is very little point automating your home if you end up with a home that's harder to use afterwards than it was before. If your lights are harder to use, or you have to think about what state they're in before flipping a wall switch you've not made your life simpler, you've made it just a little bit harder.
You don't want to have to think about that, you want it all to work like magic. That's our goal
##Installation and Getting Started
There are three main tracks for developing for the Thing System,
Developing drivers for third party things, and hacking on the the steward.
However, before getting started, you should probably read about the architecture.