A Simpler and More Intelligent Internet of Things with Digi and Temboo

Today we have a guest post from Digi International about programming Digi hardware with Temboo. You can find the original post on their blog:

The ongoing drought in the western United States underscores the importance of maintaining and conserving a reliable supply of fresh water—whether for drinking, irrigation, fire control, or manufacturing, reliable water storage is essential. Of course, half the battle in maintaining a water supply is managing it: once a tank system has been installed and filled, water must be properly distributed when it is needed and retained when it is not. If tanks are remote and many are spread over a wide area, monitoring them can become a costly and time-consuming obligation.

These are the sorts of challenges that Digi and Temboo are overcoming by building a more intelligent Internet of Things. A network of Digi hardware running Temboo Choreos is flexible and smart—devices can be programmed to execute a wide variety of processes, and be reprogrammed without being interrupted. This is a solution that combines the ease of automation with the trustworthiness of manual control. To illustrate the solution’s benefits, and demonstrate how the whole system works, we’ve built a model of the water tank problem. This system puts Temboo and Digi to work, keeping water levels right where they ought to be.

Our tank monitoring solution uses an XBee ZigBee radio to wirelessly exchange sensor information and remote control commands using Digi’s new XBee Gateway, a programmable device that joins ZigBee mesh networks to the Internet. A small Temboo client written in Python is installed on the XBee Gateway, allowing it to connect to over one hundred different web services using Temboo Choreos. With Temboo, the memory constraints of the small devices in the network cease to be an obstacle to intelligent behavior, as much of the code required to execute complex processes is offloaded to the cloud.

In our model, a sensor attached to the XBee radio monitors the water level of our tank, and sends those readings to the XBee Gateway. If the tank leaks and the water level falls, a response is triggered on the gateway. First, the gateway uses Temboo’s Yahoo Weather Choreos to check the forecast for rain. Temboo’s Nexmo Choreos are then used to telephone the relevant individual with an automated voice message that gives a real time rain forecast and offers a choice of actions to take by entering a number on the phone’s keypad.

If a storm is on its way, there is an option to ignore the alert. If the leakage does not need to be urgently addressed, there is an option to schedule a maintenance event for the future, which the Temboo program on the gateway handles via a Google Calendar Choreo. If the situation is urgent, however, there is another option to activate a backup pump at a different point in the XBee network and refill the tank. Of course, all of this will only work properly if the sensor and gateway are powered on and functioning, so our system needs to be prepared for any loss of connectivity—if, for any reason, transmission of the level of water in the tank stops, another Temboo Choreo will file a Zendesk ticket to alert support that the system needs attention.

The most exciting thing about this model, however, is that it is only a small example of a massively scalable system. XBee technology can connect hundreds of different devices in a much larger network, and Temboo’s Library contains over two thousand other Choreos that can be used to execute an immense variety of tasks. Modifying the behavior of the Temboo program on the gateway to, for example, switch notification services is just a matter of changing Choreos, a simple task. Digi’s hardware and Temboo’s software are coming together to build a lighter, smarter, and much easier to use Internet of Things.

Demo created using:

Are you using Temboo or XBee in your Internet of Things application? You can share how you’re using wireless technology by tweeting us at @XBeeWireless and @Temboo.