Imagine that everything, every "Thing" or connected device around you had its own ID, like a URL or web link. Let's call that a "UID", for Universal ID. This simple idea can bring your surroundings to life.
You're used to sharing web links to web pages, and are used to the idea that this little slip of incomprehensible text can be passed around and saved, waiting to be "cashed in" later, to reveal the full web page it refers to. It's a handle on the thing.
But what if your connected lamp, your soil sensor, your networked thermostat, your garage door opener, your wearable activity band, your every Thing in the house .. what if each of them had its own UID? Wouldn't that be a powerful handle on those Things, too?
What would you use that for?
Like a web page, these UIDs can return stuff - data. Unlike a web page, this data can be continuously updating. The UID of the lamp can return a little chunk of data telling you what colour and brightness it's set to. The soil sensor can tell you the soil moisture percentage, updating every minute. The thermostat tells you how hot it is, in another little updating chunk of data.
So you'll be able to see the current state of every Thing in your house using a single browser-like viewer such as a smartwatch or Augmented Reality glasses. That viewer can fetch the data from each Thing's UID and watch it change, without you having to pull out the Lifx app, the Hue app, the Soil app, the Nest app, and so-on.
Each data chunk would be a small collection of properties - a property name and a property value. To get this to work, each Thing simply has to publish its state in this way, to be fetched on the home WiFi (or more likely, a peer-to-peer or mesh radio network) from its UID, then keep publishing updates as long as they were being listened to.
The viewer could present the data as a table of property names and values, or better, some 3D representation. These views would then update as the data updates.
Of course, you need to have a UID to hand. How do you find them? Easy - just walk up to any Thing in your house and it'll tell you its UID using a radio beacon.
Not all Things will be able to have radio built in, though, so you could just have a unique QR code stuck to each one instead.
Once you've seen a UID before, you don't need to capture it again every time - just bookmark it. In theory, you should be able to keep monitoring the sensor values wherever you go, even if there may be some extra work to do to ensure security and privacy.
This idea is not limited to just watching data provided by your home devices. You can pick up and view UIDs from beacons or QR codes wherever you go. QR codes can be attached to a magazine or on a shop window or on some food, telling you about latest offers or nutrition. Beacons can be scattered around a shop to return you data about the items on offer in front of you.
Of course, you could always get a public UID for some data chunk to view off a normal web page, wherever you are. You may even be able to watch the light levels of your streetlights, or the temperature in Alaska, in exactly the same way you see your own lights and outside temperature.
As before, the same viewer would work for all of these, rather than having to download new apps every time. The viewer could observe the data from the UID via radio or mobile data.
Once you have a handle on a Thing - its UID - you can drop that into another Thing as a 'link' to it. The linking Thing can now depend upon the Thing it links to.
For example, drop the UID of a button into a light, and now when you push the button, the light comes on. If you then drop in the UID of a light sensor, the light can respond to the ambient light level, coming on brighter as it darkens outside.
These behaviours can occur either by built-in code that works out the best reaction for the linked Thing .. or by writing a simple reaction rule yourself!
Recently, Google have been offering a similar concept - the Physical Web, which allows Bluetooth beacons to advertise URLs. This is similar, but not the same as "UIDs for every Thing".
Firstly, it's not aimed at the Internet of Things, or home automation, or small devices publishing on UIDs. It's apparently aimed at in-public advertising opportunities.
Secondly, the UIDs of Google's Physical Web will usually return full colour web documents. We just have small chunks of data describing Things on our UIDs.
Thirdly, the Physical Web doesn't have a built-in system for observing updates to the latest state of the pages on those URLs. We get told when those data chunks change.
This data needs a tiny bit of extra work to get it from the data form to something you can interpret on your screen, in 3D, etc, but it's worth it because our data is more far compact and more powerful than documents.
Machines can easily read that data, whereas generally web pages are aimed at humans. This opens up a whole range of possible applications based around devices fetching data from each other, updating themselves accordingly, then publishing themselves in turn.
Of course, this isn't available yet today - at least not in this form, but it's ridiculously easy to implement and would be immensely powerful and useful. Many Things already carry more than enough power to support publishing data on UIDs, and would only need a small software upgrade to provide it.
This is one of the goals of the Object Network.
Contact me and/or subscribe to my blog and/or follow me on Twitter.