Monday, June 19, 2017

New and Noteworthy in SiteWhere Community Edition 1.11.0

The SiteWhere team is happy to announce the availability of SiteWhere 1.11.0 Community Edition. This new release contains many new features, improvements, and bug fixes including:
  • Add event deduplication support for event sources
  • Support alternate (external) id for events for correlation/deduplication.
  • Support "hard delete" functionality when deleting a tenant.
  • Support "administer own tenant" permission in REST services and web interface.
  • Fix bug where tenant template dropdown does not select correct template on updates.
  • Fix bug where REST API /engine/start v1.9.0 breaks when starting a started tenant.
For a complete list of issues addressed in the 1.11.0 release, please click on the button below to open the SiteWhere downloads page.

Also, check out our new website which contains information about the new SiteWhere Enterprise Edition beta program!


The SiteWhere Team
Download SiteWhere 1.11.0

Wednesday, May 24, 2017

New and Noteworthy in SiteWhere Community Edition 1.10.0

The SiteWhere team is happy to announce the availability of SiteWhere 1.10.0 Community Edition. This new release contains many new features, improvements, and bug fixes including:
  • Groovy scripting support for routing commands, providing more powerful command delivery options.
  • Improved support for external search providers including support for complex queries when using Apache Solr.
  • Updates to use latest drivers for MongoDB for improved performance and compatibility.
  • Progress monitoring for many core system operations along with corresponding improvements in the administrative user interface.
  • Improvements for date handling and proper response codes in REST services.
For a complete list of issues addressed in the 1.10.0 release, please click on the button below to open the SiteWhere downloads page.

Also, check out our new website which contains information about the new SiteWhere Enterprise Edition beta program!


The SiteWhere Team
Download SiteWhere 1.10.0

Friday, December 9, 2016

New and Noteworthy in SiteWhere Community Edition 1.9.0

The SiteWhere 1.9.0 release adds 30+ new features, updates, and bug fixes and contains a number of important architectural improvements.

Tenant Management

Improved Tenant Template Support

SiteWhere 1.9.0 adds a more powerful model for using templates to create new tenants. In previous versions, there was a single tenant template which was used to bootstrap all new tenants. The new architecture provides multiple templates which provide more options for creating new tenants. The tenant templates include a base tenant configuration file and can specify data initializers for various parts of the SiteWhere data model. When creating a new tenant, a starting template is specified. Templates included out-of-the-box include:
  • Empty Tenant - This template allows a tenant to be create with no data and a very basic tenant configuration. There is no longer a need to delete the sample data that was automatically loaded with previous versions.
  • Construction Example - This template loads the construction example data included in previous SiteWhere releases.
  • Air Traffic Example - This template loads the air traffic example included in the sitewhere-examples GitHub repository. It includes additional assets for planes and tracking devices as well as a default tenant configuration that is pre-configured to ingest STOMP data sent from the air traffic web application.
In addition to the templates included OOTB, users can add their own templates to make it faster and easier to bootstrap new tenants.

Tenant Lifecycle Persistence

In previous versions, SiteWhere always started all tenants when the server was restarted. SiteWhere 1.9.0 now preserves tenant lifecycle state so tenants that have been stopped will remain stopped on server restart.

Infrastructure Updates

Better Performance in Administrative Console

Previous versions of the administrative console were based on JSP as the view technology. Spring Boot and the embedded Tomcat container have performance issues with JSP, so we updated the view technology to use Apache Velocity templates. The result is a much faster web interface and a much smaller server footprint thanks to the removed transitive dependencies.

Upgrade to Log4J 2

SiteWhere 1.9.0 now uses Log4J 2 as the basis for all system logging. This provides better integration with the existing logging in Spring boot.

Upgrade Swagger Dependencies

In the pre-1.5 Swagger version used in previous versions of SiteWhere, Scala was a transitive dependency. The footprint was huge considering it was not a core server component. SiteWhere 1.9.0 upgrades to a non-Scala version of Swagger, which greatly reduces the overall server footprint. Thanks to dependency improvements, SiteWhere 1.9.0 is almost 25% smaller than the previous version.

InfluxDB Improvements

Updated Client Jar

Updates to the core InfluxDB server caused problems with previous versions of SiteWhere due to non-backward-compatible API changes in the database. SiteWhere 1.9.0 includes the latest InfluxDB jar, which fixes the errors reported by users that upgraded InfluxDB to 1.0+.

Event Processing Fixes

The were a number of bugs in SiteWhere 1.8.0 related to the hybrid MongoDB/InfluxDB model and event processing. All of the reported issues have been fixed along with a number of improvements for the hybrid model.

Download SiteWhere 1.9.0

