Eclipse SmartHome 0.9.0

Release Date
Deliverables

The full list of changes can be found at https://github.com/eclipse/smarthome/milestone/4?closed=1

Here's a brief overview of the most important new features:

  • Audio streaming features added
  • Voice support (TTS/STT) added
  • Item-Editor in Paper UI
  • Theming support in Basic UI
  • Extension Service mechanism incl. support for the Eclipse IoT Market
  • Introduced trigger channels for push buttons and remote controls
  • Added profile support for trigger channels
  • Replacement of Apache HTTP Components by Jetty HTTP Client
  • Language Server Support (LSP) for textual configuration files
  • JSR223 support for rules in scripting languages
  • new Astro binding
  • new DMX binding
  • new LIRC binding
  • new IKEA TRADFRI binding
  • new WeatherUnderground binding
Compatibility

The REST API kept full backward compatibility to 0.8.0

Bindings implemented against 0.8.0 should be source compatible to this release. Nevertheless, the APIs have evolved and a few methods and services have been marked as deprecated. Implementors are therefore asked to check their implementation against the updated APIs and adapt them to the newer version (dedicated information on how to do so is given on every deprecation notice).

The new rule engine (previously marked as experimental only) has matured and while the APIs are still fairly similar, its general behavior might have changed through a different runtime behavior. Implementors should therefore check and update their code.

Version 0.9.0 has dropped support for Java 7 - Java SE 8 Compact Profile 2 is now the minimal system requirement.

Internationalization

A lot of effort has been put into the internationalization possibilities - Eclipse SmartHome can now support UIs through its REST API in different locales simultaneously. All extensions can include language property files for different languages.

While we only included English in version 0.8.0, we now have multiple bindings with also German and French support in place. Solutions are able to bring their own further languages simply by adding fragments to the system.

 

Target Environments

The target environment is any platform that has:

  • a JVM compliant with Java SE 8 Compact Profile 2 (note: there is no Java 9 support yet)
  • an OSGi framework 4.2 or above
  • at least 128MB Java heap space

The framework has been tested with Oracle JDK 1.8, ZuluVM 1.8 and with the OSGi framework implementations Eclipse Equinox, Eclipse Concierge, Apache Felix and ProSyst mBS both on x86 and ARM platforms.

The Eclipse SmartHome sample packaging is a 15 MB zip file which demonstrates a minimal runtime on Concierge, which can be used for testing target hardware platforms.

Themes

Language Server Protocol (LSP) Support

Using Xtext for textual configuration, a new optional bundle is now able to expose information on syntax validation and content completion to external editors such as VS Code. A major benefit over the old Designer is that the LSP support is built right into the runtime and thus has access to information about what extensions are installed, which can make a difference for the valid options.

Bindings

Adding new bindings is a recurring theme of this project. There is usually no planning possible as they are sort of randomly contributed by the community. In this release we have major contributions for IKEA TRADFRI and DMX and smaller ones for Astro data, LIRC and WeatherUnderground.

Rule Engine

The concept of the experimental rule engine has been verified by users and as such matured. A huge addition to it is the integration of JSR223 compatible scripting - through this, it is possible to define rules or modules in languages like Python, Groovy and Javascript.