Subscribe to AllThingsTalk newsletter

Get updates on our developments and the Internet of Things in general

Thanks for subscribing to our newsletter.

To complete the subscription process, please click the link in the email we just sent you.


Subscription Confirmed

Your subscription to our list has been confirmed.

Thank you for subscribing!


A slightly techy update today!

Design Patterns in the software development world are solutions to common challenges which help create complex systems using reusable 'templates' to reduce duplicate effort.

The big problem Design Patterns for IoT often get confused with Use Cases, which unfortunately don't appeal to end customers, and attempting to explain or market Design Patterns to non-developer types often causes a lot of confusion.

The Internet of Things, like any system, is made up of patterns which can solve many scenarios. Remotely control A, connect sensor value from B to C, read states directly from D, crunch data at E, these few tasks can be reused to solve a multitude of problems.

Let's take a look at the basic on how you can start solving problems with common methods of implementation.

Connected sensor

Sends state of a data source to a known host when it feels like it

Typical for telemetry sensors which send data to a service platform using protocols like MQTT or HTTP POST requests.

The good thing about this pattern is that the node can sleep whilst there is no state changes, saving power and bandwidth usage.

Remote read

Query state of a remote node from your host when required

Using a client/server paradigm, the sensor acts like a web server, to deliver content to a user or service. The 'client' requests the state, and the 'server' responds with the latest value.

A very common pattern and great for those familiar with web development (E.g REST API's). It comes with issues when trying to scale, creating responsive experiences, and connecting from the internet using public IP addresses.

Remote control

Allows commands to be sent to a connected thing to trigger actions

Used where physical interaction with an environment is required, it can allow automation, to save time, effort and energy by allowing control from a remote user or service.

This pattern requires the node to be awake and waiting for commands to be received. This can be costly if responsiveness and reliability are needed.

We all know there are many interesting use cases for IoT, but their underlying designs can be reused in many propositions, verticals and industries, to solve different problems, and create entirely different product lines.

Want to learn more?

Try out our experiments included in the SmartLiving Developer Kits and build your own systems using these common patterns (If you don't have one of our kits you can still try out the code and API's with any other computer you have!).