There are many other new features and bug fixes available in SiteWhere 1.9.0, so download it today!


The SiteWhere Team
Download SiteWhere 1.9.0

Thursday, July 21, 2016

New and Noteworthy in SiteWhere Community Edition 1.8.0

Release Notes - SiteWhere - Version 1.8.0


  • [SITEWHERE-302] - ActiveMQ event source missing KahaDB store jar
  • [SITEWHERE-311] - Startup reports wrong name for SiteWhere home environment variable
  • [SITEWHERE-318] - Deleting user does not remove it from tenant auth users list
  • [SITEWHERE-321] - Unhandled exceptions in state processing can kill state manager thread
  • [SITEWHERE-323] - MapQuest mapping provider for Leaflet no longer works

New Feature

  • [SITEWHERE-309] - Support CORS requests for REST services
  • [SITEWHERE-314] - Support reading JMS messages from remote brokers
  • [SITEWHERE-315] - Add socket interaction handler with logic driven by Groovy script
  • [SITEWHERE-317] - Integrate Eclipse Californium for COAP support


  • [SITEWHERE-289] - Expose presence detection queries via REST services
  • [SITEWHERE-303] - Support adding device element mappings via JSON/MQTT APIs
  • [SITEWHERE-304] - Support non-numeric values for measurements in JSON format.
  • [SITEWHERE-306] - Make REST services stateless and update admin UI to use basic auth
  • [SITEWHERE-307] - Make site token optional in 'assignments by asset' REST call
  • [SITEWHERE-308] - Allow filtering by assignment status in 'assignments by site' REST call
  • [SITEWHERE-310] - Make tenant id part of URL for administrative application
  • [SITEWHERE-312] - Display unique token for command in administrative interface
  • [SITEWHERE-313] - Use common interface for components that reference remote services
  • [SITEWHERE-319] - Allow decode errors to bubble to event receivers for custom handling
  • [SITEWHERE-320] - Add concept of tenant groups to model, APIs, and user interface

Monday, April 4, 2016

New and Noteworthy in SiteWhere Community Edition 1.7.0

The SiteWhere 1.7.0 release includes some major architectural improvements along with many new features and bug fixes.

Upgrade to Spring Boot Architecture

Improved System Bootstrapping

SiteWhere 1.7.0 migrates the core platform to Spring Boot, supporting a more standardized approach for encapsulating the server. Previous versions of SiteWhere were bootstrapped as a web archive deployed on a standalone Tomcat instance, which gave less control over many aspects of the environment. With Spring Boot, SiteWhere provides the core application logic and uses the embedded Tomcat support to allow the web artifacts to still be deployed and accessed as with previous versions.

Updates to Folder Structure and Environment

By not packaging inside Tomcat, the folder structure has been simplified a lot. All of the Tomcat folders and configuration have been removed since they are now supplied by the embedded Tomcat instance provided by Spring Boot. The configuration folder has been moved into the root folder, but all of the content is still backward compatible with previous versions. Likewise, the database format has not changed, so you can point a 1.7.0 instance at the configuration and database from a previous installation and it will work. Since Tomcat is no longer bootstrapping, a new environment variable, SITEWHERE_HOME, has been introduced to point to the SiteWhere root folder.

Amazon SQS Integration

SiteWhere now integrates with Amazon SQS, allowing SiteWhere events to be pushed to queues in the Amazon cloud. The integration uses a configurable SiteWhere outbound event processor, which allows logic to be applied in choosing which events are pushed to Amazon. For instance, you can add an event processor that only forwards measurement events from a specific device specification into Amazon SQS.

Outbound RabbitMQ Event Processing

A new outbound event processor has been added for forwarding SiteWhere events to RabbitMQ using AMQP. As with other filtered event processors, logic (including complex scripted decision logic) can be applied to choose which events are forwarded. Any device that can listen on AMQP can receive a live stream of events as they are processed by SiteWhere. For those that prefer MQTT to AMQP, there is equivalent support for live streaming over MQTT.

Get Started!

Download SiteWhere 1.7.0 today and check out the new features for yourself! The SiteWhere team is looking forward to your feedback on the new architecture and features.


The SiteWhere Team
Download SiteWhere 1.7.0

Tuesday, February 16, 2016

New and Noteworthy in SiteWhere Community Edition 1.6.1

Release Notes - SiteWhere - Version 1.6.1


  • [SITEWHERE-275] - Unable to log in with multiple tenants active
  • [SITEWHERE-277] - Accessing specifications on new tenant gives invalid asset reference
  • [SITEWHERE-278] - Command invocation with no initiator id causes error on admin UI
  • [SITEWHERE-280] - Assets searches not returning correct results


  • [SITEWHERE-276] - Groovy outbound processor needs access to device and assignment
  • [SITEWHERE-279] - Support command invocations via Groovy builder APIs

