The Internet Of Talking Things
What if everything could interact and learn from other things?..
How would the world look
… If your phone could talk to the lights, the lights could talk to your TV, the TV could talk to your vacuum cleaner… etc?..
The Internet of Talking Things
Every day a new fantastic thing or device is announced, Kickstarter gets more and more interesting stuff and everything gets more and more (internet) connected…
People (like myself) creates apps for phones, watches, computers, etc. to control more and more stuff, but every time a new gagdet sees the light of the day - someone has to sit down a code up a solution for each existing device, that people wants connected to the new gagdet…
That’s just dumb and annoying!
What if we could invent a flexible standards protocol for “The Internet Of Talking Things”?
A simple protocol and design that would allow my Bluetooth Pebble watch to “just know” how to reach out to my Zigbee Philips Hue bulb!
Thoughts on the design
A couple of basic things need to be in place to make this happen…
- Multi network devices should act as proxies between networks
- A protocol like JSON for small footprint and easy integration
- Easy to integrate for device manufacturers for optimal adoption
- Flexible enough to accomodate for the future
- Every device should have a “specification” of it’s services
- Maybe a centralized service for looking up service types
Lets zoom in on the proxy part
The 2 most essential things in this idea is the proxying and the protocol.
The proxies should act as simple “invisible” bridges between different types of networks, in order for e.g. a Bluetooth device to be able to talk to a Zigbee device.
It might even allow streaming between 2 devices.
This could be an Arduino that streams statistics through a mobile phone to a computer that can create graphs which again streams live graphs to an AppleTV that is connected to a TV!…
Let’s shorten that with arrows :-P
Arduino –(BT)-> mobile phone –(WiFi)-> computer –(Network)-> AppleTV –(HDMI)-> TV
Zoom on the protocol
The protocol is equally essential to the proxies…
This is the way everything will communicate - as many knows… Making 2 very different “things” communicate can be REALLY hard…
What we want to end up with, is a flexible means of communication, that is future-proof and at the same time has a small footprint and is easily readable by any programming language… I know… That’s a lot to ask for!
JSON has been adopted almost as “the new XML”, which makes it extremely possible, that an existing language has a pretty o.k. parser for JSON.
JSON is also lightweight enough to at least allow for a very strict set of rules to work in virtually any programming language.
Zoom on the service announcements
Some times a device is not self-aware enough to tell the network about it’s abilities - this doesn’t need to be a big problem…
Let’s take Philips Hue as an example:
The Zigbee bulbs may not be hackable or capable enough to make let it both announce it’s service or capabilities, but the Hue Bridge knows everything about the bulbs and can talk to them for you!
Currently the internet is flooded with all kinds of APIs… Most is not directly readable, but many are consistent enough to create an automated service, that can read and translate into a stricter standards API.
In the future this might even create a reason to adopt a specific way of writing APIs.
With this in mind, it might be possible to have a proxy read APIs and expose them to whatever is in your “Internet Of Talking Things”!
More details coming up
This is just some thoughts on the bigger details.
I will write down some more details, when I have the time.
If you have any thoughts or ideas, I would love to hear about them!