Wow, it's been a really long time since my last post! Suffice it to say that the focus of the past several months has been on various aspects of Hobson culminating in a 0.6 release which also marks the first public beta. I thought it worth highlighting some of the features and improvements in this release as well as some things that are in the works.
New Web Console
The most visible change is Hobson's new configuration wizard and web console. They have been completely re-written (using Backbone.js and Zurb Foundation) to further Hobson's goals of usability and intuitiveness. Task creation in particular has received a complete overhaul and now follows an IF-THIS-THEN-THAT metaphor. Another useful addition is the activity sidebar that provides an audit log of recent smart device and task activity.
A few new plugins have been created for both devices and services. The Davis Vantage plugin can communicate with Davis Vantage weather stations. The Weather Underground plugin can transmit data from a Hobson weather station device to a Weather Underground PWS. The Twilio plugin provides a task action for sending SMS messages via the Twilio service.
Hobson's model for connecting with consumer smart devices has been one of proactive discovery. The Hub looks for devices (or the user explicitly tells Hobson about them) and they are added to the list of devices Hobson can monitor and control. The new MQTT plugin inverts that model to make Hobson much more useful in IoT projects. It effectively turns the Hobson hub into an MQTT broker for external devices and sensors to connect to. A simple user-initiated bootstrapping process insures that only authorized devices can connect. Devices connecting to Hobson in this manner are first-class citizens and benefit from all the functions that Hobson provides. This will hopefully make Hobson an attractive option to those that have created smart device or sensor hardware that require a communication hub.
SDK and REST API Changes
Behind the scenes, a lot has changed since the 0.4 release. Configuration for the hub, devices and plugins now all use the same underlying mechanism. Tasks have received a complete API overhaul to make them much more powerful and easy to extend. A myriad of other changes should make it much easier for developers to both work with and extend the Hobson platform.
There are a lot of items in the Hobson backlog in various stages of completion. I thought it worth mentioning a few of them.
The current maker movement has produced a ton of hardware that makes it extremely easy to create devices that interact with the physical world. As we all know, the effort needed to turn a prototype into a finished product consumes a significant amount of a project timeline. The idea behind Hobson Firmware is to provide out-of-the-box foundational capabilities for low-cost hardware platforms to let developers focus on the specifics of their application. These foundation capabilities include things like Wi-Fi network acquisition, hub discovery, secure bootstrapping, connection monitoring, etc. It's currently based on MQTT with CoAP being considered as a future addition.
The current prototype is running extremely well on the low-cost ESP8266 platform and the Arduino Yun is being considered as the second supported platform.
It's worth noting that even though it's called Hobson Firmware, it has no particular Hobson dependencies. The firmware obviously works seamlessly with Hobson's MQTT plugin, but you can use any MQTT broker and the bootstrap protocol is simple and easily implementable.
Look for more information on this over the next several weeks.
The current Hobson device statistics mechanism was a first attempt at providing a way to graph device metrics. However, it is not as useful as it could be and progress is being made on a revamp of the statistics mechanism to allow the end-user to define and display collections of metrics that span multiple devices. For example, it would be trivial to create a graph that plots the outdoor temperature from a weather station or Internet source against the internal temperature in the house.
The ability to generate presence events (e.g. detecting when a user arrives or leaves home) is an important capability. Hobson already has some framework in place to support this and the next step is to make it real. Work is actively being done with mobile phones and Bluetooth beacons to enable presence-driven use cases in Hobson.
As you can see, a lot has been going on and I hope to do a much better job going forward with providing insight into things as they are happening. There are a lot of exciting things coming!
As always, Hobson is free and open-source and I strongly encourage anyone that is interested to get involved. There's plenty to do for people of any background or skill level. Contact me through the forum if you'd like to learn more.