What is SmartThings?
SmartThings is a technology used to create a connected home. At its core, SmartThings is a cloud-based service that interfaces with a user’s SmartThings hub. Its design allows for quick and seamless additions of many types of sensors to a home network. Devices connect to the hub using either the Z-Wave or ZigBee standard.
Why combine SmartThings with OpenSensorHub?
The two technologies appear to attempt the same thing, making the internet of things accessible. It seems then, that combining the two would only be redundant. This isn’t the case. SmartThings exists as a simple, easy to use, but somewhat closed system. Some types of sensors or sensor packages are not directly supported by SmartThings, even though it is extensible through its own API and web-based IDE. Also, the ability to customize the way data is viewed through SmartThings is limited in comparison to OpenSensorHub (OSH).
Version 1.2.0 of OSH has been released with many bug fixes and enhancements to the Admin UI, OGC service interfaces and security.
This version is available for download as a single zip archive from GitHub Releases or as individual modules from our Bintray repository.
We decided to transition to Gradle as our build tool for all OpenSensorHub modules. We find Gradle much more flexible than Maven and build scripts easier to maintain, especially when it comes to incrementing versions of various modules in our ecosystem.
So building is now done using Gradle >3.1 rather than Maven, although we still rely on Maven repositories to fetch most of our dependencies.
For example, you can now build the core modules with the following commands:
$ git clone --recursive https://github.com/opensensorhub/osh-core.git
$ cd osh-core
$ ./gradlew build
You’ll need JDK8 (both OracleJDK or OpenJDK should work) in order to do the build yourself. Please see the Developer’s Guide for more details.
The latest version of OpenSensorHub now gives fine-grained control over user permissions and other security options.
In addition to better support for HTTPS (SSL) and several authentication methods (HTTP Basic, HTTP Digest, X509 Certificate, OAuth) through simple configuration in the web admin interface, a hierarchy of permissions can now be defined by each OSH module needing some kind of access control. These permissions can then be assigned to users and roles using the security API.
OpenSensorHub can also be deployed on Android devices and we wrote an Android App to demonstrate that. OSH itself runs as an Android Service and the App configures and connects to this service to retrieve information. The current App is just an example of what can be done but it currently allows one to easily publish sensor data collected by the phone to a remote SOS-T (Transactional Sensor Observation Service) endpoint in real-time.
This includes streaming data from sensors that are present in most smart phones:
- Video cameras (using either MJPEG or H264 codecs)
- GPS or Network Location
- Fused orientation (i.e. relative to the earth)
We also added support for a few external sensors that you can connect to the phone via USB or Bluetooth:
- FLIR One Thermal Camera (USB)
- TruPulse 360 Laser Range Finder (Bluetooth)
- Angel Sensor Health Monitor (Bluetooth LE)
The screenshot below shows the menu where the different sensors can be acitvated:
The code for the Android App is hosted in the osh-android repository of our main GitHub account and we’ll release version 1.0 soon.
OpenSensorHub support for new sensors and actuators is continuously being added by the OSH Team and other contributors. In addition to providing support for specific sensors and actuators, we are also building helper capabilities to make it easier to bring in new sensor and actuator drivers (e.g. an Arduino library, support for various communication protocols, helper classes for certain sensor types such as video cameras and weather sensors).
Using a combination of the OpenSensorHub (OSH) Arduino helper classes (https://github.com/opensensorhub/osh-arduino) and the Adafruit Unified Sensor Library ( https://github.com/adafruit/Adafruit_Sensor ), it is straightforward to develop drivers to enable all supported Arduino sensors to register with OSH SOS-T. Most took no more than 10-15 minutes to add.
When properly configured, these Arduino sensors can push observations to an OSH node over WiFi using the transactional components of an SOS service (SOS-T). Then all of the power of OSH is available, including storage, processing, and serving of the data through standard web or IoT interfaces.
To use supported Arduino sensors for OSH, one would:
- The SOS-T server which will receive the data, is referenced in the sketch within the newSOSClient method call. e.g. sos = new SOSClient(client, “192.168.0.25“, 8181, “/sensorhub/sos“);
- flash the Arduino “sketch” file for the appropriate sensor onto the board
- restart the Arduino board; it will then register with OSH and send observations until you power it off
The Vaisala Weather Transmitter WXT520 is an advanced and highly-configurable system of weather sensors all in a single package. Because of its compact size, this weather transmitter is well-suited for dynamic field deployment as well as more permanent deployment, making it ideal for integration into the SensorWeb.
We require a suite of inexpensive, geospatially-aware, video cameras that could run OpenSensorHub (OSH) onboard and store and/or stream in real time, video and navigation data (i.e. location and orientation). The OSH team thus developed the GeoCam based on Raspberry Pi (RPi) using the RPi HD video camera, an Adafruit GPS (with or without antenna), and an Adafruit orientation sensor. (Build your own GeoCams following the recipe here).
We required a suite of inexpensive, geospatially-aware, video cameras that could run OpenSensorHub (OSH) onboard and store and/or stream in real time, video and navigation data (i.e. location and orientation). The OSH team thus developed the GeoCam based on Raspberry Pi (RPi) using the RPi HD video camera, an Adafruit GPS, and an Adafruit orientation sensor.
Unless you have been living under a rock, you have probably seen that Internet of Things (IoT) is all aflutter. Everyone and his brother are connecting THINGS to the Internet, and connecting things to each other via the Internet! Some of these things are sensors. Some of them are actuators. Some of them are processes. Others are combinations of these three, which together some call robots. It is all very cool. But, it has a long way to go.
Welcome to the blog for OpenSensorHub – an open source, open standards software project building a powerful platform for the easy deployment of sensors, actuators, and processes from the Internet of Things (IoT) in to a highly interoperable SensorWeb. OpenSensorHub harnesses the power of the Open Geospatial Consortium Sensor Web Enablement (OGC SWE) architecture in an open source platform that you can use to build a location-enabled, geographically-aware Web of Things. Join the OpenSensorHub community as an explorer, an adopter, or a core contributor.