Release Notes - SiteWhere - Version 1.6.0


  • [SITEWHERE-219] - Investigate Java OutOfMemory exceptions occurring after restarting tenants
  • [SITEWHERE-261] - Login page contains invalid script reference
  • [SITEWHERE-264] - Deleting last tenant makes SiteWhere unusable
  • [SITEWHERE-267] - Do not allow specification to be deleted if devices are using it
  • [SITEWHERE-268] - State not being returned on assignment lists for HBase
  • [SITEWHERE-269] - Tenant REST APIs not properly restricting access

New Feature

  • [SITEWHERE-246] - Support presence detection and notification
  • [SITEWHERE-260] - Add InfluxDB device event datastore implementation
  • [SITEWHERE-263] - Add Node-RED support
  • [SITEWHERE-272] - Add outbound processor that delegates to a Groovy script
  • [SITEWHERE-273] - Support using Groovy script as device model initializer
  • [SITEWHERE-274] - Add Hazelcast device event management implementation 


  • [SITEWHERE-258] - Separate event APIs from device management APIs
  • [SITEWHERE-259] - Create MongoDB tenant datastore type with pluggable event storage
  • [SITEWHERE-262] - Improve support for JSON over MQTT 
  • [SITEWHERE-266] - Add server administrator role to viewing of global server information
  • [SITEWHERE-270] - Upgrade libraries to be compatible with Spring IO/Boot

Saturday, January 9, 2016

New and Noteworthy in SiteWhere Community Edition 1.5.0

The release of SiteWhere 1.5.0 Community Edition adds a number of new features to the platform along with some other refinements and bug fixes. One of the main areas addressed is tenant management with the addition of new administrative console functionality for tenant configuration. In addition, another high-performance option is now available for ingesting events via the AMQP protocol thanks to the new RabbitMQ event source. Finally, a new symbology subsystem was added to allow for the generation of symbols such as QR-Codes for SiteWhere entities such as devices and device assignments.

Introducing Web-based Tenant Configuration

Before SiteWhere 1.5.0 tenant configuration was managed by editing the tenant configuration file by hand. While a viable option, the process was error prone and made it hard to understand the many features available in the platform. SiteWhere 1.5.0 introduces a new web-based tenant configuration editor that allows tenants to be configured in the administrative application.
SiteWhere Tenant Configuration
The tenant configuration editor is arranged hierarchically with the same general structure as the configuration schema. It allows for the editing of existing configurations that have been directly edited in the XML file for backward compatibility while supporting a much more intuitive experience going forward. Each node in the configuration is documented along with each configurable attribute. The user interface constrains attributes based on datatype so that invalid values can not be entered. Validation functionality is also provided to ensure that it is obvious in the web interface when child components are required.
The 1.5.0 release also adds the concept of staging to SiteWhere tenant configuration. After editing the tenant configuration, the new changes are staged in a separate file from the running tenant configuration. The next time the tenant is restarted, the staged configuration takes the place of the existing one and becomes the active configuration.

RabbitMQ Event Source Support

We have received a number of requests for integrating SiteWhere with RabbitMQ to allow another high-performance option for ingesting events. SiteWhere 1.5.0 adds a new RabbitMQ event source that uses the RabbitMQ Java drivers to connect to an instance and consume events via the AMQP protocol. Characteristics such as the number of consumer threads can be configured to maximize performance.
RabbitMQ Event Source

Symbology Management and QR-Code Supprt

It is a common requirement to have symbols that represent devices or other managed entities. These can include barcodes, QR-Codes, or even custom labels with images and other symbolism. SiteWhere 1.5.0 adds a new symbol generator manager that allows various types of symbols to be configured for SiteWhere entities. The first symbology plugin supports generating QR-Codes for sites, specifications, devices, and assignments.
QR-Code Support
The symbols are generated dynamically and can be accessed via the SiteWhere REST services. For instance, if you have a custom application and need to be able add QR-Codes to the web application or product packaging, a call to the REST service will provide the QR-Code image. Since the QR-Code plugin is configurable within the new tenant configuration manager, the look-and-feel of the code (size, color, etc) can be customized on a per-tenant basis.

Video Covering 1.5.0 Features

We have also added a new video to the SiteWhere YouTube channel covering the 1.5.0 features. Take a look at the video, then download SiteWhere 1.5.0 CE to try the new features out yourself!

New and Noteworthy in SiteWhere Community Edition 1.11.0

The SiteWhere team is happy to announce the availability of SiteWhere 1.11.0 Community Edition. This new release contains ma...