posted by Bryon Moyer
Some time back we took a look at Internet-of-Things (IoT) communications in an attempt to digest some of the vague marketing messages from various companies participating in that business. I identified three layers: formal protocols overlaid by abstract messaging overlaid by business objects.
The “formal protocols” layer is typically referred to generically as the “transport” (even though it may or may not contain formal OSI transport-layer functionality). When IoT comms folks talk about being standards-based, this is typically where most of the standards lie, whether it’s TCP/IP or Zigbee or whatever.
Above that is the generic messaging layer, and it’s simply a way to encode information for shipment elsewhere. There are no semantics, and the receiving entity needs to understand how the message was built in order to unpack it properly. The contents themselves aren’t standardized. We identified Xively as an example of this, but there are other standards working here as well; MQTT would be an example. DDS is another one. Note that, at this level, there may be some level of prescribed format, but there are no prescribed semantics for specific types of endpoints.
Such semantics belong in the layer above, where we find business objects. Just to clarify the difference here, let’s take 3 examples:
- In one case, a generic message protocol might be leveraged to carry, say, instructions to a thermostat. Let’s say there are a couple header bytes and then a message field. The designer could use the first byte of the message field to identify that this is going to a thermostat and the second byte could identify which thermostat, and then the following bytes would carry the instruction and any data (for instance, “set temperature to 72”). This structure has been defined for this system only, and both ends of the system need to know what the various bytes signify in order to communicate.
- In another case, more like DDS, there may already be a provision for generic “topics.” So, in this case, the designer could encode instructions just like above, but rather than having to build in a field for “thermostats,” he or she could simply use a thermostat topic to which interested subscribers could subscribe. The specific thermostat instructions would still be custom, but some of the infrastructure for getting the messages to interested parties is built into the protocol.
- Those prior two fall short of containing business object semantics because the thermostat-specific instructions are custom. The third example would, by contrast, include a thermostat object, and that object would have a pre-defined API. You wouldn’t “invent” codes for “set temp,” “turn on,” “turn off,” etc.; they would be part of the protocol. The benefit here is that any system talking to a thermostat from any vendor supporting the protocol would work. There’s no vendor lock-in (which may not be viewed as a benefit by some vendors).
The IPSO Alliance has put together a “starter pack” of IoT objects. They’ve done so given that their main objective, proliferation of IP, can be extended to include constrained-resource Things via IPv6 and 6LoWPAN. The reference implementation leverages the Lightweight M2M protocol, designed for device management and services, which is itself based on the new CoAP protocol, which provides messaging for low-bandwidth, low-power devices with constrained resources.
That said, the objects can be implemented over other protocols as well. There’s nothing about them that constrains them to IP-based transport.
They’ve created 18 different objects. Some of them are rather generic:
- Digital input
- Digital output
- Analog input
- Analog output
- Generic sensor
- Power measurement
- Set point
- Load control
So, for instance, while there’s not a specific thermostat object, the “actuation” object allows for turn on/off, and the “set point” object allows for setting a value, like the temperature.
Then there are some specific objects:
- Illuminance sensor
- Presence sensor
- Temperature sensor
- Humidity sensor
- Light control
- Power control
Each object has defined “resources.” For example, the Illuminance sensor object has the following resources:
- Sensor value
- Min measured value (since last reset)
- Max measured value (since last reset)
- Min range value
- Max range value
- Reset min/max measured values
Each resource has its own ID. Names and IDs are registered through the Open Mobile Alliance (the group that defined LWM2M) Name Authority.
posted by Dick Selwood
I am sure that it is not April 1st, so the release I got last week from Nordic Semiconductor has to be legitimate. A company in Slovenia is using one of Nordics chips to provide communication between the cooking hob and pot and pan lids.
"In operation, the IQcook hob continuously monitors sensors embedded into the pot and pan lids (any type of cookware suitable for induction hobs can be used on the IQcook appliance) to allow automatic optimization and automation of the five most common types of hob-based cooking process: steam cooking, cooking with large amounts of water (e.g. pasta or soup), slow cooking (e.g. stews), deep frying, and grilling. After selecting the desired cooking mode, the sensor installed on the pot/pan lid is activated by a simple touch."
And I thought the barbecue sensor and iPhone app was a culinary step t.o far
posted by Bryon Moyer
I can’t decide whether this is a post about technology or language. I guess it’s some of both.
A company called 1248 has announced an access point, called HyperWeave, featuring the 6LoWPAN protocol so as to bring IP all the way out to the “edge”. The first thing we need to clarify is what “edge” means. In other contexts, it refers to some mid-way point between, say, your phone and the very core of the network backbone. It’s essentially where you enter the backbone (or at least that’s how I interpret it).
That’s not what they mean here. The idea here is that the “edge” really is the edge of the complete network: the sensors gathering data. The problem posed is that traditional WiFi has required too much power, and therefore isn’t an option. By introducing 6LoWPAN into the picture, an IPv6 capability can be taken all the way to these power-stingy devices.
Now, we’ve seen before that WiFi modules are being used at the edge already, but that tends to be indoors or somewhere that has ready power. If the sensor or device has to rely on batteries or scavenged power in some far-flung locale, well, then WiFi becomes a challenge – and that’s what HyperWeave is intended to address.
They’ve also taken pains to make it easy to integrate the access points into enterprise networks so that the IT folks can manage whatever the access point is talking to. Because it’s IP-based (and can support IPv4 as well, if necessary), then it plays nicely with the rest of the network. No translation is required from some other IoT-style protocol.
My only other language kvetch is the use of “IoT-enable” as a verb in the release. I’ll simply leave it as, “Please… no…” (I know; we’re engineers; we butcher the language daily…)
You can read more about it in their announcement.